diff --git a/package.json b/package.json index 789cefb..5035b83 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hapi-sequelize-crud", - "version": "1.4.0", + "version": "1.5.0", "description": "Hapi plugin that automatically generates RESTful API for CRUD", "main": "build/index.js", "config": { diff --git a/src/associations/one-to-many.js b/src/associations/one-to-many.js index 733ec33..0c4a8c0 100644 --- a/src/associations/one-to-many.js +++ b/src/associations/one-to-many.js @@ -58,6 +58,14 @@ export const list = (server, a, b) => { let where = _.omit(request.query, 'include'); + for (const key of Object.keys(where)) { + try { + where[key] = JSON.parse(where[key]); + } catch (e) { + // + } + } + let list = await b.findAll({ where, @@ -89,6 +97,14 @@ export const scope = (server, a, b) => { let where = _.omit(request.query, 'include'); + for (const key of Object.keys(where)) { + try { + where[key] = JSON.parse(where[key]); + } catch (e) { + // + } + } + let list = await b.scope(request.params.scope).findAll({ where, include: include.concat({ @@ -131,6 +147,14 @@ export const scopeScope = (server, a, b) => { let where = _.omit(request.query, 'include'); + for (const key of Object.keys(where)) { + try { + where[key] = JSON.parse(where[key]); + } catch (e) { + // + } + } + let list = await b.scope(request.params.scopeb).findAll({ where, include: include.concat({ @@ -161,6 +185,14 @@ export const destroy = (server, a, b) => { async handler(request, reply) { let where = _.omit(request.query, 'include'); + for (const key of Object.keys(where)) { + try { + where[key] = JSON.parse(where[key]); + } catch (e) { + // + } + } + let list = await b.findAll({ where, include: { @@ -189,6 +221,14 @@ export const destroyScope = (server, a, b) => { async handler(request, reply) { let where = _.omit(request.query, 'include'); + for (const key of Object.keys(where)) { + try { + where[key] = JSON.parse(where[key]); + } catch (e) { + // + } + } + let list = await b.scope(request.params.scope).findAll({ where, diff --git a/src/crud.js b/src/crud.js index fa31ba3..db5429f 100644 --- a/src/crud.js +++ b/src/crud.js @@ -28,6 +28,14 @@ export const list = (server, model) => { let where = _.omit(request.query, 'include'); + for (const key of Object.keys(where)) { + try { + where[key] = JSON.parse(where[key]); + } catch (e) { + // + } + } + let list = await model.findAll({ where, include }); @@ -49,6 +57,14 @@ export const get = (server, model) => { let where = request.params.id ? { id : request.params.id } : _.omit(request.query, 'include'); + for (const key of Object.keys(where)) { + try { + where[key] = JSON.parse(where[key]); + } catch (e) { + // + } + } + let instance = await model.findOne({ where, include }); reply(instance); @@ -77,6 +93,14 @@ export const scope = (server, model) => { let where = _.omit(request.query, 'include'); + for (const key of Object.keys(where)) { + try { + where[key] = JSON.parse(where[key]); + } catch (e) { + // + } + } + let list = await model.scope(request.params.scope).findAll({ include, where }); reply(list); @@ -114,6 +138,14 @@ export const destroy = (server, model) => { async handler(request, reply) { let where = request.params.id ? { id : request.params.id } : request.query; + for (const key of Object.keys(where)) { + try { + where[key] = JSON.parse(where[key]); + } catch (e) { + // + } + } + let list = await model.findAll({ where }); await* list.map(instance => instance.destroy()); @@ -137,6 +169,14 @@ export const destroyScope = (server, model) => { let where = _.omit(request.query, 'include'); + for (const key of Object.keys(where)) { + try { + where[key] = JSON.parse(where[key]); + } catch (e) { + // + } + } + let list = await model.scope(request.params.scope).findAll({ include, where }); await* list.map(instance => instance.destroy());