]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/lib/oauth-model.ts
Fix lint
[github/Chocobozzz/PeerTube.git] / server / lib / oauth-model.ts
index 00b1afcf50561b92ef5b4b2a52170ffe9c6c5326..769ea126a1b15a40cc2971317ee31c9b18a41a35 100644 (file)
@@ -1,49 +1,45 @@
-const db = require('../initializers/database')
+import { OAuthClientInstance, UserInstance } from '../models'
+import { database as db } from '../initializers/database'
 import { logger } from '../helpers'
 
+type TokenInfo = { accessToken: string, refreshToken: string, accessTokenExpiresAt: Date, refreshTokenExpiresAt: Date }
+
 // ---------------------------------------------------------------------------
 
-function getAccessToken (bearerToken) {
+function getAccessToken (bearerToken: string) {
   logger.debug('Getting access token (bearerToken: ' + bearerToken + ').')
 
   return db.OAuthToken.getByTokenAndPopulateUser(bearerToken)
 }
 
-function getClient (clientId, clientSecret) {
+function getClient (clientId: string, clientSecret: string) {
   logger.debug('Getting Client (clientId: ' + clientId + ', clientSecret: ' + clientSecret + ').')
 
   return db.OAuthClient.getByIdAndSecret(clientId, clientSecret)
 }
 
-function getRefreshToken (refreshToken) {
+function getRefreshToken (refreshToken: string) {
   logger.debug('Getting RefreshToken (refreshToken: ' + refreshToken + ').')
 
   return db.OAuthToken.getByRefreshTokenAndPopulateClient(refreshToken)
 }
 
-function getUser (username, password) {
+function getUser (username: string, password: string) {
   logger.debug('Getting User (username: ' + username + ', password: ' + password + ').')
 
-  return db.User.getByUsername(username).then(function (user) {
+  return db.User.getByUsername(username).then(user => {
     if (!user) return null
 
-    // We need to return a promise
-    return new Promise(function (resolve, reject) {
-      return user.isPasswordMatch(password, function (err, isPasswordMatch) {
-        if (err) return reject(err)
-
-        if (isPasswordMatch === true) {
-          return resolve(user)
-        }
+    return user.isPasswordMatch(password).then(passwordMatch => {
+      if (passwordMatch === false) return null
 
-        return resolve(null)
-      })
+      return user
     })
   })
 }
 
-function revokeToken (token) {
-  return db.OAuthToken.getByRefreshTokenAndPopulateUser(token.refreshToken).then(function (tokenDB) {
+function revokeToken (token: TokenInfo) {
+  return db.OAuthToken.getByRefreshTokenAndPopulateUser(token.refreshToken).then(tokenDB => {
     if (tokenDB) tokenDB.destroy()
 
     /*
@@ -60,7 +56,7 @@ function revokeToken (token) {
   })
 }
 
-function saveToken (token, client, user) {
+function saveToken (token: TokenInfo, client: OAuthClientInstance, user: UserInstance) {
   logger.debug('Saving token ' + token.accessToken + ' for client ' + client.id + ' and user ' + user.id + '.')
 
   const tokenToCreate = {
@@ -72,13 +68,10 @@ function saveToken (token, client, user) {
     userId: user.id
   }
 
-  return db.OAuthToken.create(tokenToCreate).then(function (tokenCreated) {
-    tokenCreated.client = client
-    tokenCreated.user = user
+  return db.OAuthToken.create(tokenToCreate).then(tokenCreated => {
+    const tokenToReturn = Object.assign(tokenCreated, { client, user })
 
-    return tokenCreated
-  }).catch(function (err) {
-    throw err
+    return tokenToReturn
   })
 }