3.0.1 • Published 6 years ago

trailpack-footprints v3.0.1

Weekly downloads
53
License
MIT
Repository
github
Last release
6 years ago

trailpack-footprints

Gitter NPM version Build status Dependency Status Code Climate

Footprints Trailpack. This trailpack provides the footprint interface, which other trailpacks such as trailpack-waterline and trailpack-knex implement, as well as a suite of tests that Footprint implementations should pass.

Trails Footprints Diagram

What are Footprints?

Footprints automatically generate easy-to-use RESTful endpoints for your models.

Install

$ npm install --save trailpack-footprints

Configure

// config/main.js
module.exports = {
  packs: [
    // ... other trailpacks
    require('trailpack-footprints')
  ]
}
// config/footprints.js
module.exports = {
  /**
   * Generate routes for controller handlers.
   * You can set controllers to true/false to enable/disable 
   * automatic footprints routes globaly
   */
  controllers: {
               
     /**
      * Default methods to accept for routes generated from controller handlers.
      */
     method: '*',
  
     /**
      * List of controllers to ignore; that is, do not generate footprint routes
      * for them.
      */
     ignore: [ ]
   },

  /**
   * Generate conventional Create, Read, Update, and Delete (CRUD) routes for
   * each Model.
   */
  models: {
    options: {

      /**
       * The max number of objects to return by default. Can be overridden in
       * the request using the ?limit argument.
       */
      defaultLimit: 100,

      /**
       * Subscribe to changes on requested models via WebSocket
       * (support provided by trailpack-websocket)
       */
      watch: false,

      /**
       * Whether to populate all model associations by default (for "find")
       */
      populate: true
    },

    actions: {
      create: true,
      find: true,
      update: true,
      destroy: true,

      /**
       * Specify which "association" endpoints to activate.
       */
      createAssociation: true,
      findAssociation: true,
      updateAssociation: true,
      destroyAssociation: true
    }
  },

  /**
   * Prefix your footprint route paths
   */
  prefix: '/api/v1'
}

API

api.services.FootprintService

The purpose of FootprintService is to transform and forward queries to the datastore.

create (modelName, values, [options])

paramrequired?descriptionexample
modelNameYesThe name of the model to create (in api.models)User
valuesYesAn object containing the values of the record to create{ username: 'admin' }
optionsNoDatastore-specific options

find (modelName, criteria, [options])

paramrequired?descriptionexample
modelNameYesThe name of the model to search for (in api.models)User
criteriaYesAn object containing the query criteria{ username: 'admin' }
optionsNoDatastore-specific options

update (modelName, criteria, values, [options])

paramrequired?descriptionexample
modelNameYesThe name of the model to create (in api.models)User
criteriaYesAn object containing the query criteria{ username: 'admin' }
valuesYesAn object containing the values to update{ username: 'tjwebb' }
optionsNoDatastore-specific options

destroy (modelName, criteria, options)

paramrequired?descriptionexample
modelNameYesThe name of the model to create (in api.models)User
criteriaYesAn object containing the query criteria{ username: 'admin' }
valuesYesAn object containing the values to update{ username: 'tjwebb' }
optionsNoDatastore-specific options

createAssociation (parentModelName, parentId, childAttributeName, values, [options])

paramrequired?descriptionexample
parentModelNameYesThe name of the parent modelUser
parentIdYesThe id of the parent model1
childAttributeNameYesThe name of the attribute to create and associate with the parentroles
valuesYesAn object containing the values to create{ name: 'adminRole' }
optionsNoDatastore-specific options

findAssociation (parentModelName, parentId, childAttributeName, criteria, [options])

paramrequired?descriptionexample
parentModelNameYesThe name of the parent modelUser
parentIdYesThe id of the parent model1
childAttributeNameYesThe name of the attribute to create and associate with the parentroles
criteriaYesAn object containing the criteria to search on, or an id{ name: 'adminRole' }
optionsNoDatastore-specific options

updateAssociation (parentModelName, parentId, childAttributeName, criteria, values, [options])

paramrequired?descriptionexample
parentModelNameYesThe name of the parent modelUser
parentIdYesThe id of the parent model1
childAttributeNameYesThe name of the attribute to create and associate with the parentroles
criteriaYesAn object containing the criteria to search on, or an id{ name: 'adminRole' }
valuesYesAn object containing the values to update{ name: 'adminRole' }
optionsNoDatastore-specific options

destroyAssociation (parentModelName, parentId, childAttributeName, criteria, [options])

paramrequired?descriptionexample
parentModelNameYesThe name of the parent modelUser
parentIdYesThe id of the parent model1
childAttributeNameYesThe name of the attribute to destroy and dissociate from the parentroles
criteriaYesAn object containing the criteria to search on, or an id{ name: 'adminRole' }
optionsNoDatastore-specific options

api.controllers.FootprintController

The purpose of the FootprintController is to transform and forward requests to the FootprintService.

3.0.1

6 years ago

2.0.0

7 years ago

2.0.0-rc1

7 years ago

2.0.2

7 years ago

2.0.1

7 years ago

1.0.2

7 years ago

1.0.1

8 years ago

1.0.0-beta-7

8 years ago

1.0.0-beta-6

8 years ago

1.0.0

8 years ago

1.0.0-beta-5

8 years ago

1.0.0-beta-3

8 years ago

1.0.0-beta-2

8 years ago