feat(associations): many-to-many associations

fix(associations): fix association queries, must use `include` instead of ForeignKey
fix(error): error decorator was missing await, which prevented it from catching errors
fix(error): console.error the error
refactor(crud): don't use `request.models[name]`, use the model directly
chore: README added
This commit is contained in:
Mahdi Dibaiee
2016-01-19 10:03:29 +03:30
parent bae6820e64
commit 52ad030d0d
8 changed files with 152 additions and 35 deletions

View File

@ -18,11 +18,17 @@ export const list = (server, a, b) => {
@error
async handler(request, reply) {
let list = await request.models[b.name].findAll({
let list = await b.findAll({
where: {
...request.query,
[a.name + 'Id']: request.params.aid
}
},
include: [{
model: a,
where: {
id: request.params.aid
}
}]
});
reply(list);
@ -37,11 +43,17 @@ export const destroy = (server, a, b) => {
@error
async handler(request, reply) {
let list = await request.models[b.name].findAll({
let list = await b.findAll({
where: {
...request.query,
[a.name + 'Id']: request.params.aid
}
...request.query
},
include: [{
model: a,
where: {
id: request.params.aid
}
}]
});
await* list.map(instance => instance.destroy());
@ -58,11 +70,17 @@ export const update = (server, a, b) => {
@error
async handler(request, reply) {
let list = await request.models[b.name].findOne({
let list = await b.findOne({
where: {
...request.query,
[a.name + 'Id']: request.params.aid
}
...request.query
},
include: [{
model: a,
where: {
id: request.params.aid
}
}]
});
await* list.map(instance => instance.update(request.payload));