Advertisement
Guest User

Untitled

a guest
May 24th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.96 KB | None | 0 0
  1. function myFunction() {
  2. var user_name = "aki";
  3. var pass = "1234567";
  4. var data = {data: "dummy"};
  5. var score = Math.random();
  6. main("Log", user_name, pass, data, score);
  7. }
  8.  
  9. function hash(key, value) {
  10. return Utilities.base64Encode(Utilities.computeHmacSha256Signature(value, key));
  11. }
  12. function main(table, user_name, pass, data, score){
  13. pass = hash(user_name, pass);
  14. var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Users");
  15. var uid = findOrCreate(user_name, pass);
  16. if(uid == -1){
  17. return false;
  18. }
  19. addRecord("Log", uid, {h: 2}, 0.5);
  20. }
  21.  
  22. function addRecord(table, uid, obj, score) {
  23. var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(table);
  24. sheet.getRange(102, 1, 1, 3).setValues([[uid, obj, score]]);
  25. sheet.sort(3);
  26. }
  27.  
  28. function findOrCreate(user_name, pass) {
  29. var uid = find(user_name, pass);
  30. if(uid > 0){
  31. return uid;
  32. }
  33. if(uid != -1){
  34. return uid;
  35. }
  36. SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Users").appendRow([user_name, pass, new Date(), new Date()]);
  37. return find(user_name, pass);
  38. }
  39.  
  40. function find(user_name, pass) {
  41. var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Users");
  42. var userCount = sheet.getLastRow();
  43. var data = sheet.getRange(1, 1, userCount, 2).getValues();
  44. for(var i = 0; i < userCount; i++) {
  45. if(data[i]==null) continue;
  46. if(data[i][0] == user_name) {
  47. if(data[i][1] == pass) {
  48. return i;
  49. }else{
  50. // invalid password
  51. return -2;
  52. }
  53. }
  54. }
  55.  
  56. return -1;
  57. }
  58.  
  59. function doGet(e)
  60. {
  61. var user_name = e.parameter["name"];
  62. var pass = e.parameter["pass"];
  63. var data = e.parameter["data"];
  64. var score = e.parameter["score"];
  65. var table = e.parameter["table"];
  66. if(data == undefined){
  67. var result = main(table, user_name, pass, data, score);
  68. }
  69.  
  70. var d = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(table).getRange(1, 1, 100, 3).getValues();
  71. return ContentService.createTextOutput(JSON.stringify(d));
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement