Skip to content

Commit

Permalink
Merge pull request #449 from ubc-biztech/dev
Browse files Browse the repository at this point in the history
Merge dev to master (serverless)
  • Loading branch information
voctory authored Jan 25, 2025
2 parents b9660cd + 94fa90b commit f8ee2fb
Show file tree
Hide file tree
Showing 2 changed files with 118 additions and 75 deletions.
188 changes: 113 additions & 75 deletions services/interactions/helpers.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
import { QueryCommand, UpdateCommand } from "@aws-sdk/lib-dynamodb";
import {
PutCommand, QueryCommand, UpdateCommand
} from "@aws-sdk/lib-dynamodb";
import {
QRS_TABLE,
CONNECTIONS_TABLE,
QUESTS_TABLE,
PROFILES_TABLE
PROFILES_TABLE,
NFC_SCANS_TABLE
} from "../../constants/tables";
import db from "../../lib/db";
import handlerHelpers from "../../lib/handlerHelpers";
Expand Down Expand Up @@ -34,7 +37,9 @@ export const handleConnection = async (userID, connID, timestamp) => {
"eventID;year": CURRENT_EVENT
});

let { data: connProfileData } = await db.getOne(connID, QRS_TABLE, {
let {
data: connProfileData
} = await db.getOne(connID, QRS_TABLE, {
"eventID;year": CURRENT_EVENT
});

Expand Down Expand Up @@ -85,39 +90,46 @@ export const handleConnection = async (userID, connID, timestamp) => {
createdAt: timestamp,
...(connData.linkedin
? {
linkedinURL: connData.linkedin
}
: {}),
linkedinURL: connData.linkedin
}
: {
}),
...(connData.fname
? {
fname: connData.fname
}
: {}),
fname: connData.fname
}
: {
}),
...(connData.lname
? {
lname: connData.lname
}
: {}),
lname: connData.lname
}
: {
}),
...(connData.major
? {
major: connData.major
}
: {}),
major: connData.major
}
: {
}),
...(connData.year
? {
year: connData.year
}
: {}),
year: connData.year
}
: {
}),
...(connData.company
? {
company: connData.company
}
: {}),
company: connData.company
}
: {
}),
...(connData.role
? {
title: connData.role
}
: {})
title: connData.role
}
: {
})
};

const connPut = {
Expand All @@ -127,62 +139,69 @@ export const handleConnection = async (userID, connID, timestamp) => {
createdAt: timestamp,
...(userData.linkedin
? {
linkedinURL: userData.linkedin
}
: {}),
linkedinURL: userData.linkedin
}
: {
}),
...(userData.fname
? {
fname: userData.fname
}
: {}),
fname: userData.fname
}
: {
}),
...(userData.lname
? {
lname: userData.lname
}
: {}),
lname: userData.lname
}
: {
}),
...(userData.major
? {
major: userData.major
}
: {}),
major: userData.major
}
: {
}),
...(userData.year
? {
year: userData.year
}
: {}),
year: userData.year
}
: {
}),
...(userData.company
? {
company: userData.company
}
: {}),
company: userData.company
}
: {
}),
...(userData.role
? {
role: userData.role
}
: {})
role: userData.role
}
: {
})
};

const promises = [];
switch (connData.type) {
case EXEC + EXEC:
promises.push(incrementQuestProgress(profileID, QUEST_CONNECT_EXEC_H));
case EXEC + EXEC:
promises.push(incrementQuestProgress(profileID, QUEST_CONNECT_EXEC_H));

case EXEC:
promises.push(incrementQuestProgress(userData.id, QUEST_CONNECT_EXEC_H));
case EXEC:
promises.push(incrementQuestProgress(userData.id, QUEST_CONNECT_EXEC_H));

// case ATTENDEE:
default:
promises.push(
db.put(connPut, CONNECTIONS_TABLE, true),
db.put(userPut, CONNECTIONS_TABLE, true),
incrementQuestProgress(userData.id, QUEST_CONNECT_ONE),
incrementQuestProgress(userData.id, QUEST_CONNECT_FOUR),
incrementQuestProgress(userData.id, QUEST_CONNECT_TEN_H),
incrementQuestProgress(connData.id, QUEST_CONNECT_ONE),
incrementQuestProgress(connData.id, QUEST_CONNECT_FOUR),
incrementQuestProgress(connData.id, QUEST_CONNECT_TEN_H)
);
break;
default:
promises.push(
db.put(connPut, CONNECTIONS_TABLE, true),
db.put(userPut, CONNECTIONS_TABLE, true),
incrementQuestProgress(userData.id, QUEST_CONNECT_ONE),
incrementQuestProgress(userData.id, QUEST_CONNECT_FOUR),
incrementQuestProgress(userData.id, QUEST_CONNECT_TEN_H),
incrementQuestProgress(connData.id, QUEST_CONNECT_ONE),
incrementQuestProgress(connData.id, QUEST_CONNECT_FOUR),
incrementQuestProgress(connData.id, QUEST_CONNECT_TEN_H)
);
break;
}

try {
Expand Down Expand Up @@ -231,22 +250,22 @@ const isDuplicateRequest = async (userID, connID) => {
export const handleWorkshop = async (profileID, workshopID, timestamp) => {
try {
switch (workshopID) {
case WORKSHOP_TWO:
await incrementQuestProgress(profileID, QUEST_WORKSHOP);
return handlerHelpers.createResponse(200, {
message: "Completed Workshop Two Challenge"
});
case WORKSHOP_TWO:
await incrementQuestProgress(profileID, QUEST_WORKSHOP);
return handlerHelpers.createResponse(200, {
message: "Completed Workshop Two Challenge"
});

case WORKSHOP_TWO_PARTICIPANT:
await incrementQuestProgress(profileID, QUEST_WORKSHOP_TWO_PARTICIPANT);
return handlerHelpers.createResponse(200, {
message: "Braved 1-on-1 onstage interview"
});
case WORKSHOP_TWO_PARTICIPANT:
await incrementQuestProgress(profileID, QUEST_WORKSHOP_TWO_PARTICIPANT);
return handlerHelpers.createResponse(200, {
message: "Braved 1-on-1 onstage interview"
});

default:
return handlerHelpers.createResponse(200, {
message: "Unknown workshop"
});
default:
return handlerHelpers.createResponse(200, {
message: "Unknown workshop"
});
}
} catch (error) {
console.error(error);
Expand All @@ -255,6 +274,25 @@ export const handleWorkshop = async (profileID, workshopID, timestamp) => {
};

export const handleBooth = async (profileID, boothID, timestamp) => {
let putItem = {
id: profileID,
name: boothID,
createdAt: timestamp
};

const params = {
Item: putItem,
TableName: NFC_SCANS_TABLE + (process.env.ENVIRONMENT || "")
};

try {
const command = new PutCommand(params);
await docClient.send(command);
} catch (err) {
const errorResponse = this.dynamoErrorResponse(err);
console.error(errorResponse);
}

if (BIGTECH.includes(boothID)) {
try {
await incrementQuestProgress(profileID, QUEST_BIGTECH);
Expand Down
5 changes: 5 additions & 0 deletions services/interactions/serverless.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,11 @@ provider:
Resource:
- "arn:aws:dynamodb:us-west-2:432714361962:table/bizConnections${self:provider.environment.ENVIRONMENT}"
- "arn:aws:dynamodb:us-west-2:432714361962:table/bizConnections${self:provider.environment.ENVIRONMENT}/index/eventID-year"
- Effect: Allow
Action:
- dynamodb:PutItem
Resource:
- "arn:aws:dynamodb:us-west-2:432714361962:table/biztechNFCScans${self:provider.environment.ENVIRONMENT}"
- Effect: Allow
Action:
- dynamodb:Query
Expand Down

0 comments on commit f8ee2fb

Please sign in to comment.