8295bd6882
this shall be a progressive process
72 lines
1.7 KiB
JavaScript
72 lines
1.7 KiB
JavaScript
const PolicyType = require('../types/policy');
|
|
const api = require('../../api');
|
|
|
|
const {
|
|
GraphQLNonNull,
|
|
GraphQLString,
|
|
GraphQLID,
|
|
GraphQLList
|
|
} = require('graphql');
|
|
|
|
module.exports.createPolicy = {
|
|
type: PolicyType,
|
|
description: 'Creates a new account policy',
|
|
args: {
|
|
name: {
|
|
type: new GraphQLNonNull(GraphQLString),
|
|
description: 'The policy name'
|
|
},
|
|
rules: {
|
|
type: new GraphQLNonNull(new GraphQLList(GraphQLString)),
|
|
description: 'One or more Aperture sentences to be added to the current policy'
|
|
},
|
|
description: {
|
|
type: GraphQLString,
|
|
description: 'A description for this policy (Optional)'
|
|
}
|
|
},
|
|
resolve: (root, args) => {
|
|
return api.policies.create(args);
|
|
}
|
|
};
|
|
|
|
module.exports.updatePolicy = {
|
|
type: PolicyType,
|
|
description: 'Upgrades an existing account policy. Everything but id can be modified',
|
|
args: {
|
|
id: {
|
|
type: new GraphQLNonNull(GraphQLID)
|
|
},
|
|
name: {
|
|
type: new GraphQLNonNull(GraphQLString),
|
|
description: 'The policy name'
|
|
},
|
|
rules: {
|
|
type: new GraphQLNonNull(new GraphQLList(GraphQLString)),
|
|
description: 'One or more Aperture sentences to be added to the current policy'
|
|
},
|
|
description: {
|
|
type: GraphQLString,
|
|
description: 'A description for this policy (Optional)'
|
|
}
|
|
},
|
|
resolve: (root, args) => {
|
|
return api.policies.update(args);
|
|
}
|
|
};
|
|
|
|
module.exports.deletePolicy = {
|
|
type: GraphQLID,
|
|
description: 'Delete an RBAC policy',
|
|
args: {
|
|
id: {
|
|
type: new GraphQLNonNull(GraphQLID)
|
|
}
|
|
},
|
|
resolve: (root, args) => {
|
|
return api.policies.destroy(args).then(() => {
|
|
return args.id;
|
|
});
|
|
}
|
|
};
|