feat: add health

This commit is contained in:
Nathan Lamy 2025-08-19 19:32:12 +02:00
parent b2d23dd6d8
commit 12241d52b9
3 changed files with 26 additions and 10 deletions

View file

@ -11,7 +11,10 @@ export default class UserController {
async me({ auth }: HttpContext) { async me({ auth }: HttpContext) {
return { return {
success: true, success: true,
data: auth.user, data: {
...auth.user?.serialize(),
email: auth.user!.email || '',
},
} }
} }

View file

@ -3,8 +3,19 @@ import Examiner from '#models/examiner'
import Room from '#models/room' import Room from '#models/room'
import Subject from '#models/subject' import Subject from '#models/subject'
import User from '#models/user' import User from '#models/user'
import redis from '@adonisjs/redis/services/main'
export class ColleService { export class ColleService {
async getHealthyUntil(className: string) {
const healtyUntil = await redis.get(`healthy_until_${className}`)
return new Date(healtyUntil || '')
}
async getLastSync(className: string) {
const lastSync = await redis.get(`last_sync_${className}`)
return new Date(lastSync || '')
}
async getStudent(studentName: string, className: string) { async getStudent(studentName: string, className: string) {
// Find or create a student by name // Find or create a student by name
const { firstName, lastName } = this.splitNames(studentName) const { firstName, lastName } = this.splitNames(studentName)
@ -90,6 +101,8 @@ export class ColleService {
classColles, classColles,
studentColles, studentColles,
favoriteColles, favoriteColles,
healthyUntil: await this.getHealthyUntil(student.className),
lastSync: await this.getLastSync(student.className),
} }
} }

View file

@ -37,16 +37,16 @@ const SubjectsController = () => import('#controllers/subjects_controller')
router.get('/subjects', [SubjectsController, 'index']).use(middleware.auth()) router.get('/subjects', [SubjectsController, 'index']).use(middleware.auth())
// TEST ROUTE // TEST ROUTE
import redis from '@adonisjs/redis/services/main' // import redis from '@adonisjs/redis/services/main'
router.get('/', async () => { // router.get('/', async () => {
await redis.publish("jobs_queue", JSON.stringify({ // await redis.publish("jobs_queue", JSON.stringify({
type: 1, // type: 1,
date: "20/09/2019", // date: "20/09/2019",
class_name: "MPSI 2", // class_name: "MPSI 2",
})) // }))
return { message: 'Hello, world!' } // return { message: 'Hello, world!' }
}) // })
// END TEST ROUTE // END TEST ROUTE
const CollesController = () => import('#controllers/colles_controller') const CollesController = () => import('#controllers/colles_controller')