91 lines
2.5 KiB
JavaScript
91 lines
2.5 KiB
JavaScript
import {createClient} from '@supabase/supabase-js'
|
|
import express from "express"
|
|
import bodyParser from "body-parser"
|
|
import dayjs from "dayjs"
|
|
|
|
const supabase = createClient(process.env.SUPABASE_URL,process.env.SUPABASE_SERVICE_ROLE_KEY)
|
|
|
|
|
|
const app = express()
|
|
app.use(bodyParser.json())
|
|
|
|
app.get("/", async (req,res) => {
|
|
|
|
let data = (await supabase.from("devices").select()).data
|
|
|
|
|
|
res.json(data)
|
|
})
|
|
|
|
app.post("/executeTimeCommand", async (req,res) => {
|
|
console.log(req.body)
|
|
let body = req.body
|
|
let deviceData = (await supabase.from("devices").select().eq("id",body.deviceId).single()).data
|
|
let currentTenant = deviceData.tenant
|
|
console.log(deviceData)
|
|
console.log(currentTenant)
|
|
|
|
|
|
if(deviceData.password === body.devicePassword) {
|
|
let user = {}
|
|
if(!body.tokenId && !body.userId) {
|
|
res.sendStatus(400)
|
|
}
|
|
else if(body.tokenId && !body.userId) {
|
|
user = ((await supabase.from("profiles").select().eq("tokenId",body.tokenId).single()).data)
|
|
console.log(user)
|
|
} else {
|
|
user.id = body.userId
|
|
}
|
|
|
|
|
|
|
|
let startedWorkingTime = (await supabase.from("workingtimes").select().eq("user",user.id).is("end",null).single()).data
|
|
|
|
if(startedWorkingTime) {
|
|
//Stop Time
|
|
|
|
const {data,error} = await supabase.from("workingtimes")
|
|
.update({end: String(dayjs().format("HH:mm:ss"))+ "+01", state: "Am Terminal gestoppt"})
|
|
.eq("id", startedWorkingTime.id)
|
|
|
|
if(error) throw error
|
|
|
|
console.log(data)
|
|
console.log("Time Stopped")
|
|
|
|
res.json({
|
|
message: `Deine Zeit wurde gestoppt, bis bald ${user.firstName}`,
|
|
type: "stopped"
|
|
})
|
|
|
|
|
|
} else {
|
|
//Start Time
|
|
|
|
const {data,error} = await supabase.from("workingtimes")
|
|
.insert([{
|
|
user: user.id,
|
|
date: dayjs().format("YYYY-MM-DD"),
|
|
start: String(dayjs().format("HH:mm:ss"))+ "+01",
|
|
tenant: currentTenant,
|
|
state: "Am Terminal gestartet"
|
|
}])
|
|
|
|
if(error) throw error
|
|
|
|
console.log(data)
|
|
console.log("Time Started")
|
|
|
|
res.json({
|
|
message: `Hallo ${user.firstName}, deine Zeit wurde gestartet`,
|
|
type: "started"
|
|
})
|
|
}
|
|
} else {
|
|
res.sendStatus(401)
|
|
}
|
|
})
|
|
|
|
app.listen(3001)
|