Skip to content

Commit 232bb80

Browse files
authored
Merge pull request #132 from uwblueprint/nav-jacob-login-real
Add Admin Login Authentication (Navraj & Jacob)
2 parents 7a1fac9 + 5fbe856 commit 232bb80

File tree

17 files changed

+35117
-78
lines changed

17 files changed

+35117
-78
lines changed

backend/graphql/index.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,16 @@ import resolverTypes from "./types/resolvers";
1313

1414
import participantResolvers from "./resolvers/participantResolver";
1515
import miscResolvers from "./resolvers/miscResolver";
16+
import authResolver from "./resolvers/auth";
1617

1718
const schema = makeExecutableSchema({
1819
typeDefs: [...scalarTypeDefs, dataModels, customTypes, resolverTypes],
19-
resolvers: merge(scalarResolvers, participantResolvers, miscResolvers),
20+
resolvers: merge(
21+
scalarResolvers,
22+
participantResolvers,
23+
miscResolvers,
24+
authResolver,
25+
),
2026
});
2127

2228
export default schema;

backend/graphql/resolvers/auth.ts

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import { AuthenticationError } from "apollo-server-express";
2+
import { IAuthService } from "../../services/interface/auth";
3+
import AuthService from "../../services/implementation/auth";
4+
5+
const authService: IAuthService = new AuthService();
6+
7+
const authResolver = {
8+
Mutation: {
9+
login: async (
10+
_parent: undefined,
11+
{
12+
role,
13+
encryptedPassword,
14+
}: {
15+
role: string;
16+
encryptedPassword: string;
17+
},
18+
) => {
19+
try {
20+
return await authService.login(role, encryptedPassword);
21+
} catch (error) {
22+
if (error instanceof Error) {
23+
throw new AuthenticationError(error.message);
24+
} else {
25+
throw new AuthenticationError("An unknown error occurred");
26+
}
27+
}
28+
},
29+
},
30+
};
31+
32+
export default authResolver;

backend/graphql/types/models.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ const dataModels = gql`
3030
credit: Int!
3131
comment: String
3232
}
33+
34+
type AuthResponse {
35+
type: String!
36+
accessToken: String!
37+
}
3338
`;
3439

3540
export default dataModels;

backend/graphql/types/resolvers.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ const resolverTypes = gql`
88
}
99
1010
type Mutation {
11+
login(role: String!, encryptedPassword: String!): AuthResponse
1112
createParticipant(
1213
participantId: String
1314
roomNumber: Int

0 commit comments

Comments
 (0)