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

@ -19,11 +19,17 @@ export const get = (server, a, b) => {
@error
async handler(request, reply) {
let instance = await request.models[b.name].findOne({
let instance = await b.findOne({
where: {
id: request.params.bid,
[a.name + 'Id']: request.params.aid
}
id: request.params.bid
},
include: [{
model: a,
where: {
id: request.params.aid
}
}]
});
reply(instance);
@ -53,11 +59,17 @@ export const destroy = (server, a, b) => {
@error
async handler(request, reply) {
let instance = await request.models[b.name].findOne({
let instance = await b.findOne({
where: {
id: request.params.bid,
[a.name + 'Id']: request.params.aid
}
id: request.params.bid
},
include: [{
model: a,
where: {
id: request.params.aid
}
}]
});
await instance.destroy();
@ -74,11 +86,17 @@ export const update = (server, a, b) => {
@error
async handler(request, reply) {
let instance = await request.models[b.name].findOne({
let instance = await b.findOne({
where: {
id: request.params.bid,
[a.name + 'Id']: request.params.aid
}
id: request.params.bid
},
include: [{
model: a,
where: {
id: request.params.aid
}
}]
});
await instance.update(request.payload);