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 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | import { GraphQLBoolean, GraphQLID, GraphQLObjectType, GraphQLString, } from 'graphql'; import { GraphQLDateTime } from 'graphql-iso-date'; import { Pool, UserPoolId } from '../../../index'; import GraphQLUserGroup from '../inputs/UserGroup'; import findEmailInAttributes from '../lib/findEmailInAttributes'; import findExpirationDateInAttributes from '../lib/findExpirationDateInAttributes'; import findSubInAttributes from '../lib/findSubInAttributes'; export default new GraphQLObjectType({ name: 'User', fields: { id: { type: GraphQLID, resolve: ({ Attributes, UserAttributes }: any): string | null => { if (Attributes) { return findSubInAttributes(Attributes); } if (UserAttributes) { return findSubInAttributes(UserAttributes); } return null; }, }, username: { type: GraphQLString, resolve: ({ Username }: any): string => Username, }, createdDateTime: { type: GraphQLDateTime, resolve: ({ UserCreateDate }: any): string => UserCreateDate, }, modifiedDateTime: { type: GraphQLDateTime, resolve: ({ UserLastModifiedDate }: any): string | undefined => UserLastModifiedDate, }, expirationDateTime: { type: GraphQLDateTime, resolve: ({ Attributes, UserAttributes }: any): Date | null => { let expirationDateTime = null; if (Attributes) { expirationDateTime = findExpirationDateInAttributes(Attributes); } if (UserAttributes) { expirationDateTime = findExpirationDateInAttributes(UserAttributes); } return expirationDateTime ? new Date(expirationDateTime) : null; }, }, isActive: { type: GraphQLBoolean, resolve: ({ Enabled }: any): boolean => Enabled, }, status: { type: GraphQLString, resolve: ({ UserStatus }: any): string => UserStatus, }, email: { type: GraphQLString, resolve: ({ Attributes, UserAttributes }: any): string | null => { if (Attributes) { return findEmailInAttributes(Attributes); } if (UserAttributes) { return findEmailInAttributes(UserAttributes); } return null; }, }, role: { type: GraphQLUserGroup, resolve: async ({ Username }: any): Promise<string | undefined> => { const { Groups } = await Pool.adminListGroupsForUser({ UserPoolId, Username, }).promise(); if (Groups && Groups[0] && Groups[0].GroupName) { return Groups[0].GroupName; } return; }, }, }, }); |