1*9fe3dc72SWill Schurmanimport { print } from 'graphql';
2*9fe3dc72SWill Schurmanimport gql from 'graphql-tag';
3*9fe3dc72SWill Schurman
4*9fe3dc72SWill Schurmanimport { AppByIdQuery } from '../../../graphql/generated';
5*9fe3dc72SWill Schurmanimport { graphqlClient, withErrorHandlingAsync } from '../client';
6*9fe3dc72SWill Schurmanimport { AppFragmentNode } from '../types/App';
7*9fe3dc72SWill Schurman
8*9fe3dc72SWill Schurmanexport const AppQuery = {
9*9fe3dc72SWill Schurman  async byIdAsync(projectId: string): Promise<AppByIdQuery['app']['byId']> {
10*9fe3dc72SWill Schurman    const data = await withErrorHandlingAsync(
11*9fe3dc72SWill Schurman      graphqlClient
12*9fe3dc72SWill Schurman        .query<AppByIdQuery>(
13*9fe3dc72SWill Schurman          gql`
14*9fe3dc72SWill Schurman            query AppByIdQuery($appId: String!) {
15*9fe3dc72SWill Schurman              app {
16*9fe3dc72SWill Schurman                byId(appId: $appId) {
17*9fe3dc72SWill Schurman                  id
18*9fe3dc72SWill Schurman                  ...AppFragment
19*9fe3dc72SWill Schurman                }
20*9fe3dc72SWill Schurman              }
21*9fe3dc72SWill Schurman            }
22*9fe3dc72SWill Schurman            ${print(AppFragmentNode)}
23*9fe3dc72SWill Schurman          `,
24*9fe3dc72SWill Schurman          { appId: projectId },
25*9fe3dc72SWill Schurman          {
26*9fe3dc72SWill Schurman            additionalTypenames: ['App'],
27*9fe3dc72SWill Schurman          }
28*9fe3dc72SWill Schurman        )
29*9fe3dc72SWill Schurman        .toPromise()
30*9fe3dc72SWill Schurman    );
31*9fe3dc72SWill Schurman    return data.app.byId;
32*9fe3dc72SWill Schurman  },
33*9fe3dc72SWill Schurman};
34