App Script PT Api
App Script PT Api
// inisiasi nilai
const today = new Date
// insert data
sheet.getRange(`A${row}`).setValue(today)
sheet.getRange(`B${row}`).setValue(logMessage)
}
function formatDate(date) {
const monthIndoList = ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Ags',
'Sep', 'Okt', 'Nov', 'Des']
return result
}
// payload
const data = {
parse_mode : 'HTML',
chat_id : chatId,
reply_to_message_id : replyToMessageId,
text : textMessage,
disable_web_page_preview: true,
}
const options = {
method : 'post',
contentType: 'application/json',
payload : JSON.stringify(data)
}
// inisiasi variabel
let nama = ''
let kodeBarang = ''
let alamat = ''
let resi = ''
// kumpulkan hasil
const result = {
nama : nama,
kodeBarang: kodeBarang,
alamat : alamat,
resi : resi,
}
function inputDataOrder(data) {
try {
// akses sheet
const spreadsheet = SpreadsheetApp.openById(spreadsheetId)
const sheet = spreadsheet.getSheetByName(dataOrderSheetName)
const lastRow = sheet.getLastRow()
const row = lastRow + 1
// inisiasi nilai
const number = lastRow
const idOrder = `ORD-${number}`
const today = new Date
// insert data
sheet.getRange(`A${row}`).setValue(number)
sheet.getRange(`B${row}`).setValue(idOrder)
sheet.getRange(`C${row}`).setValue(today)
sheet.getRange(`D${row}`).setValue(data['nama'])
sheet.getRange(`E${row}`).setValue(data['kodeBarang'])
sheet.getRange(`F${row}`).setValue(data['alamat'])
sheet.getRange(`G${row}`).setValue(data['resi'])
sheet.getRange(`H${row}`).setValue('Sedang dikemas')
sheet.getRange(`I${row}`).setValue(data['chatId'])
} catch(err) {
return false
}
}
// akses sheet
const spreadsheet = SpreadsheetApp.openById(spreadsheetId)
const sheet = spreadsheet.getSheetByName(dataOrderSheetName)
const lastRow = sheet.getLastRow()
// ambil data
const range = `A2:I${lastRow}`
const dataList = sheet.getRange(range).getValues()
// filter data
const dataListFiltered = dataList.filter(el => el[6].toString().toLowerCase() ===
resi.toString().toLowerCase())
// variabel balasan
let messageReply = ''
// jika ditemukan
if (isResiFound) {
// jika ada no resi yang sama, yang diambil yang paling atas
const data = dataListFiltered[0]
ID Order: ${data[1]}
Tanggal Order: ${formatDate(data[2])}
Nama: ${data[3]}
Kode Barang: ${data[4]}
Alamat: ${data[5]}
Status Pengiriman: <b>${data[7]}</b>`
// jika tidak
} else {
messageReply = `Resi ${resi} tidak ditemukan.`
}
return messageReply
}
function handleUpdateDeliveryStatus(e) {
// ambil info sheet dan row yang baru diedit
const row = e.range.getRow()
const column = e.range.getA1Notation().replace(/[^a-zA-Z]/g, '')
const sheetName = e.range.getSheet().getSheetName()
// akses sheet
const spreadsheet = SpreadsheetApp.openById(spreadsheetId)
const sheet = spreadsheet.getSheetByName(dataOrderSheetName)
const today = new Date
// ambil data
const range = `A${row}:I${row}`
const data = sheet.getRange(range).getValues()
// isi konstanta
const idOrder = data[0][1]
const tanggalOrder = data[0][2]
const nama = data[0][3]
const kodeBarang = data[0][4]
const alamat = data[0][5]
const resi = data[0][6]
const statusPengiriman = data[0][7]
const chatId = data[0][8].toString()
ID Order: ${idOrder}
Tanggal Order: ${formatDate(tanggalOrder)}
Nama: ${nama}
Kode Barang: ${kodeBarang}
Alamat: ${alamat}
Status Pengiriman: <b>${statusPengiriman}</b>
<i>Data per-${formatDate(today)}</i>`
// kirim pesan
sendTelegramMessage(chatId, null, textMessage)
}
function doPost(e) {
try {
// urai pesan masuk
const contents = JSON.parse(e.postData.contents)
const chatId = contents.message.chat.id
const receivedTextMessage = contents.message.text.replace(botHandle, '').trim()
// hapus botHandle jika pesan berasal dari grup
const messageId = contents.message.message_id
// 3. cek resi
} else if (receivedTextMessage.split(' ')[0].toLowerCase() === '/resi') {
// ambil resi
const resi = receivedTextMessage.split(' ')[1]
// ambil info
messageReply = cekResi(resi)
// 4. format
} else if (receivedTextMessage.toLowerCase() === '/format') {
messageReply = `Untuk <b>input data order</b> gunakan format:
<pre>/input
Nama:
Kode Barang:
Alamat:
Resi: </pre>
// 5. format salah
} else {
messageReply = `Pesan yang Anda kirim tidak sesuai format.
Kirim perintah /format untuk melihat daftar format pesan yang tersedia.`
}
} catch(err) {
log(err)
}
}
function setWebhook() {
// akses api
const url = `${telegramApiUrl}/setwebhook?url=${appsScriptUrl}`
const response = UrlFetchApp.fetch(url).getContentText()
Logger.log(response)
}