Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 49 additions & 16 deletions packages/client/src/graphql/graphql.ts
Original file line number Diff line number Diff line change
Expand Up @@ -189,8 +189,11 @@ export type Mutation = {
deleteProject: Scalars['Boolean']['output'];
deleteStudy: Scalars['Boolean']['output'];
forgotPassword: Scalars['Boolean']['output'];
grantContributor: Scalars['Boolean']['output'];
grantOwner: Scalars['Boolean']['output'];
grantProjectPermissions: Scalars['Boolean']['output'];
grantStudyAdmin: Scalars['Boolean']['output'];
grantTrainedContributor: Scalars['Boolean']['output'];
lexiconAddEntry: LexiconEntry;
/** Remove all entries from a given lexicon */
lexiconClearEntries: Scalars['Boolean']['output'];
Expand Down Expand Up @@ -312,6 +315,13 @@ export type MutationForgotPasswordArgs = {
};


export type MutationGrantContributorArgs = {
isContributor: Scalars['Boolean']['input'];
study: Scalars['ID']['input'];
user: Scalars['ID']['input'];
};


export type MutationGrantOwnerArgs = {
targetUser: Scalars['ID']['input'];
};
Expand All @@ -324,6 +334,20 @@ export type MutationGrantProjectPermissionsArgs = {
};


export type MutationGrantStudyAdminArgs = {
isAdmin: Scalars['Boolean']['input'];
study: Scalars['ID']['input'];
user: Scalars['ID']['input'];
};


export type MutationGrantTrainedContributorArgs = {
isTrained: Scalars['Boolean']['input'];
study: Scalars['ID']['input'];
user: Scalars['ID']['input'];
};


export type MutationLexiconAddEntryArgs = {
entry: LexiconAddEntry;
};
Expand Down Expand Up @@ -417,14 +441,6 @@ export type OrganizationCreate = {
projectId: Scalars['String']['input'];
};

export type Permission = {
__typename?: 'Permission';
editable: Scalars['Boolean']['output'];
hasRole: Scalars['Boolean']['output'];
role: Roles;
user: UserModel;
};

export type Project = {
__typename?: 'Project';
_id: Scalars['ID']['output'];
Expand Down Expand Up @@ -479,6 +495,13 @@ export type ProjectModel = {
users: Array<UserModel>;
};

export type ProjectPermissionModel = {
__typename?: 'ProjectPermissionModel';
editable: Scalars['Boolean']['output'];
isProjectAdmin: Scalars['Boolean']['output'];
user: UserModel;
};

export type ProjectSettingsInput = {
allowSignup?: InputMaybe<Scalars['Boolean']['input']>;
displayProjectName?: InputMaybe<Scalars['Boolean']['input']>;
Expand All @@ -501,8 +524,9 @@ export type Query = {
getEntryUploadURL: Scalars['String']['output'];
getOrganizations: Array<Organization>;
getProject: ProjectModel;
getProjectPermissions: Array<Permission>;
getProjectPermissions: Array<ProjectPermissionModel>;
getProjects: Array<Project>;
getStudyPermissions: Array<StudyPermissionModel>;
getUser: UserModel;
invite: InviteModel;
invites: Array<InviteModel>;
Expand Down Expand Up @@ -557,6 +581,11 @@ export type QueryGetProjectPermissionsArgs = {
};


export type QueryGetStudyPermissionsArgs = {
study: Scalars['ID']['input'];
};


export type QueryGetUserArgs = {
id: Scalars['ID']['input'];
};
Expand Down Expand Up @@ -611,13 +640,6 @@ export type ResetDto = {
projectId: Scalars['String']['input'];
};

export enum Roles {
Contributor = 'CONTRIBUTOR',
Owner = 'OWNER',
ProjectAdmin = 'PROJECT_ADMIN',
StudyAdmin = 'STUDY_ADMIN'
}

export type Study = {
__typename?: 'Study';
_id: Scalars['ID']['output'];
Expand All @@ -638,6 +660,17 @@ export type StudyCreate = {
tagsPerEntry: Scalars['Float']['input'];
};

export type StudyPermissionModel = {
__typename?: 'StudyPermissionModel';
isContributor: Scalars['Boolean']['output'];
isContributorEditable: Scalars['Boolean']['output'];
isStudyAdmin: Scalars['Boolean']['output'];
isStudyAdminEditable: Scalars['Boolean']['output'];
isTrained: Scalars['Boolean']['output'];
isTrainedEditable: Scalars['Boolean']['output'];
user: UserModel;
};

export type Tag = {
__typename?: 'Tag';
_id: Scalars['String']['output'];
Expand Down
39 changes: 36 additions & 3 deletions packages/client/src/graphql/permission/permission.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,45 @@ query getProjectPermissions($project: ID!) {
updatedAt,
deletedAt
},
hasRole,
editable,
role
isProjectAdmin,
editable
}
}

mutation grantProjectPermissions($project: ID!, $user: ID!, $isAdmin: Boolean!) {
grantProjectPermissions(project: $project, user: $user, isAdmin: $isAdmin)
}

query getStudyPermissions($study: ID!) {
getStudyPermissions(study: $study) {
user {
id,
projectId,
fullname,
username,
email,
role,
createdAt,
updatedAt,
deletedAt
},
isStudyAdmin,
isStudyAdminEditable,
isContributor,
isContributorEditable,
isTrained,
isTrainedEditable
}
}

mutation grantStudyAdmin($study: ID!, $user: ID!, $isAdmin: Boolean!) {
grantStudyAdmin(study: $study, user: $user, isAdmin: $isAdmin)
}

mutation grantContributor($study: ID!, $user: ID!, $isContributor: Boolean!) {
grantContributor(study: $study, user: $user, isContributor: $isContributor)
}

mutation grantTrainedContributor($study: ID!, $user: ID!, $isTrained: Boolean!) {
grantTrainedContributor(study: $study, user: $user, isTrained: $isTrained)
}
191 changes: 187 additions & 4 deletions packages/client/src/graphql/permission/permission.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export type GetProjectPermissionsQueryVariables = Types.Exact<{
}>;


export type GetProjectPermissionsQuery = { __typename?: 'Query', getProjectPermissions: Array<{ __typename?: 'Permission', hasRole: boolean, editable: boolean, role: Types.Roles, user: { __typename?: 'UserModel', id: string, projectId: string, fullname?: string | null, username?: string | null, email?: string | null, role: number, createdAt: any, updatedAt: any, deletedAt?: any | null } }> };
export type GetProjectPermissionsQuery = { __typename?: 'Query', getProjectPermissions: Array<{ __typename?: 'ProjectPermissionModel', isProjectAdmin: boolean, editable: boolean, user: { __typename?: 'UserModel', id: string, projectId: string, fullname?: string | null, username?: string | null, email?: string | null, role: number, createdAt: any, updatedAt: any, deletedAt?: any | null } }> };

export type GrantProjectPermissionsMutationVariables = Types.Exact<{
project: Types.Scalars['ID']['input'];
Expand All @@ -21,6 +21,40 @@ export type GrantProjectPermissionsMutationVariables = Types.Exact<{

export type GrantProjectPermissionsMutation = { __typename?: 'Mutation', grantProjectPermissions: boolean };

export type GetStudyPermissionsQueryVariables = Types.Exact<{
study: Types.Scalars['ID']['input'];
}>;


export type GetStudyPermissionsQuery = { __typename?: 'Query', getStudyPermissions: Array<{ __typename?: 'StudyPermissionModel', isStudyAdmin: boolean, isStudyAdminEditable: boolean, isContributor: boolean, isContributorEditable: boolean, isTrained: boolean, isTrainedEditable: boolean, user: { __typename?: 'UserModel', id: string, projectId: string, fullname?: string | null, username?: string | null, email?: string | null, role: number, createdAt: any, updatedAt: any, deletedAt?: any | null } }> };

export type GrantStudyAdminMutationVariables = Types.Exact<{
study: Types.Scalars['ID']['input'];
user: Types.Scalars['ID']['input'];
isAdmin: Types.Scalars['Boolean']['input'];
}>;


export type GrantStudyAdminMutation = { __typename?: 'Mutation', grantStudyAdmin: boolean };

export type GrantContributorMutationVariables = Types.Exact<{
study: Types.Scalars['ID']['input'];
user: Types.Scalars['ID']['input'];
isContributor: Types.Scalars['Boolean']['input'];
}>;


export type GrantContributorMutation = { __typename?: 'Mutation', grantContributor: boolean };

export type GrantTrainedContributorMutationVariables = Types.Exact<{
study: Types.Scalars['ID']['input'];
user: Types.Scalars['ID']['input'];
isTrained: Types.Scalars['Boolean']['input'];
}>;


export type GrantTrainedContributorMutation = { __typename?: 'Mutation', grantTrainedContributor: boolean };


export const GetProjectPermissionsDocument = gql`
query getProjectPermissions($project: ID!) {
Expand All @@ -36,9 +70,8 @@ export const GetProjectPermissionsDocument = gql`
updatedAt
deletedAt
}
hasRole
isProjectAdmin
editable
role
}
}
`;
Expand Down Expand Up @@ -102,4 +135,154 @@ export function useGrantProjectPermissionsMutation(baseOptions?: Apollo.Mutation
}
export type GrantProjectPermissionsMutationHookResult = ReturnType<typeof useGrantProjectPermissionsMutation>;
export type GrantProjectPermissionsMutationResult = Apollo.MutationResult<GrantProjectPermissionsMutation>;
export type GrantProjectPermissionsMutationOptions = Apollo.BaseMutationOptions<GrantProjectPermissionsMutation, GrantProjectPermissionsMutationVariables>;
export type GrantProjectPermissionsMutationOptions = Apollo.BaseMutationOptions<GrantProjectPermissionsMutation, GrantProjectPermissionsMutationVariables>;
export const GetStudyPermissionsDocument = gql`
query getStudyPermissions($study: ID!) {
getStudyPermissions(study: $study) {
user {
id
projectId
fullname
username
email
role
createdAt
updatedAt
deletedAt
}
isStudyAdmin
isStudyAdminEditable
isContributor
isContributorEditable
isTrained
isTrainedEditable
}
}
`;

/**
* __useGetStudyPermissionsQuery__
*
* To run a query within a React component, call `useGetStudyPermissionsQuery` and pass it any options that fit your needs.
* When your component renders, `useGetStudyPermissionsQuery` returns an object from Apollo Client that contains loading, error, and data properties
* you can use to render your UI.
*
* @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;
*
* @example
* const { data, loading, error } = useGetStudyPermissionsQuery({
* variables: {
* study: // value for 'study'
* },
* });
*/
export function useGetStudyPermissionsQuery(baseOptions: Apollo.QueryHookOptions<GetStudyPermissionsQuery, GetStudyPermissionsQueryVariables>) {
const options = {...defaultOptions, ...baseOptions}
return Apollo.useQuery<GetStudyPermissionsQuery, GetStudyPermissionsQueryVariables>(GetStudyPermissionsDocument, options);
}
export function useGetStudyPermissionsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions<GetStudyPermissionsQuery, GetStudyPermissionsQueryVariables>) {
const options = {...defaultOptions, ...baseOptions}
return Apollo.useLazyQuery<GetStudyPermissionsQuery, GetStudyPermissionsQueryVariables>(GetStudyPermissionsDocument, options);
}
export type GetStudyPermissionsQueryHookResult = ReturnType<typeof useGetStudyPermissionsQuery>;
export type GetStudyPermissionsLazyQueryHookResult = ReturnType<typeof useGetStudyPermissionsLazyQuery>;
export type GetStudyPermissionsQueryResult = Apollo.QueryResult<GetStudyPermissionsQuery, GetStudyPermissionsQueryVariables>;
export const GrantStudyAdminDocument = gql`
mutation grantStudyAdmin($study: ID!, $user: ID!, $isAdmin: Boolean!) {
grantStudyAdmin(study: $study, user: $user, isAdmin: $isAdmin)
}
`;
export type GrantStudyAdminMutationFn = Apollo.MutationFunction<GrantStudyAdminMutation, GrantStudyAdminMutationVariables>;

/**
* __useGrantStudyAdminMutation__
*
* To run a mutation, you first call `useGrantStudyAdminMutation` within a React component and pass it any options that fit your needs.
* When your component renders, `useGrantStudyAdminMutation` returns a tuple that includes:
* - A mutate function that you can call at any time to execute the mutation
* - An object with fields that represent the current status of the mutation's execution
*
* @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
*
* @example
* const [grantStudyAdminMutation, { data, loading, error }] = useGrantStudyAdminMutation({
* variables: {
* study: // value for 'study'
* user: // value for 'user'
* isAdmin: // value for 'isAdmin'
* },
* });
*/
export function useGrantStudyAdminMutation(baseOptions?: Apollo.MutationHookOptions<GrantStudyAdminMutation, GrantStudyAdminMutationVariables>) {
const options = {...defaultOptions, ...baseOptions}
return Apollo.useMutation<GrantStudyAdminMutation, GrantStudyAdminMutationVariables>(GrantStudyAdminDocument, options);
}
export type GrantStudyAdminMutationHookResult = ReturnType<typeof useGrantStudyAdminMutation>;
export type GrantStudyAdminMutationResult = Apollo.MutationResult<GrantStudyAdminMutation>;
export type GrantStudyAdminMutationOptions = Apollo.BaseMutationOptions<GrantStudyAdminMutation, GrantStudyAdminMutationVariables>;
export const GrantContributorDocument = gql`
mutation grantContributor($study: ID!, $user: ID!, $isContributor: Boolean!) {
grantContributor(study: $study, user: $user, isContributor: $isContributor)
}
`;
export type GrantContributorMutationFn = Apollo.MutationFunction<GrantContributorMutation, GrantContributorMutationVariables>;

/**
* __useGrantContributorMutation__
*
* To run a mutation, you first call `useGrantContributorMutation` within a React component and pass it any options that fit your needs.
* When your component renders, `useGrantContributorMutation` returns a tuple that includes:
* - A mutate function that you can call at any time to execute the mutation
* - An object with fields that represent the current status of the mutation's execution
*
* @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
*
* @example
* const [grantContributorMutation, { data, loading, error }] = useGrantContributorMutation({
* variables: {
* study: // value for 'study'
* user: // value for 'user'
* isContributor: // value for 'isContributor'
* },
* });
*/
export function useGrantContributorMutation(baseOptions?: Apollo.MutationHookOptions<GrantContributorMutation, GrantContributorMutationVariables>) {
const options = {...defaultOptions, ...baseOptions}
return Apollo.useMutation<GrantContributorMutation, GrantContributorMutationVariables>(GrantContributorDocument, options);
}
export type GrantContributorMutationHookResult = ReturnType<typeof useGrantContributorMutation>;
export type GrantContributorMutationResult = Apollo.MutationResult<GrantContributorMutation>;
export type GrantContributorMutationOptions = Apollo.BaseMutationOptions<GrantContributorMutation, GrantContributorMutationVariables>;
export const GrantTrainedContributorDocument = gql`
mutation grantTrainedContributor($study: ID!, $user: ID!, $isTrained: Boolean!) {
grantTrainedContributor(study: $study, user: $user, isTrained: $isTrained)
}
`;
export type GrantTrainedContributorMutationFn = Apollo.MutationFunction<GrantTrainedContributorMutation, GrantTrainedContributorMutationVariables>;

/**
* __useGrantTrainedContributorMutation__
*
* To run a mutation, you first call `useGrantTrainedContributorMutation` within a React component and pass it any options that fit your needs.
* When your component renders, `useGrantTrainedContributorMutation` returns a tuple that includes:
* - A mutate function that you can call at any time to execute the mutation
* - An object with fields that represent the current status of the mutation's execution
*
* @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
*
* @example
* const [grantTrainedContributorMutation, { data, loading, error }] = useGrantTrainedContributorMutation({
* variables: {
* study: // value for 'study'
* user: // value for 'user'
* isTrained: // value for 'isTrained'
* },
* });
*/
export function useGrantTrainedContributorMutation(baseOptions?: Apollo.MutationHookOptions<GrantTrainedContributorMutation, GrantTrainedContributorMutationVariables>) {
const options = {...defaultOptions, ...baseOptions}
return Apollo.useMutation<GrantTrainedContributorMutation, GrantTrainedContributorMutationVariables>(GrantTrainedContributorDocument, options);
}
export type GrantTrainedContributorMutationHookResult = ReturnType<typeof useGrantTrainedContributorMutation>;
export type GrantTrainedContributorMutationResult = Apollo.MutationResult<GrantTrainedContributorMutation>;
export type GrantTrainedContributorMutationOptions = Apollo.BaseMutationOptions<GrantTrainedContributorMutation, GrantTrainedContributorMutationVariables>;
Loading