function doGet(req) {

  var data_limit = req.parameter.data_limit; //all, 5,10
  var Sheet = SheetConn("SaleData");
  var values = Sheet.getRange("a2:H"+getLastPopulatedRow(Sheet,"a1:a")).getValues(); 

  var output=[];
  for(var i =0; i<values.length;i++){
    var row={}

    if (values[i][0]!=null ){             

      row['LineID']=values[i][0]
      row['OrderID']=values[i][1]
      row['CustomerName']=values[i][2]
      row['Product']=values[i][3]
      row['Quantity']=values[i][4]
      row['Price']=values[i][5]
      row['Total']=values[i][6]
      row['Date']=values[i][7]
      output.push(row);
      
    }  
  }
 
  if(data_limit != "all"){

    return ContentService.createTextOutput(JSON.stringify({data:output.slice(0,data_limit)})).setMimeType(ContentService.MimeType.JSON);
     
  }else{

    //return all data
    return ContentService.createTextOutput(JSON.stringify({data:output})).setMimeType(ContentService.MimeType.JSON);
  }
  
  
}

function SheetConn(SheetName) {
  /*
  This will connect to the sheet. 
  This is needed in order to access the sheet and read and write data.
  
  @parameters: sheetname
  @return: connection string
  */
  
  // Working ID -> get this from sheet URL
  var strFileID = SpreadsheetApp.getActiveSpreadsheet().getId();
  var ss = SpreadsheetApp.openById(strFileID); 
  var sheet = ss.getSheetByName(SheetName);
  
  return sheet;   
}


function getLastPopulatedRow(SheetConn, SourceRange) {
  /*
  This will get the last row that has data
  
  @parameters: sheet connection string and column range, i.e., A1:A
  @return: the last row number found data on
  */
  
  var s = SheetConn;
  var data = s.getRange(SourceRange + s.getLastRow()).getValues();
  var populated = false;
  
  for (var i = data.length - 1; i > 0; i--) {
    for (var j = 0; j < data[0].length; j++) {
      if (data[i][j]) {
        populated = true;
        break;
      }
    }
    if (populated) break;
  }
  i++;
  return i;
}
