Include mod data in /workers/get-work

master
rubenwardy 2017-01-19 15:50:37 +00:00
parent c7828eed45
commit bcd15e1046
2 changed files with 18 additions and 10 deletions

View File

@ -16,17 +16,22 @@ router.get("/get-work", function(req, res) {
limit: 1, limit: 1,
where: { where: {
workerId: null workerId: null
} },
include: [{
model: db.Mod,
include: [db.User]
}]
}).then(function(jobs) { }).then(function(jobs) {
if (jobs && jobs.length == 1) { if (jobs && jobs.length == 1) {
var job = jobs[0] var job = jobs[0]
job.workerId = worker.id // job.workerId = worker.id
job.save() // job.save()
var mod = db.convertRowToMod(job.mod)
res.send({ res.send({
work: { work: {
author: job.author, type: job.work_type,
basename: job.basename, mod: mod.toPlainDictionary()
type: job.work_type
} }
}) })
} else { } else {

View File

@ -43,12 +43,13 @@ var Worker = sequelize.define("worker", {
}) })
var Work = sequelize.define("work", { var Work = sequelize.define("work", {
author: Sequelize.STRING(100),
basename: Sequelize.STRING(100),
work_type: Sequelize.ENUM("fetch", "scan", "forum") work_type: Sequelize.ENUM("fetch", "scan", "forum")
}) })
Mod.hasMany(Work)
Worker.hasMany(Worker)
Work.belongsTo(Worker) Work.belongsTo(Worker)
Work.belongsTo(Mod)
const CMod = require("./../../common/mod") const CMod = require("./../../common/mod")
function convertRowToMod(row) { function convertRowToMod(row) {
@ -112,6 +113,8 @@ async.parallel([
approved: true approved: true
} }
}).then(function(mod) { }).then(function(mod) {
mod = mod[0]
Worker.findOrCreate({ Worker.findOrCreate({
where: { where: {
token: "foobar" token: "foobar"
@ -122,10 +125,10 @@ async.parallel([
Work.findOrCreate({ Work.findOrCreate({
where: { where: {
author: "rubenwardy", modId: mod.id
basename: "awards",
}, },
defaults: { defaults: {
mod: mod,
work_type: "fetch" work_type: "fetch"
} }
}).then(function(mod) { }).then(function(mod) {