Skip to content

Commit 08954f6

Browse files
authored
Merge pull request #134 from HackRU/dev
Dev
2 parents 8476a23 + 2f4ad89 commit 08954f6

38 files changed

Lines changed: 3151 additions & 138 deletions

.eslintrc

Lines changed: 6 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -113,37 +113,23 @@
113113
},
114114
{
115115
"selector": [
116-
"classProperty",
117-
"objectLiteralProperty",
118116
"typeProperty",
119-
"classMethod",
120-
"objectLiteralMethod",
121-
"typeMethod",
122-
"accessor",
123-
"enumMember"
117+
"objectLiteralProperty"
124118
],
125119
"format": [
126120
"camelCase",
127121
"snake_case",
128122
"UPPER_CASE",
129123
"PascalCase"
130-
]
124+
],
125+
"leadingUnderscore": "allow"
131126
},
132127
{
133-
"selector": [
134-
"classProperty",
135-
"objectLiteralProperty",
136-
"typeProperty",
137-
"classMethod",
138-
"objectLiteralMethod",
139-
"typeMethod",
140-
"accessor",
141-
"enumMember"
142-
],
143-
"format": null,
128+
"selector": "objectLiteralProperty",
144129
"modifiers": [
145130
"requiresQuotes"
146-
]
131+
],
132+
"format": null
147133
},
148134
{
149135
"selector": "objectLiteralProperty",

package-lock.json

Lines changed: 7 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@
44
"description": "Backend system for HackRU.",
55
"main": "serverless.ts",
66
"scripts": {
7-
"test": "jest --watch"
7+
"test": "jest --watch",
8+
"tests": "npx jest tests/ --config=tests/jest.config.ts",
9+
"eslint": "npx eslint --fix .",
10+
"prettier": "npx prettier --write ."
811
},
912
"engines": {
1013
"node": ">=14.15.0"
@@ -47,7 +50,7 @@
4750
"eslint-plugin-prettier": "^5.1.3",
4851
"jest": "^29.7.0",
4952
"json-schema-to-ts": "^1.5.0",
50-
"prettier": "3.3.2",
53+
"prettier": "^3.6.2",
5154
"serverless": "^3.39.0",
5255
"serverless-esbuild": "^1.23.3",
5356
"serverless-offline": "^13.6.0",
@@ -59,4 +62,4 @@
5962
},
6063
"author": "HackRU",
6164
"license": "MIT"
62-
}
65+
}

serverless.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import discord from '@functions/discord';
99
import read from '@functions/read';
1010
import waiver from '@functions/waiver';
1111
import resume from '@functions/resume';
12+
import teamsInvite from '@functions/teams/invite';
1213
import resetPassword from '@functions/reset-password';
1314
import forgotPassword from '@functions/forgot-password';
1415
import leaderboard from '@functions/leaderboard';
@@ -20,6 +21,12 @@ import verifyEmail from '@functions/verify-email';
2021
import deleteUser from '@functions/delete';
2122
import userExists from '@functions/user-exists';
2223
import interestForm from '@functions/interest-form';
24+
import teamsCreate from '@functions/teams/create';
25+
import memberRemoval from '@functions/teams/member-removal';
26+
import declineInvitation from '@functions/teams/decline-invite';
27+
import teamsJoin from '@functions/teams/join';
28+
import teamsRead from '@functions/teams/read';
29+
import disband from '@functions/teams/disband';
2330

2431
import * as path from 'path';
2532
import * as dotenv from 'dotenv';
@@ -53,6 +60,7 @@ const serverlessConfiguration: AWS = {
5360
attendEvent,
5461
waiver,
5562
resume,
63+
teamsInvite,
5664
read,
5765
discord,
5866
forgotPassword,
@@ -66,6 +74,12 @@ const serverlessConfiguration: AWS = {
6674
deleteUser,
6775
userExists,
6876
interestForm,
77+
teamsCreate,
78+
memberRemoval,
79+
declineInvitation,
80+
teamsJoin,
81+
teamsRead,
82+
disband,
6983
},
7084
package: { individually: true, patterns: ['!.env*', '.env.vault'] },
7185
custom: {

src/functions/attend-event/handler.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ import { middyfy } from '@libs/lambda';
44

55
import schema from './schema';
66

7-
import { MongoDB, validateToken, ensureRoles, UserDoc } from '../../util';
7+
import { MongoDB, validateToken, ensureRoles } from '../../util';
8+
import type { UserDocument } from 'src/types';
89
import * as path from 'path';
910
import * as dotenv from 'dotenv';
1011
dotenv.config({ path: path.resolve(process.cwd(), '.env') });
@@ -26,7 +27,7 @@ const attendEvent: ValidatedEventAPIGatewayProxyEvent<typeof schema> = async (ev
2627
// Connect to MongoDB
2728
const db = MongoDB.getInstance(process.env.MONGO_URI);
2829
await db.connect();
29-
const users = db.getCollection<UserDoc>('users');
30+
const users = db.getCollection<UserDocument>('users');
3031

3132
const attendEvent = await users.findOne({ email: event.body.qr });
3233

src/functions/delete/handler.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
import type { ValidatedEventAPIGatewayProxyEvent } from '@libs/api-gateway';
22
import { middyfy } from '@libs/lambda';
33
import schema from './schema';
4-
import { MongoDB, validateToken, ensureRoles, UserDoc } from '../../util';
4+
5+
import { MongoDB, validateToken, ensureRoles } from '../../util';
6+
import type { UserDocument } from 'src/types';
7+
58
import * as path from 'path';
69
import * as dotenv from 'dotenv';
710

@@ -24,7 +27,7 @@ const deleteUser: ValidatedEventAPIGatewayProxyEvent<typeof schema> = async (eve
2427
// 2. Connect to MongoDB
2528
const db = MongoDB.getInstance(process.env.MONGO_URI);
2629
await db.connect();
27-
const users = db.getCollection<UserDoc>('users');
30+
const users = db.getCollection<UserDocument>('users');
2831

2932
// 3. Check target user exists
3033
const target = await users.findOne({ email: user_email });

src/functions/index.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ export { default as discord } from './discord';
77
export { default as read } from './read';
88
export { default as waiver } from './waiver';
99
export { default as resume } from './resume';
10+
export { default as teamsInvite } from './teams/invite';
1011
export { default as resetPassword } from './reset-password';
1112
export { default as forgotPassword } from './forgot-password';
1213
export { default as leaderboard } from './leaderboard';
@@ -18,3 +19,9 @@ export { default as verifyEmail } from './verify-email';
1819
export { default as delete } from './delete';
1920
export { default as userExists } from './user-exists';
2021
export { default as interestForm } from './interest-form';
22+
export { default as teamsCreate } from './teams/create';
23+
export { default as teamsMemberRemoval } from './teams/member-removal';
24+
export { default as declineInvitation } from './teams/decline-invite';
25+
export { default as teamsJoin } from './teams/join';
26+
export { default as teamsRead } from './teams/read';
27+
export { default as teamsDisband } from './teams/disband';

0 commit comments

Comments
 (0)