feathers-mongoose-casl
Version 2.1.2
Version 2.1.2
  • feathers-mongoose-casl
  • Docs
    • Migrating
    • START A NEW PROJECT
      • Generate a new project.
      • install feathers-mongoose-casl
      • feathers-logger
      • Update config
      • Add mongoose
      • Email service
      • App hooks
      • Import required services
      • Verify user and filter user fields
      • Swagger, Logger, BodyParser
      • Email templates
      • public HTML
      • Run the server
      • Create you first user
      • vs code snippet extension
      • Test Login
      • Dashboard
      • Create a new Service with casl&Dashboard
      • Posts Postman snippet
      • Add Admin role
      • Done!
    • Advanced
      • Security - eslint-plugin-security
      • Security - rate limiting
      • Development tools
    • Guides
      • Throw errors
      • Auth Flow
      • Authentication
      • Authouriztion
      • /me
      • Rules Cache
      • Create a new service
      • Custom service validtor client data
      • validators
        • Example of use
        • Types
        • Mongoose schema
      • Default value
      • $Populate
      • Upload service
      • Upload files
        • Create upload service
        • Sign File After Populate
        • Storage support
          • Google-cloud
      • Error
      • feathers Client examples
      • Dashboard
        • Dashboard Config
          • Field configuration
          • doc Layout
          • custom Fields
            • customElements
        • Online dashboard
        • Add to your react app
      • customized feathers-mongoose-casl/services
      • Redis - in progress
      • S3
      • Postman
      • Swagger
      • debug
    • Production
      • ENV
    • Feathers wiki
      • Good links
    • utils
      • send email example
      • Async For Each
      • Create heroku server
      • pick
      • vs code snippet extension
      • Persist user request
    • Ecosystem
    • TODO
    • Versions updates
Powered by GitBook
On this page

Was this helpful?

  1. Docs
  2. Guides
  3. validators

Example of use

const {Joi} =  require('feathers-mongoose-casl'); 

const  getJoiObject  =  function(withRequired){
    const  required  =  withRequired  ?  'required'  :  'optional';
    return  Joi.object({
        user:  Joi.objectId().meta({ 
            type:  'ObjectId',
            ref:  'users',
            displayKey:  'email'
            })[required](),
        title:  Joi.string(),
        message:  Joi.string(),
        icon:  Joi.string(),
        img:  Joi.string(),
        link:  Joi.string().allow(null),
        linkText:  Joi.string().allow(null),
        isRead:  Joi.boolean().meta({default:  false}),
        readTime:  Joi.date(),
        type:  Joi.string().valid('info','success','error','warning')
    });
};



module.exports  =  getJoiObject;
What is this [required]() ?
When you want to make field required you need to add [required]() in the end in this way we can make it required only when client try to create document, if you want the field to be required even on update then just write required().
getJoiObject(true) - will check client request with required tests.
getJoiObject(false) - will check client request without the required tests.
PreviousvalidatorsNextTypes

Last updated 5 years ago

Was this helpful?