Skip to content

Commit

Permalink
insertLocalAuthorityRegisterRequest repo
Browse files Browse the repository at this point in the history
  • Loading branch information
JakeReadman committed Mar 1, 2024
1 parent 63b7503 commit ff0d11c
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 1 deletion.
15 changes: 15 additions & 0 deletions appsync.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,13 @@ export type LocalAuthorityProfile = {
user: LocalAuthorityUser;
};

export type LocalAuthorityRegisterRequest = {
__typename?: 'LocalAuthorityRegisterRequest';
email: Scalars['String']['output'];
message: Scalars['String']['output'];
name: Scalars['String']['output'];
};

export type LocalAuthorityUser = {
__typename?: 'LocalAuthorityUser';
department: Scalars['String']['output'];
Expand All @@ -95,6 +102,7 @@ export type Mutation = {
__typename?: 'Mutation';
insertItemQuery: Scalars['Boolean']['output'];
insertJoinRequest: Scalars['Boolean']['output'];
insertLocalAuthorityRegisterRequest: Scalars['Boolean']['output'];
insertSignUpData: Scalars['Boolean']['output'];
registerLocalAuthority: Scalars['Boolean']['output'];
updateJoinRequest: Scalars['Boolean']['output'];
Expand Down Expand Up @@ -129,6 +137,13 @@ export type MutationInsertJoinRequestArgs = {
};


export type MutationInsertLocalAuthorityRegisterRequestArgs = {
email: Scalars['String']['input'];
message: Scalars['String']['input'];
name: Scalars['String']['input'];
};


export type MutationInsertSignUpDataArgs = {
email: Scalars['String']['input'];
id: Scalars['String']['input'];
Expand Down
8 changes: 8 additions & 0 deletions schema.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,8 @@ type Mutation {
aboutCharity: String
): Boolean!

insertLocalAuthorityRegisterRequest(name: String!, email: String!, message: String!): Boolean!

insertSignUpData(id: String!, email: String!, type: String!): Boolean!
insertItemQuery(
name: String!
Expand Down Expand Up @@ -161,3 +163,9 @@ type CharitySignUpDetails {
charityUser: CharityUser!
charityDetails: CharityDetails!
}

type LocalAuthorityRegisterRequest {
name: String!
email: String!
message: String!
}
13 changes: 12 additions & 1 deletion src/handlers/privateResolver.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {
MutationInsertSignUpDataArgs,
MutationInsertJoinRequestArgs,
MutationInsertItemQueryArgs,
MutationInsertLocalAuthorityRegisterRequestArgs,
} from '../../appsync';
import { logger } from '../shared/logger';
import { LocalAuthorityDataRepository } from '../repository/localAuthorityDataRepository';
Expand All @@ -14,20 +15,24 @@ import { JoinRequestsRepository } from '../repository/joinRequestsRepository';
import { SchoolProfileRepository } from '../repository/schoolProfileRepository';
import { SignUpDataRepository } from '../repository/signUpDataRepository';
import { ItemQueriesRepository } from '../repository/itemQueriesRepository';
import { LocalAuthorityRegisterRequestsRepository } from '../repository/localAuthorityRegisterRequestsRepository';

const localAuthorityDataRepository = LocalAuthorityDataRepository.getInstance();
const localAuthorityUserRepository = LocalAuthorityUserRepository.getInstance();
const joinRequestsRepository = JoinRequestsRepository.getInstance();
const schoolProfileRepository = SchoolProfileRepository.getInstance();
const signUpDataRepository = SignUpDataRepository.getInstance();
const itemQueriesRepository = ItemQueriesRepository.getInstance();
const localAuthorityRegisterRequestsRepository =
LocalAuthorityRegisterRequestsRepository.getInstance();

export const handler: AppSyncResolverHandler<
| MutationRegisterLocalAuthorityArgs
| MutationInsertSignUpDataArgs
| MutationUpdateSchoolProfileArgs
| MutationUpdateJoinRequestArgs
| MutationInsertItemQueryArgs,
| MutationInsertItemQueryArgs
| MutationInsertLocalAuthorityRegisterRequestArgs,
boolean
> = async (event, context, callback) => {
logger.info(`Running function with ${JSON.stringify(event)}`);
Expand Down Expand Up @@ -92,6 +97,12 @@ export const handler: AppSyncResolverHandler<
callback(null, res);
break;
}
case 'insertLocalAuthorityRegisterRequest': {
const { name, email, message } = params as MutationInsertLocalAuthorityRegisterRequestArgs;
const res = await localAuthorityRegisterRequestsRepository.insert({ name, email, message });
callback(null, res);
break;
}

default: {
callback(`Unexpected type ${info.fieldName}`);
Expand Down
31 changes: 31 additions & 0 deletions src/repository/localAuthorityRegisterRequestsRepository.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import { Collection, Db, MongoClient } from 'mongodb';
import { LocalAuthorityRegisterRequest } from '../../appsync';

export class LocalAuthorityRegisterRequestsRepository {
private static instance: LocalAuthorityRegisterRequestsRepository;
private readonly client: MongoClient;
private readonly db: Db;
private readonly collection: Collection<LocalAuthorityRegisterRequest>;

private constructor() {
this.client = new MongoClient(
process?.env?.MONGODB_CONNECTION_STRING ?? 'mongodb://localhost:27017/',
{ authMechanism: 'MONGODB-AWS', authSource: '$external' }
);
this.db = this.client.db('D2E');
this.collection = this.db.collection<LocalAuthorityRegisterRequest>(
'LocalAuthorityRegisterRequests'
);
}

static getInstance(): LocalAuthorityRegisterRequestsRepository {
if (!this.instance) {
this.instance = new LocalAuthorityRegisterRequestsRepository();
}
return this.instance;
}

public async insert(registerRequestData: LocalAuthorityRegisterRequest): Promise<boolean> {
return (await this.collection.insertOne(registerRequestData)).acknowledged;
}
}

0 comments on commit ff0d11c

Please sign in to comment.