From a1e81124139a4e3e72b1ced2954197623ee00b48 Mon Sep 17 00:00:00 2001 From: Ryan Smith Date: Fri, 1 Mar 2024 20:38:09 +0000 Subject: [PATCH] feat: add delete join request operation --- appsync.d.ts | 6 ++++++ schema.graphql | 2 ++ src/handlers/privateResolver.ts | 8 ++++++++ src/repository/joinRequestsRepository.ts | 4 ++++ 4 files changed, 20 insertions(+) diff --git a/appsync.d.ts b/appsync.d.ts index 59db819..ec3b764 100644 --- a/appsync.d.ts +++ b/appsync.d.ts @@ -104,6 +104,7 @@ export type LocalAuthorityUser = { export type Mutation = { __typename?: 'Mutation'; + deleteDeniedJoinRequest: Scalars['Boolean']['output']; insertItemQuery: Scalars['Boolean']['output']; insertJoinRequest: Scalars['Boolean']['output']; insertLocalAuthorityRegisterRequest: Scalars['Boolean']['output']; @@ -114,6 +115,11 @@ export type Mutation = { }; +export type MutationDeleteDeniedJoinRequestArgs = { + name: Scalars['String']['input']; +}; + + export type MutationInsertItemQueryArgs = { connection?: InputMaybe; email: Scalars['String']['input']; diff --git a/schema.graphql b/schema.graphql index 5a7856c..cbc4244 100644 --- a/schema.graphql +++ b/schema.graphql @@ -132,6 +132,8 @@ type Mutation { phone: String! connection: String ): Boolean! + + deleteDeniedJoinRequest(name: String!): Boolean! } schema { diff --git a/src/handlers/privateResolver.ts b/src/handlers/privateResolver.ts index ed1b62b..52f0696 100644 --- a/src/handlers/privateResolver.ts +++ b/src/handlers/privateResolver.ts @@ -7,6 +7,7 @@ import { MutationInsertJoinRequestArgs, MutationInsertItemQueryArgs, MutationInsertLocalAuthorityRegisterRequestArgs, + MutationDeleteDeniedJoinRequestArgs, } from '../../appsync'; import { logger } from '../shared/logger'; import { LocalAuthorityDataRepository } from '../repository/localAuthorityDataRepository'; @@ -33,6 +34,7 @@ export const handler: AppSyncResolverHandler< | MutationUpdateJoinRequestArgs | MutationInsertItemQueryArgs | MutationInsertJoinRequestArgs + | MutationDeleteDeniedJoinRequestArgs | MutationInsertLocalAuthorityRegisterRequestArgs, boolean > = async (event, context, callback) => { @@ -110,6 +112,12 @@ export const handler: AppSyncResolverHandler< callback(null, res); break; } + case 'deleteDeniedJoinRequest': { + const { name } = params as MutationDeleteDeniedJoinRequestArgs; + const res = await joinRequestsRepository.deleteDenied(name); + callback(null, res); + break; + } default: { callback(`Unexpected type ${info.fieldName}`); diff --git a/src/repository/joinRequestsRepository.ts b/src/repository/joinRequestsRepository.ts index 2d2f0a5..59ea27f 100644 --- a/src/repository/joinRequestsRepository.ts +++ b/src/repository/joinRequestsRepository.ts @@ -61,4 +61,8 @@ export class JoinRequestsRepository { public async insert(user: JoinRequest): Promise { return (await this.collection.insertOne(user)).acknowledged; } + + public async deleteDenied(name: string): Promise { + return (await this.collection.deleteOne({ name, status: 'DENIED' })).acknowledged; + } }