You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
130 lines
3.2 KiB
130 lines
3.2 KiB
fetch = require("node-fetch")
|
|
|
|
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"
|
|
|
|
|
|
cookie = "timesheets=s%3A8OD5JBpF-Xt2XnETidIulrB3t0zx7hyM.COWXDBh6q%2BzYIAZaBEzP1JipOuy9UgIRKydvlrC0rUE"
|
|
|
|
oncArr = [
|
|
{
|
|
year:2023,
|
|
month: 02,
|
|
day: 17
|
|
},
|
|
{
|
|
year:2023,
|
|
month: 03,
|
|
day: 10
|
|
},
|
|
{
|
|
year:2023,
|
|
month: 03,
|
|
day: 31
|
|
},
|
|
{
|
|
year:2023,
|
|
month: 04,
|
|
day: 21
|
|
},
|
|
{
|
|
year:2023,
|
|
month: 05,
|
|
day: 12
|
|
},
|
|
{
|
|
year:2023,
|
|
month: 06,
|
|
day: 02
|
|
}
|
|
]
|
|
|
|
function makeArr(startDateObj,username, password){
|
|
date = new Date(startDateObj.year+"-"+startDateObj.month+"-"+startDateObj.day)
|
|
dateMs = Date.parse(date)+7200000 // fuck TZ
|
|
dateArr =[]
|
|
postDataObj = {}
|
|
i = 7
|
|
re = /(.*)T/
|
|
while (i != 0) {
|
|
|
|
day = new Date(dateMs)
|
|
postDataObj = {teamId:null,
|
|
date:day.toISOString().substring(0, 10),
|
|
startTime:"17:30",
|
|
endTime:"07:00"}
|
|
|
|
switch (day.getDay()) {
|
|
|
|
case 0:
|
|
postDataObj.startTime="00:00"
|
|
postDataObj.endTime="00:00"
|
|
dateArr.push(postDataObj)
|
|
break;
|
|
case 6:
|
|
postDataObj.startTime="00:00"
|
|
postDataObj.endTime="00:00"
|
|
dateArr.push(postDataObj)
|
|
break;
|
|
case 5:
|
|
postDataObj.endTime="00:00"
|
|
dateArr.push(postDataObj)
|
|
break;
|
|
case 1:
|
|
postDataObj = {teamId:null,
|
|
date:day.toISOString().substring(0, 10),
|
|
startTime:"00:00",
|
|
endTime:"07:00"}
|
|
dateArr.push(postDataObj)
|
|
|
|
postDataObj = {teamId:null,
|
|
date:day.toISOString().substring(0, 10),
|
|
startTime:"17:30",
|
|
endTime:"07:00"}
|
|
dateArr.push(postDataObj)
|
|
break;
|
|
default:
|
|
dateArr.push(postDataObj)
|
|
break;
|
|
}
|
|
|
|
dateMs = dateMs+86400000
|
|
i =i-1
|
|
}
|
|
dateSend(dateArr, cookie)
|
|
}
|
|
|
|
async function dateSend(dateArr, cookie) {
|
|
console.log(dateArr)
|
|
fetch('https://timesheets.node4.co.uk/api/on-call', {
|
|
method: 'post',
|
|
body: JSON.stringify(dateArr),
|
|
headers: {
|
|
"Accept":"application/json, text/plain, */*",
|
|
"Accept-Encoding":"gzip, deflate, br",
|
|
"Accept-Language":"en-US,en;q=0.5",
|
|
"Cache-Control":"no-cache",
|
|
"Connection":"keep-alive",
|
|
"Content-Type":"application/json",
|
|
"Cookie": cookie,
|
|
"Host": "timesheets.node4.co.uk",
|
|
"Pragma":"no-cache",
|
|
"Referer":"https://timesheets.node4.co.uk/on-call/entries",
|
|
"Sec-Fetch-Dest":"empty",
|
|
"Sec-Fetch-Mode":"cors",
|
|
"Sec-Fetch-Site":"same-origin",
|
|
"Sec-GPC":1,
|
|
"User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:94.0) Gecko/20100101 Firefox/94.0"
|
|
}
|
|
})
|
|
.then(res => res.text())
|
|
.then(body => console.log(body));
|
|
|
|
}
|
|
|
|
|
|
|
|
oncArr.forEach(obj => {
|
|
makeArr(obj)
|
|
})
|
|
|