Files
artdanj-api/app/Controllers/Http/StatesController.ts
2020-12-19 18:57:19 +01:00

50 lines
1.5 KiB
TypeScript

import {HttpContextContract} from "@ioc:Adonis/Core/HttpContext";
import StateValidator from "App/Validators/state/StateValidator";
import Redis from "@ioc:Adonis/Addons/Redis";
export default class StatesController {
public async get ({response}: HttpContextContract) {
const is_sleeping = Boolean(await Redis.get('artapi/state/sleeping')) || false
const is_learning = Boolean(await Redis.get('artapi/state/learning')) || false
const is_developing = Boolean(await Redis.get('artapi/state/developing')) || false
const is_listening_music = Boolean(await Redis.get('artapi/state/listening')) || false
return response.status(200).send({
is_sleeping,
is_learning,
is_developing,
is_listening_music
})
}
public async set ({request, response}: HttpContextContract) {
const data = await request.validate(StateValidator)
const { is_developing, is_learning, is_listening_music, is_sleeping } = data
if (is_listening_music) {
await Redis.set('artapi/state/listening', this.getState(is_listening_music))
}
if (is_developing) {
await Redis.set('artapi/state/developing', this.getState(is_developing))
}
if (is_learning) {
await Redis.set('artapi/state/learning', this.getState(is_learning))
}
if (is_sleeping) {
await Redis.set('artapi/state/sleeping', this.getState(is_sleeping))
}
//Todo updateGitHub
return response.status(200).send({
message: 'States successfully modified !'
})
}
getState(state: boolean):number {
return state ? 1 : 0
}
}