54 lines
1.2 KiB
JavaScript
54 lines
1.2 KiB
JavaScript
|
const KeyType = require('../types/key');
|
||
|
const api = require('../../api');
|
||
|
|
||
|
const {
|
||
|
GraphQLNonNull,
|
||
|
GraphQLString,
|
||
|
GraphQLID
|
||
|
} = require('graphql');
|
||
|
|
||
|
module.exports.createKey = {
|
||
|
type: KeyType,
|
||
|
description: 'Uploads a new OpenSSH key to Triton for use in HTTP signing and SSH',
|
||
|
args: {
|
||
|
name: {
|
||
|
type: new GraphQLNonNull(GraphQLString)
|
||
|
},
|
||
|
key: {
|
||
|
type: new GraphQLNonNull(GraphQLString)
|
||
|
},
|
||
|
userId: {
|
||
|
type: GraphQLID,
|
||
|
description: 'UserId to add this key to. Leaving this in blank will add the key to the account'
|
||
|
}
|
||
|
},
|
||
|
resolve: (root, args) => {
|
||
|
const _api = args.userId ? api.keys.user : api.keys.account;
|
||
|
return _api.create(args);
|
||
|
}
|
||
|
};
|
||
|
|
||
|
module.exports.deleteKey = {
|
||
|
type: GraphQLID,
|
||
|
description: 'Deletes a single SSH key, by name or fingerprint',
|
||
|
args: {
|
||
|
name: {
|
||
|
type: GraphQLString
|
||
|
},
|
||
|
fingerprint: {
|
||
|
type: GraphQLString
|
||
|
},
|
||
|
userId: {
|
||
|
type: GraphQLID,
|
||
|
description: 'UserId who this key belongs to. Leaving this in blank will delete an account key'
|
||
|
}
|
||
|
},
|
||
|
resolve: (root, args) => {
|
||
|
const _api = args.userId ? api.keys.user : api.keys.account;
|
||
|
|
||
|
return _api.destroy(args).then(() => {
|
||
|
return args.name || args.fingerprint;
|
||
|
});
|
||
|
}
|
||
|
};
|