auths
objectreturn
or this.key = 'value'
, pass input data to your code viaparams
, and maintain state across executions with$checkpoint.async
(event, steps, params, auths) => {
}
if ($checkpoint === undefined) {
$checkpoint = [];
}
let text = new Buffer(steps.trigger.raw_event.body_b64, 'base64').toString();
if (text == '') {
if (steps.trigger.raw_event.uri == '/favicon.ico') {
return;
}
let debarredText = steps.trigger.raw_event.uri.slice(1)
text = decodeURIComponent(debarredText)
}
console.log(text)
let separator = "https://"
let parts = text.split(separator)
if (parts.length < 2) {
separator = "http://"
parts = text.split(separator)
}
if (parts.length < 2) {
separator = ""
parts = [parts[0], ""]
}
let [message, url] = parts
url = `${separator}${url}`
console.log({message, url})
const actions = {
/* remnote({text, url}) {
return require("@pipedreamhq/platform").axios(this, {
method: 'POST',
url: 'https://api.remnote.io/api/v0/create',
data: {
apiKey: params.remnote.apiKey,
userId: params.remnote.userId,
text: text == "" ? "Nova nota" : text,
source: url,
addToEditLater: true
}
})
},*/
task({text, url}) {
return require("@pipedreamhq/platform").axios(this, {
method: 'POST',
url: `https://tasks.googleapis.com/tasks/v1/lists/${params.tasklistId}/tasks`,
data: {
kind: "tasks#task",
title: `${text} ${url}`
},
headers: {
"Authorization": `Bearer ${auths.google_tasks.oauth_access_token}`
}
})
},
telegram({text, url}) {
return require("@pipedreamhq/platform").axios(this, {
method: 'POST',
url: `https://api.telegram.org/bot${auths.telegram_bot_api.token}/sendMessage`,
data: {
chat_id: params.telegram.chat_id,
text: `${text} ${url}`,
disable_notification: true
}
})
}
}
if (event.headers.only) {
if (actions[event.headers.only] != undefined) {
$checkpoint.push({
action: event.headers.only,
text: message,
url
})
}
} else {
Object.keys(actions).map(key => $checkpoint.push({
action: key,
text: message,
url
}));
}
while ($checkpoint.length > 0) {
tasks = $checkpoint.slice(0, 10)
let todo = tasks.map(cur => actions[cur.action](cur).catch((err) => {
console.log("fail", cur)
$checkpoint.push(cur)
console.log(err)
return err
}))
await Promise.all(todo)
$checkpoint = $checkpoint.slice(10)
console.log(`terminada rodada. itens restantes: ${$checkpoint.length}`)
}