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