-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathreview-handler.js
102 lines (88 loc) · 3.96 KB
/
review-handler.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
'use strict';
const ReviewsHelper = require('./helpers/reviews')
const Status = require('@pbnj-xintern/xintern-commons/util/status')
const TOKEN_SECRET = process.env.TOKEN_SECRET
const AuthHelper = require('@pbnj-xintern/xintern-commons/util/auth_checker')
const middy = require('middy')
//--------------- LAMBDA FUNCTIONS ---------------
module.exports.getUpvotedReviewsByUserId = middy(async (event) => {
let payload = (event.body instanceof Object) ? event.body : JSON.parse(event.body)
let decodedJWT = false
if (event.headers && event.headers.Authorization) {
decodedJWT = AuthHelper.decodeJWT(event.headers.Authorization.replace("Bearer ", ""));
}
if (decodedJWT) {
let user_id = decodedJWT.userId;
return await ReviewsHelper.getUpvotedReviewsByUserId(user_id)
}
return Status.createErrorResponse(403, "Invalid Bearer Token")
}).use(AuthHelper.verifyJWT(TOKEN_SECRET))
module.exports.getDownvotedReviewsByUserId = middy(async (event) => {
let payload = (event.body instanceof Object) ? event.body : JSON.parse(event.body)
let decodedJWT = false
if (event.headers && event.headers.Authorization) {
decodedJWT = AuthHelper.decodeJWT(event.headers.Authorization.replace("Bearer ", ""));
}
if (decodedJWT) {
let user_id = decodedJWT.userId;
return await ReviewsHelper.getDownvotedReviewsByUserId(user_id)
}
return Status.createErrorResponse(403, "Invalid Bearer Token")
}).use(AuthHelper.verifyJWT(TOKEN_SECRET))
module.exports.createReview = middy(async (event) => {
let payload = (event.body instanceof Object) ? event.body : JSON.parse(event.body)
let decodedJWT = false
if (event.headers && event.headers.Authorization) {
decodedJWT = AuthHelper.decodeJWT(event.headers.Authorization.replace("Bearer ", ""));
}
if (decodedJWT) {
payload.user_id = decodedJWT.userId;
return await ReviewsHelper.createReview(payload)
}
return Status.createErrorResponse(403, "Invalid Bearer Token")
}).use(AuthHelper.verifyJWT(TOKEN_SECRET))
//updateReview 2.1
module.exports.updateReview = middy(async (event) => {
let payload = (event.body instanceof Object) ? event.body : JSON.parse(event.body)
let reviewId = event.pathParameters.review_id
return await ReviewsHelper.updateReview(reviewId, payload)
}).use(AuthHelper.verifyJWT(TOKEN_SECRET))
//updateReview 2.2
module.exports.updateRating = middy(async (event) => {
let payload = (event.body instanceof Object) ? event.body : JSON.parse(event.body)
let ratingId = event.pathParameters.rating_id
return await ReviewsHelper.updateRating(ratingId, payload)
}).use(AuthHelper.verifyJWT(TOKEN_SECRET))
//deleteReview 3.3
module.exports.deleteReview = middy(async (event) => {
let reviewId = event.pathParameters.review_id
return await ReviewsHelper.deleteReview(reviewId)
}).use(AuthHelper.verifyJWT(TOKEN_SECRET))
module.exports.getFlaggedReviews = event => {
return Status.createErrorResponse(501, 'NOT YET SUPPORTED')
// return ReviewsHelper.getFlaggedReviews()
}
module.exports.getReviewsByCompany = async (event) => {
return await ReviewsHelper.getReviewsByCompany(event.pathParameters.company_name)
}
module.exports.getReviewById = async event => {
let result = await ReviewsHelper.getReviewById(event.pathParameters.review_id);
if (!result)
return Status.createErrorResponse(400, "Could not find review")
return Status.createSuccessResponse(200, result)
}
module.exports.getRecentReviews = async (event) => {
return await ReviewsHelper.getRecentReviews()
}
module.exports.getReviewsByPosition = async (event) => {
let pulledReviews = await ReviewsHelper.getReviewsByPosition(event.pathParameters.position)
if (!pulledReviews)
return Status.createErrorResponse(500, "Could not retrieve reviews by position")
return Status.createSuccessResponse(200, pulledReviews)
}
module.exports.getAllPositions = async (event) => {
let allPositions = await ReviewsHelper.getAllPositions()
if (!allPositions)
return Status.createErrorResponse(500, "Could not retrieve all positions")
return Status.createSuccessResponse(200, allPositions)
}