Skip to content

Commit

Permalink
Merge pull request #86 from datasci4health/development
Browse files Browse the repository at this point in the history
Development
  • Loading branch information
lealfp authored Sep 2, 2020
2 parents 64b409f + b470cd8 commit 9d783e2
Show file tree
Hide file tree
Showing 36 changed files with 593 additions and 254 deletions.
64 changes: 10 additions & 54 deletions src/adonisjs/app/Controllers/Http/v1/AdminController.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,17 @@ const Role = use('Adonis/Acl/Role');
const Permission = use('Adonis/Acl/Permission');
const User = use('App/Models/v1/User');

const uuidv4 = require('uuid/v4');

class AdminController {

async create_role({ request, response }) {
try {
let r = request.all()

let role = new Role()
role.id = await uuidv4()

let r = request.all()
role.merge(r)

await role.save()
Expand All @@ -31,31 +36,12 @@ class AdminController {
}
}

async create_permission({ request, response }) {
try {
let input = request.all()

let permission = new Permission()
permission.merge(input)

await permission.save()

return response.json(permission)
} catch(e){
console.log(e)

if (e.code === 'ER_DUP_ENTRY') {
return response.status(409).json({ code: e.code, message: e.sqlMessage })
}
return response.status(500).json({ message: e.toString() })
}
}

async linkRoleUser({ request, response }) {
try {
const {user_id, role_id} = request.post()
let user = await User.find(user_id)
let role = await Role.find(role_id)
const {userId, roleId} = request.post()
let user = await User.find(userId)
let role = await Role.find(roleId)

await user.roles().attach(role.id)
return response.json(role.slug + ' role has given to the user ' + user.username)
Expand Down Expand Up @@ -95,14 +81,7 @@ class AdminController {
}
}

async list_permissions({ response }) {
try{
let permissions = await Permission.all()
return response.json(permissions)
} catch(e){
return response.status(500).json({ message: e.toString() })
}
}


async list_roles_by_user({ params, response }) {
try{
Expand All @@ -115,30 +94,7 @@ class AdminController {
}
}

async list_permissions_by_role({ params, response }) {
try{
let role = await Role.find(params.id)

return response.json(await role.permissions().fetch())
} catch(e){
console.log(e)
return response.status(500).json({ message: e.message })
}
}

async list_permissions_by_user({ params, response }) {
try{

let user = await User.find(params.id)

// let role = await Role.find(params.id)

return response.json(await user.getPermissions())
} catch(e){
console.log(e)
return response.status(500).json({ message: e.message })
}
}

async revoke_tokens({ auth, params, response }) {
try{
Expand Down
195 changes: 83 additions & 112 deletions src/adonisjs/app/Controllers/Http/v1/ArtifactController.js
Original file line number Diff line number Diff line change
@@ -1,135 +1,106 @@
'use strict'

const Helpers = use('Helpers')
const Artifact = use('App/Models/v1/Artifact');
const Case = use('App/Models/v1/Case');
const Env = use('Env')
const uuid4 = require('uuid/v4');

const Artifact = use('App/Models/v1/Artifact');
const Case = use('App/Models/v1/Case');
const Quest = use('App/Models/v1/Quest');
const CaseArtifacts = use('App/Models/CaseArtifact');

class ArtifactController {

constructor(){
// See this for more on MIM types: https://docs.openx.com/Content/publishers/adunit_linearvideo_mime_types.html
this.validationOptions = {
size: '100mb',
types: ['image','video'],
extnames: ['png', 'jpg', 'jpeg', 'gif','mp4','avi', '.wmv']
}
constructor(){
// See this for more on MIM types: https://docs.openx.com/Content/publishers/adunit_linearvideo_mime_types.html
this.validationOptions = {
size: '100mb',
types: ['image','video'],
extnames: ['png', 'jpg', 'jpeg', 'gif','mp4','avi', '.wmv']
}

this.relativePath = '/resources/artifacts/'
this.relativePath = '/resources/artifacts/'
this.baseUrl = Env.getOrFail('APP_URL')
}


}
async store({ request, auth, response }) {
try{


async store({ request, auth, response }) {
try{
let file = request.file('file', this.validationOptions)
let questId = request.input('questId')
let caseId = request.input('caseId', null)

const file = request.file('file', this.validationOptions)
const case_id = request.input('case_id', null)

var c = await Case.find(case_id)

if (case_id != null && c == null){
return response.json({ message: "Case id not found" })
}

let fs_path = Helpers.publicPath(this.relativePath)
let case_relative_path = this.relativePath
if (case_id != null){
fs_path += 'cases/' + case_id + '/'
case_relative_path += 'cases/' + case_id + '/'
}

const artifact_id = await uuid4()
const artifact_file_name = artifact_id + "." + file.extname

await file.move(fs_path, {name: artifact_file_name, overwrite: false})

const artifact = new Artifact()
artifact.id = artifact_id
artifact.fs_path = fs_path + artifact_file_name
artifact.relative_path = case_relative_path + artifact_file_name
artifact.case_id = c != null ? c.id : c;
let artifactId = await uuid4()
let artifactFileName = artifactId + "." + file.extname
let fs_path = Helpers.publicPath(this.relativePath)

let artifact = new Artifact()
artifact.id = artifactId

let bodyMessage = { filename: artifactFileName,
size_in_bytes: file.size,
type: file.type,
subtype: file.subtype,
extension: file.extname,
status: file.status
}

if (caseId != null && questId == null){
var c = await Case.find(caseId)

if (c == null)
return response.json({ message: "Case id not found" })

fs_path += 'cases/' + caseId + '/'
let case_relative_path = this.relativePath + 'cases/' + caseId + '/'

const base_url = Env.getOrFail('APP_URL')
artifact.relative_path = case_relative_path + artifactFileName

let bodyMessage = { message: "Artifact successfully stored",
filename: artifact_file_name,
case: c,
size_in_bytes: file.size,
type: file.type,
subtype: file.subtype,
extension: file.extname,
status: file.status,
relative_path: artifact.relative_path,
url: base_url+artifact.relative_path
}

await auth.user.artifacts().save(artifact)

return response.status(200).json(bodyMessage)
} catch(e){
console.log(e)
return response.status(e.status).json({ message: e.message })
}
let ca = new CaseArtifacts()
ca.case_id = c.id

await ca.artifact().associate(artifact)

bodyMessage.case = c
bodyMessage.url = this.baseUrl+artifact.relative_path
}

// O CÓDIGO COMENTADO É PRA NO FUTURO QUANDO A PASTA DAS IMAGENS FOR RESOURCES INVES DE PUBLIC
if (questId != null && caseId == null){
var quest = await Quest.find(questId)

// async store({ request, auth, response }) {
// try{
if (quest == null){
return response.json({ message: "Quest id not found" })
}

// const file = request.file('file', this.validationOptions)
// const case_id = request.input('case_id', null)

// var c = await Case.find(case_id)

// if (case_id != null && c == null){
// return response.json({ message: "Case id not found" })
// }

// let fs_path = Helpers.resourcesPath() + '/artifacts/'
// let case_relative_path = Helpers.resourcesPath() + '/artifacts/'
// if (case_id != null){
// fs_path += 'cases/' + case_id + '/'
// case_relative_path += 'cases/' + case_id + '/'
// }

// const artifact_id = await uuid4()
// const artifact_file_name = artifact_id + "." + file.extname

// await file.move(fs_path, {name: artifact_file_name, overwrite: false})

// const artifact = new Artifact()
// artifact.id = artifact_id
// artifact.fs_path = fs_path + artifact_file_name
// artifact.relative_path = case_relative_path + artifact_file_name
// artifact.case_id = c != null ? c.id : c;

// const base_url = Env.getOrFail('APP_URL')
let questRelativePath = this.relativePath + 'quests/' + quest.id + '/'

artifact.relative_path = questRelativePath + artifactFileName

// let bodyMessage = { message: "Artifact successfully stored",
// filename: artifact_file_name,
// case: c,
// size_in_bytes: file.size,
// type: file.type,
// subtype: file.subtype,
// extension: file.extname,
// status: file.status,
// relative_path: artifact.relative_path,
// url: base_url+artifact.relative_path
// }

// await auth.user.artifacts().save(artifact)

// return response.status(200).json(bodyMessage)
// } catch(e){
// console.log(e)
// return response.status(e.status).json({ message: e.message })
// }


// }
await quest.artifact().associate(artifact)

fs_path += 'quests/' + quest.id + '/'

bodyMessage.quest = quest
bodyMessage.url = this.baseUrl+artifact.relative_path
}

if (questId == null && caseId == null){
artifact.relative_path = this.relativePath + artifactFileName
bodyMessage.url = this.baseUrl+artifact.relative_path
}

await file.move(fs_path, {name: artifactFileName, overwrite: false})
await auth.user.artifacts().save(artifact)

return response.json(bodyMessage)

} catch(e){
console.log(e)
return response.status(e.status).json({ message: e.message })
}
}

}

Expand Down
1 change: 1 addition & 0 deletions src/adonisjs/app/Controllers/Http/v1/AuthController.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class AuthController {
Logger.info('login attempt via v1/auth/login (JWT)')

let { email, password, refresh_token } = request.all();
console.log(password)
let user = ""
let token = ""

Expand Down
Loading

0 comments on commit 9d783e2

Please sign in to comment.