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

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)
})