@dewib/dw-api
Advanced tools
Comparing version 2.5.0 to 2.6.0
@@ -5,2 +5,9 @@ # Changelog | ||
## [2.6.0](https://github.com/gaetansenn/dw-api/compare/v2.5.0...v2.6.0) (2022-04-20) | ||
### Features | ||
* add format as optional ([13bf88d](https://github.com/gaetansenn/dw-api/commit/13bf88d0eed9a7fa72a88efcdc8a59b4b1eae2ad)) | ||
## [2.5.0](https://github.com/gaetansenn/dw-api/compare/v2.4.0...v2.5.0) (2022-03-23) | ||
@@ -7,0 +14,0 @@ |
@@ -26,3 +26,3 @@ import { isObject, camelCase, isEmpty, isString, get } from 'lodash' | ||
get (url, { fields, queryParams, multi, headers, scope, ...extra } = {}) { | ||
get (url, { fields, queryParams, multi, headers, scope, format, ...extra } = {}) { | ||
return this.handleRequest({ | ||
@@ -36,2 +36,3 @@ method: 'get', | ||
scope, | ||
format, | ||
...extra | ||
@@ -41,3 +42,3 @@ }) | ||
post (url, body, { fields, queryParams, multi, headers, scope, ...extra } = {}) { | ||
post (url, body, { fields, queryParams, multi, headers, scope, format, ...extra } = {}) { | ||
return this.handleRequest({ | ||
@@ -52,2 +53,3 @@ method: 'post', | ||
scope, | ||
format, | ||
...extra | ||
@@ -57,3 +59,3 @@ }) | ||
delete (url, { fields, queryParams, multi, headers, scope, body = null, ...extra } = {}) { | ||
delete (url, { fields, queryParams, multi, headers, scope, body = null, format, ...extra } = {}) { | ||
return this.handleRequest({ | ||
@@ -68,2 +70,3 @@ method: 'delete', | ||
scope, | ||
format, | ||
...extra | ||
@@ -73,3 +76,3 @@ }) | ||
patch (url, body, { fields, queryParams, multi, headers, scope, ...extra } = {}) { | ||
patch (url, body, { fields, queryParams, multi, headers, scope, format, ...extra } = {}) { | ||
return this.handleRequest({ | ||
@@ -84,2 +87,3 @@ method: 'patch', | ||
scope, | ||
format, | ||
...extra | ||
@@ -89,3 +93,3 @@ }) | ||
handleRequest ({ method, url, body = false, fields = [], multi = false, queryParams = {}, headers = {}, catchError = true, scope }) { | ||
handleRequest ({ method, url, body = false, fields = [], multi = false, queryParams = {}, headers = {}, catchError = true, scope, format = true }) { | ||
const request = { | ||
@@ -107,3 +111,3 @@ method, | ||
const mapped = this.extractModel(fields, response.data) | ||
const mapped = this.extractModel(fields, response.data, format) | ||
@@ -113,3 +117,3 @@ return catchError ? [false, mapped] : mapped | ||
response.data = response.data.map(this.extractModel.bind(this, fields)) | ||
response.data = response.data.map(item => this.extractModel.bind(this, fields, item, format)) | ||
@@ -130,3 +134,3 @@ return (multi) ? (catchError ? [false, response.data] : response.data) : (catchError ? [false, response] : response) | ||
*/ | ||
extractModel (fields, model, parentModel, originModel) { | ||
extractModel (fields, model, format, parentModel, originModel) { | ||
if (isEmpty(model)) return null | ||
@@ -142,4 +146,5 @@ | ||
fields.forEach((field) => { | ||
// We normalize to camelCase | ||
const normalizedKey = camelCase(isObject(field) ? field.newKey || field.key : field) | ||
// We normalize to camelCase if format | ||
const _camelCase = format ? camelCase : data => data | ||
const normalizedKey = _camelCase(isObject(field) ? field.newKey || field.key : field) | ||
@@ -172,5 +177,5 @@ if (typeof field.fields === 'function') field.fields = field.fields() | ||
else return true | ||
}).map(m => this.extractModel.bind(this, field.fields, m, sourceModel, originModel)()) | ||
}).map(m => this.extractModel.bind(this, field.fields, m, format, sourceModel, originModel)()) | ||
else | ||
return this.extractModel(field.fields, sourceModel[field.key], sourceModel, originModel) | ||
return this.extractModel(field.fields, sourceModel[field.key], format, sourceModel, originModel) | ||
} | ||
@@ -177,0 +182,0 @@ |
{ | ||
"name": "@dewib/dw-api", | ||
"version": "2.5.0", | ||
"version": "2.6.0", | ||
"description": "Wrap all your request into one place and map your response for your needs", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
13632
216