Vulcan/packages/vulcan-payments/lib/server/mutations.js

31 lines
1 KiB
JavaScript
Raw Normal View History

import { addGraphQLSchema, addGraphQLResolvers, addGraphQLMutation, Collections, addCallback } from 'meteor/vulcan:core';
2017-05-31 10:25:13 +09:00
// import Users from 'meteor/vulcan:users';
import { createCharge } from '../server/integrations/stripe.js';
const resolver = {
Mutation: {
async createChargeMutation(root, args, context) {
return await createCharge(args);
},
},
};
2017-07-13 17:37:59 +09:00
addGraphQLResolvers(resolver);
addGraphQLMutation('createChargeMutation(token: JSON, userId: String, productKey: String, associatedCollection: String, associatedId: String, properties: JSON, coupon: String) : Chargeable');
2017-05-31 10:25:13 +09:00
function CreateChargeableUnionType() {
const chargeableSchema = `
union Chargeable = ${Collections.map(collection => collection.typeName).join(' | ')}
`;
addGraphQLSchema(chargeableSchema);
return {}
}
addCallback('graphql.init.before', CreateChargeableUnionType);
2017-05-31 10:25:13 +09:00
const resolverMap = {
Chargeable: {
__resolveType(obj, context, info){
return obj.__typename || null;
},
},
};
2017-07-13 17:37:59 +09:00
addGraphQLResolvers(resolverMap);