feat: add NoTimestamp trait + ConvertEmptyStringsToNull middleware (#30)
Hey! 👋
This PR add some middleware and traits by default.
**Middleware**:
- `AllowGuestOnly` throws an exception if you are authenticated.
- `ConvertEmptyStringsToNull` converts empty strings in the request body to `null`
**Trait**:
- `NoTimestamp` removes the need for `created_at` and `updated_at` fields.
- `FormatDate` formats the date following a convention.
**FormatDate**
The convention is:
- Ends with `_at` => DateTime
- Ends with `_on` => Date
You can change the format you use in your UI with two getters.
```js
class MyModel extends Model {
static get formatDate () { return 'DD.MM.YYYY' }
static get formatDateTime () { return 'DD.MM.YYYY HH:mm' }
}
```
You can also directly change default values inside the Trait since it is a user Trait and not defined in the core.
<hr>
If this is merged, I'll provide the same PR to the `API` blueprint.
This commit is contained in:
15
app/Models/Traits/NoTimestamp.js
Normal file
15
app/Models/Traits/NoTimestamp.js
Normal file
@@ -0,0 +1,15 @@
|
||||
'use strict'
|
||||
|
||||
class NoTimestamp {
|
||||
register (Model) {
|
||||
Object.defineProperties(Model, 'createdAtColumn', {
|
||||
get () { return null }
|
||||
})
|
||||
|
||||
Object.defineProperties(Model, 'updatedAtColumn', {
|
||||
get () { return null }
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = NoTimestamp
|
||||
Reference in New Issue
Block a user