18d307f52SEvan Baconimport gql from 'graphql-tag'; 28d307f52SEvan Bacon 38fd977adSWill Schurmanimport { CurrentUserQuery } from '../../../graphql/generated'; 48d307f52SEvan Baconimport { graphqlClient, withErrorHandlingAsync } from '../client'; 58d307f52SEvan Bacon 68d307f52SEvan Baconexport const UserQuery = { 78d307f52SEvan Bacon async currentUserAsync(): Promise<CurrentUserQuery['meActor']> { 88d307f52SEvan Bacon const data = await withErrorHandlingAsync( 98d307f52SEvan Bacon graphqlClient 108d307f52SEvan Bacon .query<CurrentUserQuery>( 118d307f52SEvan Bacon gql` 128d307f52SEvan Bacon query CurrentUser { 138d307f52SEvan Bacon meActor { 148d307f52SEvan Bacon __typename 158d307f52SEvan Bacon id 169fe3dc72SWill Schurman ... on UserActor { 179fe3dc72SWill Schurman primaryAccount { 189fe3dc72SWill Schurman id 199fe3dc72SWill Schurman } 208d307f52SEvan Bacon username 218d307f52SEvan Bacon } 228d307f52SEvan Bacon ... on Robot { 238d307f52SEvan Bacon firstName 248d307f52SEvan Bacon } 258d307f52SEvan Bacon accounts { 268d307f52SEvan Bacon id 279fe3dc72SWill Schurman users { 289fe3dc72SWill Schurman actor { 299fe3dc72SWill Schurman id 308d307f52SEvan Bacon } 319fe3dc72SWill Schurman permissions 329fe3dc72SWill Schurman } 339fe3dc72SWill Schurman } 348d307f52SEvan Bacon } 358d307f52SEvan Bacon } 368d307f52SEvan Bacon `, 378d307f52SEvan Bacon /* variables */ undefined, 388d307f52SEvan Bacon { 39*d88ac65dSlzkb additionalTypenames: ['User', 'SSOUser'], 408d307f52SEvan Bacon } 418d307f52SEvan Bacon ) 428d307f52SEvan Bacon .toPromise() 438d307f52SEvan Bacon ); 448d307f52SEvan Bacon 458d307f52SEvan Bacon return data.meActor; 468d307f52SEvan Bacon }, 478d307f52SEvan Bacon}; 48