Files
speckle-server/modules/core/graph/resolvers/apitoken.js
T
izzy lyseggen b8c0bb4125 refactor(mutations): make inputs consistent
all mutations that require more than 1 input now has an input type 🌟
fixes #10
2020-08-21 16:45:21 +01:00

28 lines
980 B
JavaScript

'use strict'
const appRoot = require( 'app-root-path' )
const { AuthorizationError, ApolloError } = require( 'apollo-server-express' )
const { createPersonalAccessToken, revokeToken, revokeTokenById, validateToken, getUserTokens } = require( '../../services/tokens' )
module.exports = {
Query: {},
User: {
async apiTokens( parent, args, context, info ) {
// TODO!
if ( parent.id !== context.userId ) throw new AuthorizationError( 'You can only view your own tokens' )
let tokens = await getUserTokens( context.userId )
return tokens
}
},
Mutation: {
async apiTokenCreate( parent, args, context, info ) {
return await createPersonalAccessToken( context.userId, args.token.name, args.token.scopes, args.token.lifespan )
},
async apiTokenRevoke( parent, args, context, info ) {
await revokeToken( args.token.split( ' ' )[ 1 ], context.userId ) // let's not revoke other people's tokens
return true
}
}
}