workend on update and create employee functions + validator
This commit is contained in:
83
app/Validators/CreateEmployeeValidator.ts
Normal file
83
app/Validators/CreateEmployeeValidator.ts
Normal file
@@ -0,0 +1,83 @@
|
||||
import { schema, rules } from '@ioc:Adonis/Core/Validator'
|
||||
import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
|
||||
|
||||
export default class CreateEmployeeValidator {
|
||||
id : number
|
||||
|
||||
constructor (protected ctx: HttpContextContract) {
|
||||
this.id = ctx.params.id
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Define schema to validate the "shape", "type", "formatting" and "integrity" of data.
|
||||
*
|
||||
* For example:
|
||||
* 1. The username must be of data type string. But then also, it should
|
||||
* not contain special characters or numbers.
|
||||
* ```
|
||||
* schema.string({}, [ rules.alpha() ])
|
||||
* ```
|
||||
*
|
||||
* 2. The email must be of data type string, formatted as a valid
|
||||
* email. But also, not used by any other user.
|
||||
* ```
|
||||
* schema.string({}, [
|
||||
* rules.email(),
|
||||
* rules.unique({ table: 'users', column: 'email' }),
|
||||
* ])
|
||||
* ```
|
||||
*/
|
||||
public schema = schema.create({
|
||||
|
||||
firstName: schema.string({
|
||||
trim: true
|
||||
}),
|
||||
|
||||
lastName: schema.string.optional({
|
||||
trim: true
|
||||
}),
|
||||
|
||||
shorthand: schema.string({
|
||||
trim: true
|
||||
},
|
||||
[
|
||||
rules.unique({
|
||||
table: 'employees',
|
||||
column: 'shorthand',
|
||||
})
|
||||
]),
|
||||
|
||||
email: schema.string.optional({
|
||||
trim: true
|
||||
},
|
||||
[
|
||||
rules.email({
|
||||
sanitize: true
|
||||
})
|
||||
]),
|
||||
|
||||
phone: schema.string.optional(),
|
||||
|
||||
mobile: schema.string.optional(),
|
||||
|
||||
contractHours: schema.number.optional()
|
||||
|
||||
})
|
||||
|
||||
/**
|
||||
* Custom messages for validation failures. You can make use of dot notation `(.)`
|
||||
* for targeting nested fields and array expressions `(*)` for targeting all
|
||||
* children of an array. For example:
|
||||
*
|
||||
* {
|
||||
* 'profile.username.required': 'Username is required',
|
||||
* 'scores.*.number': 'Define scores as valid numbers'
|
||||
* }
|
||||
*
|
||||
*/
|
||||
public messages = {
|
||||
'shorthand.unique': 'Shorthand has to be unique.',
|
||||
required: '{{ field }} is required.'
|
||||
}
|
||||
}
|
||||
86
app/Validators/UpdateEmployeeValidator.ts
Normal file
86
app/Validators/UpdateEmployeeValidator.ts
Normal file
@@ -0,0 +1,86 @@
|
||||
import { schema, rules } from '@ioc:Adonis/Core/Validator'
|
||||
import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
|
||||
|
||||
export default class UpdateEmployeeValidator {
|
||||
id : number
|
||||
|
||||
constructor (protected ctx: HttpContextContract) {
|
||||
this.id = ctx.params.id
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Define schema to validate the "shape", "type", "formatting" and "integrity" of data.
|
||||
*
|
||||
* For example:
|
||||
* 1. The username must be of data type string. But then also, it should
|
||||
* not contain special characters or numbers.
|
||||
* ```
|
||||
* schema.string({}, [ rules.alpha() ])
|
||||
* ```
|
||||
*
|
||||
* 2. The email must be of data type string, formatted as a valid
|
||||
* email. But also, not used by any other user.
|
||||
* ```
|
||||
* schema.string({}, [
|
||||
* rules.email(),
|
||||
* rules.unique({ table: 'users', column: 'email' }),
|
||||
* ])
|
||||
* ```
|
||||
*/
|
||||
public schema = schema.create({
|
||||
|
||||
firstName: schema.string({
|
||||
trim: true
|
||||
}),
|
||||
|
||||
lastName: schema.string.optional({
|
||||
trim: true
|
||||
}),
|
||||
|
||||
shorthand: schema.string({
|
||||
trim: true
|
||||
},
|
||||
[
|
||||
rules.unique({
|
||||
table: 'employees',
|
||||
column: 'shorthand',
|
||||
whereNot: {
|
||||
id: this.ctx.params.id
|
||||
}
|
||||
})
|
||||
]),
|
||||
|
||||
email: schema.string.optional({
|
||||
trim: true
|
||||
},
|
||||
[
|
||||
rules.email({
|
||||
sanitize: true
|
||||
})
|
||||
]),
|
||||
|
||||
phone: schema.string.optional(),
|
||||
|
||||
mobile: schema.string.optional(),
|
||||
|
||||
contractHours: schema.number.optional()
|
||||
|
||||
})
|
||||
|
||||
/**
|
||||
* Custom messages for validation failures. You can make use of dot notation `(.)`
|
||||
* for targeting nested fields and array expressions `(*)` for targeting all
|
||||
* children of an array. For example:
|
||||
*
|
||||
* {
|
||||
* 'profile.username.required': 'Username is required',
|
||||
* 'scores.*.number': 'Define scores as valid numbers'
|
||||
* }
|
||||
*
|
||||
*/
|
||||
public messages = {
|
||||
'shorthand.unique': 'Shorthand has to be unique.',
|
||||
required: '{{ field }} is required.'
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user