Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | import { UserType } from 'aws-sdk/clients/cognitoidentityserviceprovider'; import { GraphQLNonNull, GraphQLString } from 'graphql'; import { Pool, UserPoolId } from '../../../index'; import GraphQLUserGroup from '../inputs/UserGroup'; import GraphQLUser from '../outputs/User'; import { generateDeleteUserAttributeParams, generateEditUserParams, } from './helpers'; export default { type: GraphQLUser, args: { username: { type: new GraphQLNonNull(GraphQLString), }, role: { type: new GraphQLNonNull(GraphQLUserGroup), }, expirationDateTime: { type: GraphQLString, }, }, resolve: async ( _: any, { username, role, expirationDateTime }: any, { userDetails }: any, ): Promise<UserType> => { const params = { UserPoolId, Username: username, }; await Pool.adminListGroupsForUser(params, async (err, data) => { if (!err && data && data.Groups) { data.Groups.map(async group => { if (group.GroupName) { await Pool.adminRemoveUserFromGroup({ ...params, GroupName: group.GroupName, }).promise(); } }); } }).promise(); if (expirationDateTime) { await Pool.adminUpdateUserAttributes( generateEditUserParams(username, expirationDateTime, UserPoolId), ).promise(); } else { await Pool.adminDeleteUserAttributes( generateDeleteUserAttributeParams(username, UserPoolId, [ 'custom:expirationDate', ]), ).promise(); } await Pool.adminAddUserToGroup( { ...params, GroupName: role, }, error => { if (error) { throw Error(error.message); } }, ).promise(); return Pool.adminGetUser(params).promise(); }, }; |