react-service-utils
A group of utility functions that converts XHR response (from superagent) into a standard response object. The design to from a simple inteface for Promise or async/await based services with support for various REST data (paging, flash, validation, etc) supplied through headers.
Simply import this module and use the createResult method to convert a superagent response into a uniform response that action creators can handle:
let xhr = ;let createResult = ; moduleexports = /** * Finds the users with the supplied query and paging info * @param * @return */ { return { xhr type'json' ; }; } );
The resulting object can then be consumed
let dispatcher = ;let userService = ;let FLASH USERS_LOADED = ; moduleexports = /** * Gets the user with the supplied paging and filtering info * @param */ { let results = await userService; ifresultssuccess dispatcher; else dispatcher; };
The result object contains the following properties:
success
- indicates if there was a 200 responsebody
- the response bodypaging
- paging information supplied from headers (more below)flash
- flash information supplied from headers (more below)error
- the error if request was not successfulvalidationErrors
- the validation errors if this was a 422 error (more below)
Paging
Paging is automatically support via headers. Your REST endpoint should supply the following headers:
x-paging-start
the start index of paginationx-paging-limit
the limit per pagex-paging-total
the total number of items in the paged set
If any of these values are supplied, they will be included in the paging
property of the created result.
Flash
Flash is automically supported via headers. Your REST endpoint should supply the follwoing headers:
x-flash-type
the type of the flash message such as success, error, or warningx-flash-message
the message to flash
Validation Errors
Validation errors are supported when the error type is a 422 error. When this occurs the validationErrors property on the the body of the response. Your REST endpoing should return the validationErrors as the body when it is a 422 response.
API
Creates a response object that can be used in action creators that conform to the following object typing:
success body paging result flash validationErrors error
The result property is the body with paging information attached.