forked from GME-392/sanhak-client
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdynamo.js
95 lines (87 loc) · 2.6 KB
/
dynamo.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
//처음에 넣을 때 쓰는 함수
//모든 데이터를 받아서 한번에 처리해준다.
//예측으로는 ID, PW, bojName, email이 4가지만 들어온다.
let AWS = require("aws-sdk");
AWS.config.update({
region: "ap-northeast-2",
endpoint: "http://dynamodb.ap-northeast-2.amazonaws.com",
});
const dynamo = new AWS.DynamoDB.DocumentClient();
exports.handler = (event, context, callback) => {
let userId = event ? event.userid : "default";
let userPw = event ? event.userpw : "default";
let bojName = event ? event.bojname : "default";
let userEmail = event ? event.useremail : "default";
if (
userId == "default" ||
userPw == "default" ||
bojName == "default" ||
userEmail == "default" ||
userId == "" ||
userPw == "" ||
bojName == "" ||
userEmail == ""
) {
console.log("userId, userPw, bojName, userEmail: ", userId, userPw, bojName, userEmail);
let response = {
statusCode: 400,
headers: { post: "fail" },
body: JSON.stringify({ message: "missing content" }),
isBase64Encoded: false,
};
callback(null, response);
return;
}
const params = {
TableName: "ACTIVE_USER",
Item: {
user_id: userId,
user_pw: userPw,
boj_name: bojName,
created_at: `${new Date()}`,
group_auth: [false],
group_name: ["default"],
problem_num: [-1],
problem_solved: [false],
user_email: userEmail,
user_level: 0,
user_rank: -1,
user_status: true,
},
};
let failResponse = {
statusCode: 400,
headers: { post: "fail" },
body: JSON.stringify({ message: "error occured when putting item" }),
isBase64Encoded: false,
};
dynamo.put(params, function (err, data) {
if (err) {
console.log("Error", err);
callback(null, failResponse);
} else {
console.log("Success", data);
let responseBody = { message: "puttinf item success" };
let response = {
statusCode: 200,
headers: {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods": "GET, POST, OPTIONS",
"Access-Control-Max-Age": "3600",
"Access-Control-Allow-Headers":
"Origin, Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers, Authorization",
post: "success",
},
body: JSON.stringify(responseBody),
isBase64Encoded: false,
};
callback(null, {
statusCode: 200,
headers: {
"Access-Control-Allow-Origin": "*",
},
body: JSON.stringify(responseBody),
});
}
});
};