Advertisement
retnet

CRUD gsheet

Apr 21st, 2020
552
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ketentuan = header pada baris ke 2, kolom A B C D dan E berisi tgl
  2. // isi pada baris ke 3 dst
  3. function doGet(e) {
  4.     var op = e.parameter.action;
  5.     var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/xxx/edit#gid=xxx");
  6.     var sheet = ss.getSheetByName("Sheet1");
  7.  
  8.     if (op == "insert")
  9.         return insert_value(e, sheet);
  10.     //Make sure you are sending proper parameters
  11.     if (op == "read")
  12.         return read_value(e, sheet);
  13.     if (op == "update")
  14.         return update_value(e, sheet);
  15.     if (op == "delete")
  16.         return delete_value(e, sheet);
  17.     if (op == "readAll")
  18.         return read_all_value(e, ss);
  19. }
  20.  
  21. // pada kolom header harus sesuai dengan isi cell, contoh dlm hal ini = id, name, alamat, tonase
  22. function insert_value(request, sheet) {
  23.   var id = request.parameter.id;
  24.   var name = request.parameter.name;
  25.   var alamat = request.parameter.alamat;
  26.   var tonase = request.parameter.tonase;
  27.  
  28.   var flag = 1;
  29.   var lr = sheet.getLastRow();
  30.     for (var i = 1; i <= lr; i++) {
  31.     //mencari kolom 1
  32.         var id1 = sheet.getRange(i, 1).getValue();
  33.         if (id1 == id) {
  34.             flag = 0;
  35.             var result = "Id already exist..";
  36.         }
  37.     }
  38.     //add new row with recieved parameter from client
  39.     if (flag == 1) {
  40.         var d = new Date();
  41.         var currentTime = d.toLocaleString();
  42.         var numcols = sheet.getLastColumn();
  43.         var rowData = sheet.appendRow([id,name,alamat,tonase,currentTime]);
  44.         var result = "Insertion successful";
  45.     }
  46.     result = JSON.stringify({
  47.         "result": result
  48.     });
  49.  
  50.     return ContentService
  51.         .createTextOutput(result)
  52.         .setMimeType(ContentService.MimeType.JAVASCRIPT);
  53. }
  54.  
  55. function read_all_value(request, ss) {
  56.     var output = ContentService.createTextOutput(),
  57.         data = {};
  58.     //Note : here sheet is sheet name , don't get confuse with other operation
  59.     var sheet = "Sheet1";
  60.     data.records = readData_(ss, sheet);
  61.     var callback = request.parameters.callback;
  62.     if (callback === undefined) {
  63.         output.setContent(JSON.stringify(data));
  64.     } else {
  65.         output.setContent(callback + "(" + JSON.stringify(data) + ")");
  66.     }
  67.     output.setMimeType(ContentService.MimeType.JAVASCRIPT);
  68.     return output;
  69. }
  70.  
  71. function readData_(ss, sheetname, properties) {
  72.     if (typeof properties == "undefined") {
  73.         properties = getHeaderRow_(ss, sheetname);
  74.         properties = properties.map(function(p) {
  75.             return p.replace(/\s+/g, '_');
  76.         });
  77.     }
  78.     var rows = getDataRows_(ss, sheetname),
  79.         data = [];
  80.     for (var r = 0, l = rows.length; r < l; r++) {
  81.         var row = rows[r],
  82.             record = {};
  83.         for (var p in properties) {
  84.             record[properties[p]] = row[p];
  85.         }
  86.         data.push(record);
  87.     }
  88.     return data;
  89. }
  90.  
  91. function getDataRows_(ss, sheetname) {
  92.     var sh = ss.getSheetByName(sheetname);
  93.     //lihat baris ke3
  94.     return sh.getRange(3, 1, sh.getLastRow() - 2, sh.getLastColumn()).getValues();
  95. }
  96.  
  97. function getHeaderRow_(ss, sheetname) {
  98.     var sh = ss.getSheetByName(sheetname);
  99.     //lihat baris ke2
  100.     return sh.getRange(2, 1, 1, sh.getLastColumn()).getValues()[0];
  101. }
  102.  
  103. //update function
  104.  
  105. function update_value(request, sheet) {
  106.     var output = ContentService.createTextOutput();
  107.     var id = request.parameter.id;
  108.     var flag = 0;
  109.     var name = request.parameter.name;
  110.     var alamat = request.parameter.alamat;
  111.     var tonase = request.parameter.tonase;
  112.  
  113.     var lr = sheet.getLastRow();
  114.     for (var i = 1; i <= lr; i++) {
  115.     //lihat kolom ke satu
  116.         var rid = sheet.getRange(i, 1).getValue();
  117.         if (rid == id) {
  118.             sheet.getRange(i, 2).setValue(name);
  119.             sheet.getRange(i, 3).setValue(alamat);
  120.             sheet.getRange(i, 4).setValue(tonase);
  121.             var result = "value updated successfully";
  122.             flag = 1;
  123.         }
  124.     }
  125.     if (flag == 0)
  126.         var result = "id not found";
  127.  
  128.     result = JSON.stringify({
  129.         "result": result
  130.     });
  131.  
  132.     return ContentService
  133.         .createTextOutput(result)
  134.         .setMimeType(ContentService.MimeType.JAVASCRIPT);
  135. }
  136.  
  137. function delete_value(request, sheet) {
  138.     var output = ContentService.createTextOutput();
  139.     var id = request.parameter.id;
  140.     var name = request.parameter.name;
  141.     var alamat = request.parameter.alamat;
  142.     var tonase = request.parameter.tonase;
  143.  
  144.     var flag = 0;
  145.  
  146.     var lr = sheet.getLastRow();
  147.     for (var i = 1; i <= lr; i++) {
  148.     //lihat kolom ke satu
  149.         var rid = sheet.getRange(i, 1).getValue();
  150.         if (rid == id) {
  151.             sheet.deleteRow(i);
  152.             var result = "value deleted successfully";
  153.             flag = 1;
  154.         }
  155.     }
  156.     if (flag == 0)
  157.         var result = "id not found";
  158.     result = JSON.stringify({
  159.         "result": result
  160.     });
  161.  
  162.     return ContentService
  163.         .createTextOutput(result)
  164.         .setMimeType(ContentService.MimeType.JAVASCRIPT);
  165. }
  166.  
  167. function read_value(request, sheet) {
  168.   var id = request.parameter.id;
  169.   var name;
  170.   var alamat;
  171.   var tonase;
  172.  
  173. var record = {};
  174.     //var place = request.parameter.place;
  175.     var flag = 1;
  176.     var lr = sheet.getLastRow();
  177.     for (var i = 1; i <= lr; i++) {
  178.     // lihat kolom ke satu
  179.         var id1 = sheet.getRange(i, 1).getValue();
  180.         if (id1 == id) {
  181.             flag = 0;
  182.             name = sheet.getRange(i, 2).getValue();
  183.             alamat = sheet.getRange(i, 3).getValue();
  184.             tonase = sheet.getRange(i, 4).getValue();
  185.             var result = JSON.stringify({
  186.                 "user": {
  187.                     "id": id,
  188.                     "name": name,
  189.                     "alamat": alamat,
  190.                     "tonase": tonase
  191.                 }
  192.             });
  193.         }
  194.     }
  195.     return ContentService
  196.         .createTextOutput(result)
  197.         .setMimeType(ContentService.MimeType.JAVASCRIPT);
  198. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement