mirror of
https://github.com/ArthurDanjou/artdanj-api.git
synced 2026-01-22 16:00:26 +01:00
Working on new features
This commit is contained in:
@@ -1,16 +1,18 @@
|
||||
import {HttpContextContract} from "@ioc:Adonis/Core/HttpContext";
|
||||
import GuestBookMessage from "../../Models/GuestBookMessage";
|
||||
import StoreValidator from "../../Validators/guestbook/StoreValidator";
|
||||
import GuestValidator from "../../Validators/guestbook/GuestValidator";
|
||||
|
||||
export default class GuestBookController {
|
||||
|
||||
public async index () {
|
||||
public async get () {
|
||||
return GuestBookMessage.query().orderBy('created_at', 'desc')
|
||||
}
|
||||
|
||||
public async store ({request}: HttpContextContract) {
|
||||
const data = await request.validate(StoreValidator)
|
||||
return await GuestBookMessage.create(data)
|
||||
public async store ({request, auth}: HttpContextContract) {
|
||||
if (auth.isLoggedIn) {
|
||||
const data = await request.validate(GuestValidator)
|
||||
return await GuestBookMessage.create(data)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ export default class LocationsController {
|
||||
})
|
||||
}
|
||||
|
||||
public async add ({ request, response }: HttpContextContract) {
|
||||
public async store ({ request, response }: HttpContextContract) {
|
||||
const data = await request.validate(LocationValidator)
|
||||
await Location.create(data)
|
||||
return response.status(200).send({
|
||||
|
||||
@@ -11,7 +11,7 @@ export default class ProjectsController {
|
||||
})
|
||||
}
|
||||
|
||||
public async add ({ request, response}: HttpContextContract) {
|
||||
public async store ({ request, response}: HttpContextContract) {
|
||||
const data = await request.validate(ProjectValidator)
|
||||
await Project.create(data)
|
||||
return response.status(200).send({
|
||||
|
||||
21
app/Controllers/Http/SubscribersController.ts
Normal file
21
app/Controllers/Http/SubscribersController.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
|
||||
import SubscriberValidator from "../../Validators/subscriber/SubscriberValidator";
|
||||
import Subscriber from "../../Models/Subscriber";
|
||||
|
||||
export default class SubscribersController {
|
||||
|
||||
public async get ({ response }: HttpContextContract) {
|
||||
return response.status(200).send({
|
||||
count: Subscriber.query().count
|
||||
})
|
||||
}
|
||||
|
||||
public async store ({ request, response }: HttpContextContract) {
|
||||
const data = await request.validate(SubscriberValidator)
|
||||
await Subscriber.create(data)
|
||||
return response.status(200).send({
|
||||
message: 'Subscriber successfully registered !'
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
import {HttpContextContract} from '@ioc:Adonis/Core/HttpContext'
|
||||
import User from "App/Models/User";
|
||||
import StoreValidator from "App/Validators/users/StoreValidator";
|
||||
import UpdateValidator from "App/Validators/users/UpdateValidator";
|
||||
import UserStoreValidator from "../../../app/Validators/users/UserStoreValidator";
|
||||
import UserUpdateValidator from "../../../app/Validators/users/UserUpdateValidator";
|
||||
|
||||
export default class UsersController {
|
||||
|
||||
@@ -10,7 +10,7 @@ export default class UsersController {
|
||||
}
|
||||
|
||||
public async store ({request}: HttpContextContract) {
|
||||
const data = await request.validate(StoreValidator)
|
||||
const data = await request.validate(UserStoreValidator)
|
||||
return await User.create(data)
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ export default class UsersController {
|
||||
|
||||
public async update({ request, params, response }: HttpContextContract) {
|
||||
const user = await User.findOrFail(params.id)
|
||||
const data = await request.validate(UpdateValidator)
|
||||
const data = await request.validate(UserUpdateValidator)
|
||||
const { email } = data
|
||||
const user2 = await User.findBy('email', email)
|
||||
|
||||
|
||||
16
app/Models/Subscriber.ts
Normal file
16
app/Models/Subscriber.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
import { DateTime } from 'luxon'
|
||||
import { BaseModel, column } from '@ioc:Adonis/Lucid/Orm'
|
||||
|
||||
export default class Subscriber extends BaseModel {
|
||||
@column({ isPrimary: true })
|
||||
public id: number
|
||||
|
||||
@column()
|
||||
public email: string
|
||||
|
||||
@column.dateTime({ autoCreate: true })
|
||||
public createdAt: DateTime
|
||||
|
||||
@column.dateTime({ autoCreate: true, autoUpdate: true })
|
||||
public updatedAt: DateTime
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
|
||||
import {rules, schema} from '@ioc:Adonis/Core/Validator'
|
||||
|
||||
export default class StoreValidator {
|
||||
export default class GuestValidator {
|
||||
constructor (private ctx: HttpContextContract) {
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
|
||||
import {rules, schema} from '@ioc:Adonis/Core/Validator'
|
||||
|
||||
export default class StoreValidator {
|
||||
export default class SubscriberValidator {
|
||||
constructor (private ctx: HttpContextContract) {
|
||||
}
|
||||
|
||||
@@ -9,8 +9,7 @@ export default class StoreValidator {
|
||||
email: schema.string({ trim: true }, [
|
||||
rules.email(),
|
||||
rules.unique({table: 'subscribers', column: 'email'})
|
||||
]),
|
||||
name: schema.string()
|
||||
])
|
||||
})
|
||||
|
||||
public cacheKey = this.ctx.routeKey
|
||||
@@ -1,21 +0,0 @@
|
||||
import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
|
||||
import {rules, schema} from '@ioc:Adonis/Core/Validator'
|
||||
|
||||
export default class UpdateValidator {
|
||||
constructor (private ctx: HttpContextContract) {
|
||||
}
|
||||
|
||||
public schema = schema.create({
|
||||
email: schema.string({ trim: true }, [
|
||||
rules.email(),
|
||||
rules.unique({table: 'subscribers', column: 'email'})
|
||||
]),
|
||||
name: schema.string.optional()
|
||||
})
|
||||
|
||||
public cacheKey = this.ctx.routeKey
|
||||
|
||||
public messages = {
|
||||
required: 'Le champ {{field}} doit être valide !'
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
|
||||
import {rules, schema} from '@ioc:Adonis/Core/Validator'
|
||||
|
||||
export default class StoreValidator {
|
||||
export default class UserStoreValidator {
|
||||
constructor (private ctx: HttpContextContract) {
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
|
||||
import {rules, schema} from '@ioc:Adonis/Core/Validator'
|
||||
|
||||
export default class UpdateValidator {
|
||||
export default class UserUpdateValidator {
|
||||
constructor (private ctx: HttpContextContract) {
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user