diff --git a/src/adonisjs/app/Controllers/Http/v1/ArtifactController.js b/src/adonisjs/app/Controllers/Http/v1/ArtifactController.js index dabe13b..124440d 100644 --- a/src/adonisjs/app/Controllers/Http/v1/ArtifactController.js +++ b/src/adonisjs/app/Controllers/Http/v1/ArtifactController.js @@ -44,14 +44,14 @@ class ArtifactController { var linkedCase = await Case.find(caseID) if (caseID != null && linkedCase == null){ - return response.json({ message: "User id not found" }) + return response.json({ message: "Case id not found" }) } const artifact = new Artifact() artifact.fs_path = fsPath + artifactFileName artifact.relative_path = this.relativePath + artifactFileName - artifact.case_id = linkedCase != null ? linkedCase.id : linkedCase; + artifact.case_id = linkedCase != null ? linkedCase.uuid : linkedCase; await auth.user.artifacts().save(artifact) const base_url = Env.getOrFail('APP_URL') @@ -71,6 +71,7 @@ class ArtifactController { }) } catch(e){ + console.log('veio') console.log(e) return response.status(e.status).json({ message: e.message }) } diff --git a/src/adonisjs/app/Controllers/Http/v1/CaseController.js b/src/adonisjs/app/Controllers/Http/v1/CaseController.js index c724f44..e30816b 100644 --- a/src/adonisjs/app/Controllers/Http/v1/CaseController.js +++ b/src/adonisjs/app/Controllers/Http/v1/CaseController.js @@ -8,9 +8,7 @@ const User = use('App/Models/v1/User'); const Case = use('App/Models/v1/Case'); const CaseVersion = use('App/Models/v1/CaseVersion') -const fs = require('fs'); - -const PLAYER_DIR = "../../player/" +const uuidv4 = require('uuid/v4'); /** * Resourceful controller for interacting with cases */ class CaseController { @@ -48,7 +46,7 @@ class CaseController { let c = await Case.find( params.id ) let versions = await c.versions().fetch() - c.source = versions.first().source + c.source = versions.last().source return response.json(c) } catch (e) { @@ -60,6 +58,8 @@ class CaseController { async store({ request, auth, response }) { try { let c = new Case() + + c.uuid = await uuidv4() c.name = request.input('name') c.user_id = auth.user.id diff --git a/src/adonisjs/app/Models/v1/Case.js b/src/adonisjs/app/Models/v1/Case.js index da93988..c5c4917 100644 --- a/src/adonisjs/app/Models/v1/Case.js +++ b/src/adonisjs/app/Models/v1/Case.js @@ -21,14 +21,6 @@ class Case extends Model { versions(){ return this.hasMany('App/Models/v1/CaseVersion') } - - static boot() { - super.boot() - - this.addHook('beforeSave', async (caseInstance) => { - caseInstance.uuid = await uuidv4() - }) - } } module.exports = Case diff --git a/src/adonisjs/database/factory.js b/src/adonisjs/database/factory.js index 20d6a36..fa07f1f 100644 --- a/src/adonisjs/database/factory.js +++ b/src/adonisjs/database/factory.js @@ -25,7 +25,8 @@ Factory.blueprint('App/Models/v1/User', async (faker, i, data) => { Factory.blueprint('App/Models/v1/Case', (faker, i, data) => { return { - name: data.name + name: data.name, + uuid: data.uuid } }) diff --git a/src/adonisjs/database/seeds/InitialSeeder.js b/src/adonisjs/database/seeds/InitialSeeder.js index 13afa39..700a04b 100644 --- a/src/adonisjs/database/seeds/InitialSeeder.js +++ b/src/adonisjs/database/seeds/InitialSeeder.js @@ -14,26 +14,37 @@ const Factory = use('Factory') const User = use('App/Models/v1/User'); - +const Database = use('Database') const RESOURCE_DIR = "resources/" const fs = require('fs'); +const uuidv4 = require('uuid/v4'); class UserSeeder { async run() { - let user = new User() - user.username = 'jacinto' - user.email = 'jacinto@example.com' - user.password = 'jacinto' - - const c = await Factory.model('App/Models/v1/Case').make({ name: 'case001-development' }) - await user.cases().save(c) - - const cv = await Factory.model('App/Models/v1/CaseVersion').make({ source: fs.readFileSync(RESOURCE_DIR + 'case.md', 'utf8') }) - - await c.versions().save(cv) - - await Factory.model('App/Models/v1/User').createMany(5) + const trx = await Database.beginTransaction() + try{ + let user = new User() + user.username = 'jacinto' + user.email = 'jacinto@example.com' + user.password = 'jacinto' + + await user.save(trx) + + const c = await Factory.model('App/Models/v1/Case').make({ name: 'case001-development', uuid: await uuidv4() }) + await user.cases().save(c, trx) + + const cv = await Factory.model('App/Models/v1/CaseVersion').make({ source: fs.readFileSync(RESOURCE_DIR + 'case.md', 'utf8') }) + + await c.versions().save(cv, trx) + + await Factory.model('App/Models/v1/User').createMany(5) + + trx.commit() + } catch(e){ + console.log('Error on seed process. Transactions rolled back') + trx.rollback() + } } }