diff --git a/app/Controllers/Http/AuthController.ts b/app/Controllers/Http/AuthController.ts index db24dee..a07222f 100644 --- a/app/Controllers/Http/AuthController.ts +++ b/app/Controllers/Http/AuthController.ts @@ -30,7 +30,7 @@ export default class AuthController { const password = request.input('password') const token = await auth.use('api').attempt(email, password, { - expiresIn: '10 days' + expiresIn: '2 days' }) return token.toJSON() } diff --git a/app/Controllers/Http/FormsController.ts b/app/Controllers/Http/FormsController.ts new file mode 100644 index 0000000..83d57dd --- /dev/null +++ b/app/Controllers/Http/FormsController.ts @@ -0,0 +1,17 @@ +import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext' +import FormValidator from "App/Validators/FormValidator"; +import Form from "App/Models/Form"; + +export default class FormsController { + + public async send({ request, response }: HttpContextContract) { + const data = await request.validate(FormValidator) + + await Form.create(data) + //todo send confirmation email + email to me + return response.status(200).send({ + status: 200 + }) + } + +} diff --git a/app/Controllers/Http/SubscribersController.ts b/app/Controllers/Http/SubscribersController.ts deleted file mode 100644 index c5f943a..0000000 --- a/app/Controllers/Http/SubscribersController.ts +++ /dev/null @@ -1,41 +0,0 @@ -import {HttpContextContract} from "@ioc:Adonis/Core/HttpContext"; -import Subscriber from "App/Models/Subscriber"; -import StoreValidator from "App/Validators/subscriber/StoreValidator"; -import UpdateValidator from "App/Validators/subscriber/UpdateValidator"; - -export default class SubscribersController { - - public async index ({request}: HttpContextContract) { - const limit = request.input('limit') - const page = request.input('page') - if (limit && page) { - return Subscriber.query().orderBy('id', 'asc').paginate(page, limit); - } else { - return Subscriber.query().orderBy('id', 'asc'); - } - } - - public async store ({request}: HttpContextContract) { - const data = await request.validate(StoreValidator) - return await Subscriber.create(data) - } - - public async show ({params}: HttpContextContract) { - return await Subscriber.findOrFail(params.id) - } - - public async update({ request, params }: HttpContextContract) { - const subscriber = await Subscriber.findOrFail(params.id) - const data = await request.validate(UpdateValidator) - await subscriber.merge(data).save() - - return { message: 'L\'abonné a été mis à jour' } - } - - public async destroy({ params }: HttpContextContract) { - const subscriber = await Subscriber.findOrFail(params.id) - await subscriber.delete() - return { message: "L\'abonné a bien été supprimé" } - } - -} diff --git a/app/Helpers/GetWakatimeActivity.ts b/app/Helpers/GetWakatimeActivity.ts deleted file mode 100644 index 78f995e..0000000 --- a/app/Helpers/GetWakatimeActivity.ts +++ /dev/null @@ -1,15 +0,0 @@ -import axios from "axios"; -import Env from "@ioc:Adonis/Core/Env"; - -export default function getActivity() { - let last_activity = '' - axios.get('https://wakatime.com/api/v1/users/current', { - headers: { - 'Authorization': `Basic ${Env.get('WAKATIME_API_KEY')}` - } - }) - .then((res) => { - last_activity = res.data.last_heartbeat_at - }) - return last_activity -} diff --git a/app/Models/Subscriber.ts b/app/Models/Form.ts similarity index 75% rename from app/Models/Subscriber.ts rename to app/Models/Form.ts index ee385a5..5a0bc66 100644 --- a/app/Models/Subscriber.ts +++ b/app/Models/Form.ts @@ -1,7 +1,7 @@ import { DateTime } from 'luxon' import { BaseModel, column } from '@ioc:Adonis/Lucid/Orm' -export default class Subscriber extends BaseModel { +export default class Form extends BaseModel { @column({ isPrimary: true }) public id: number @@ -11,6 +11,12 @@ export default class Subscriber extends BaseModel { @column() public email: string + @column() + public subject: string + + @column() + public content: string + @column.dateTime({ autoCreate: true }) public createdAt: DateTime diff --git a/app/Validators/FormValidator.ts b/app/Validators/FormValidator.ts new file mode 100644 index 0000000..6c6947b --- /dev/null +++ b/app/Validators/FormValidator.ts @@ -0,0 +1,16 @@ +import { schema } from '@ioc:Adonis/Core/Validator' +import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext' + +export default class FormValidator { + constructor (protected ctx: HttpContextContract) { + } + + public schema = schema.create({ + name: schema.string(), + email: schema.string(), + subject: schema.string(), + content: schema.string() + }) + + public messages = {} +} diff --git a/config/database.ts b/config/database.ts index f872fbb..c240aef 100644 --- a/config/database.ts +++ b/config/database.ts @@ -43,7 +43,7 @@ const databaseConfig: DatabaseConfig & { orm: Partial } = { password: Env.get('MYSQL_PASSWORD', ''), database: Env.get('MYSQL_DB_NAME'), }, - healthCheck: false, + healthCheck: true, debug: false, }, diff --git a/config/session.ts b/config/session.ts index 79a4d0f..11b7f46 100644 --- a/config/session.ts +++ b/config/session.ts @@ -76,7 +76,7 @@ const sessionConfig: SessionConfig = { cookie: { path: '/', httpOnly: true, - sameSite: false, + sameSite: true, }, /* diff --git a/start/routes.ts b/start/routes.ts index 65d9e84..10a3b72 100644 --- a/start/routes.ts +++ b/start/routes.ts @@ -40,7 +40,6 @@ Route.get('/states', 'StatesController.get') Route.get('/projects', 'ProjectsController.get') Route.resource('users', 'UsersController').only(['index', 'show']) -Route.resource('subscribers', 'SubscribersController').only(['index', 'show', 'store']) Route.group(() => { Route.get('/', 'FileController.index') Route.get('/:filename', async ({ response, params }) => { @@ -50,7 +49,7 @@ Route.group(() => { Route.group(() => { Route.resource('users', 'UsersController').only(['store', 'update', 'destroy']) - Route.resource('subscribers', 'SubscribersController').only(['update', 'destroy']) + Route.post('form', 'FormsController.send') Route.resource('files', 'FileController').only(['store', 'destroy']) Route.post('/locations', 'LocationsController.add') Route.post('/projects', 'ProjectsController.add')