58 lines
1.2 KiB
JavaScript
58 lines
1.2 KiB
JavaScript
|
const AccountType = require('../types/login');
|
||
|
const api = require('../../api');
|
||
|
|
||
|
const {
|
||
|
GraphQLBoolean,
|
||
|
GraphQLString
|
||
|
} = require('graphql');
|
||
|
|
||
|
module.exports.updateAccount = {
|
||
|
type: AccountType,
|
||
|
description: 'Update your account details',
|
||
|
args: {
|
||
|
email: {
|
||
|
type: GraphQLString
|
||
|
},
|
||
|
company_name: {
|
||
|
type: GraphQLString
|
||
|
},
|
||
|
first_name: {
|
||
|
type: GraphQLString
|
||
|
},
|
||
|
last_name: {
|
||
|
type: GraphQLString
|
||
|
},
|
||
|
address: {
|
||
|
type: GraphQLString
|
||
|
},
|
||
|
postal_code: {
|
||
|
type: GraphQLString
|
||
|
},
|
||
|
city: {
|
||
|
type: GraphQLString
|
||
|
},
|
||
|
state: {
|
||
|
type: GraphQLString
|
||
|
},
|
||
|
country: {
|
||
|
type: GraphQLString
|
||
|
},
|
||
|
phone: {
|
||
|
type: GraphQLString
|
||
|
},
|
||
|
cns_enabled: {
|
||
|
type: GraphQLBoolean
|
||
|
}
|
||
|
},
|
||
|
resolve: (root, args) => {
|
||
|
return api.account.get().then((account) => {
|
||
|
return api.account.update(Object.assign(account, args, {
|
||
|
firstName: args.first_name || account.firstName,
|
||
|
lastName: args.first_name || account.lastName,
|
||
|
companyName: args.company_name || account.companyName,
|
||
|
postalCode: args.postal_code || account.postalCode
|
||
|
}));
|
||
|
});
|
||
|
}
|
||
|
};
|