rework and update deps

This commit is contained in:
2021-04-18 17:02:17 +02:00
commit 16216a4906
44 changed files with 5399 additions and 0 deletions

View File

@@ -0,0 +1,62 @@
import {HttpContextContract} from '@ioc:Adonis/Core/HttpContext'
import StoreValidator from "App/Validators/StoreValidator";
import Link from "App/Models/Link";
import UpdateValidator from "App/Validators/UpdateValidator";
export default class LinksController {
public async getLink ({params, response}: HttpContextContract) {
const code = params.id
const link = await Link.findByOrFail('code', code)
if (link.code === code) {
let visitCount = link.visitCount
await link.merge({
visitCount: visitCount++
}).save()
return response.redirect(link.target)
}
return response.badRequest(`Code does not exist ! (/${code})`)
}
public async getAllLinks ({response}: HttpContextContract) {
const links = await Link.all()
return response.ok(links);
}
public async getVisitCount ({params}: HttpContextContract) {
const code = params.id
const link = await Link.findByOrFail('code', code)
//Check if code exists
if (link.code === code) {
return {
count: link.visitCount
}
}
return {
message: `Code does not exist ! (${code}`
}
}
public async createLink ({request}: HttpContextContract) {
const link = await Link.create(await request.validate(StoreValidator))
return {
message: `Link successfully created : ${link.code} + ${link.target}`
}
}
public async updateLink ({request}: HttpContextContract) {
const link = await Link.findByOrFail('code', request.input('link'))
const data = await request.validate(UpdateValidator)
await link.merge(data).save()
return link
}
public async deleteLink ({request}: HttpContextContract) {
const code = request.input('code')
const link = await Link.findByOrFail('code', code)
await link.delete()
}
}

View File

@@ -0,0 +1,27 @@
import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
export default class UsersController {
public async login ({request, auth}: HttpContextContract) {
const email = request.input('email')
const password = request.input('password')
const token = await auth.use('api').attempt(email, password, {
expiresIn: '2 days'
})
return token.toJSON()
}
public async createInfiniteToken ({request, auth}: HttpContextContract) {
const email = request.input('email')
const password = request.input('password')
const token = await auth.use('api').attempt(email, password)
return token.toJSON()
}
public async logout ({auth}: HttpContextContract) {
await auth.use('api').logout()
return { message: 'Vous avez été déconnecté' }
}
}