-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathUser.gs
More file actions
72 lines (71 loc) · 2.42 KB
/
User.gs
File metadata and controls
72 lines (71 loc) · 2.42 KB
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
function User (user_params) {
this.findUserBy = function (options) {
try {
if (USERS_SHEET.getLastRow() == 1) {
throw new Error("Не можу знайти користувача");
}
var titles = getTitles(USERS_SHEET);
var key = Object.keys(options)[0];
var rowTitle;
var rowUser;
var user;
for (var i in titles) {
if (titles[i] == key) {
rowTitle = parseInt(i);
}
};
var ids = USERS_SHEET.getRange(2, rowTitle + 1, USERS_SHEET.getLastRow()-1, 1).getValues();
for (var j in ids) {
if (ids[j] == options[key]){
rowUser = parseInt(j) + 2;
var data = USERS_SHEET.getRange(rowUser, 1,1, USERS_SHEET.getLastColumn())
.getValues()[0];
var column_name = USERS_SHEET.getRange(1,1, 1, USERS_SHEET.getLastColumn())
.getValues()[0];
user = toObject(data, column_name);
}
}
if (typeof(user) == "undefined") {
throw new Error("Не можу знайти користувача");
} else {
user.row_id = rowUser;
return user;
}
}
catch(err) {
return err;
}
}
this.initUser = function (user_params) {
var user = this.findUserBy({ telegram_id: user_params.id });
if (user.constructor.name == "Error") {
user = this.createUser(user_params);
var message = "First Name: " + user.first_name + " Last Name: " +
user.last_name + " User Name: " + user.username;
sendNotify(message);
}
return user;
}
this.createUser = function (user_params) {
var id = getNewId(USERS_SHEET);
var game = new Game();
user_params.telegram_id = user_params.id;
user_params.id = id;
user_params.current_shot = 0;
user_params.best_win_shots = 0;
user_params.game_count = 0;
user_params.wins = 0;
user_params.created_at = new Date();
user_params.first_name = user_params.first_name || "";
user_params.last_name = user_params.last_name || "";
user_params.username = user_params.username || "";
user_params.number = game.generateNumber();
var user = create(USERS_SHEET, user_params);
user.row_id = USERS_SHEET.getLastRow();
return user;
};
this.attributes = this.initUser(user_params);
this.saveUser = function () {
setValues(USERS_SHEET, this.attributes, this.attributes.row_id);
}
}