Skip to content

Commit

Permalink
Merge pull request #79 from datasci4health/development
Browse files Browse the repository at this point in the history
Development
  • Loading branch information
lealfp authored Aug 25, 2020
2 parents 0b4b6b7 + 6ede069 commit 2b5aacb
Show file tree
Hide file tree
Showing 12 changed files with 202 additions and 142 deletions.
2 changes: 2 additions & 0 deletions docker-compose-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,14 @@ services:
- APP_URL=http://0.0.0.0:10020
- CACHE_VIEWS=false
- APP_KEY=vJX37W4ycI2nkVoBbCM8OW1nsP5LAE8l

- DB_CONNECTION=mysql
- DB_HOST=harena-manager-database
- DB_PORT=3306
- DB_DATABASE=harena-manager
- DB_USER=jacinto
- DB_PASSWORD=jacinto

- HASH_DRIVER=bcrypt
depends_on:
- harena-manager-database
Expand Down
93 changes: 36 additions & 57 deletions src/adonisjs/app/Controllers/Http/AuthController.js
Original file line number Diff line number Diff line change
@@ -1,74 +1,49 @@
'use strict'

const Logger = use('Logger')

const User = use('App/Models/v1/User');
const Token = use('App/Models/v1/Token');

class AuthController {
async login({ request, auth, response, session }) {
console.log('v2/session')
try {
let { email, password } = request.all();
// if (await auth.remember(true).attempt(email, password)) {
if (await auth.remember(true).attempt(email, password)) {

console.log('------------------------------- attempt')
// console.log(session.all())

let user = await User.findBy('email', email)
// let token = await auth.generate(user)

// let authenticatedUser = new User()
// authenticatedUser.id = user.id
// authenticatedUser.email = user.email
// authenticatedUser.username = user.username

Object.assign(user, { 'adonisAuth': session.get('adonis-auth') })
// return response.json('Logged in successfully')

// let adonis_session = session.get('adonis-auth')
console.log(session.all())
// console.log(auth)
return response.json(user)

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

try{
await auth.check()
return response.json('user is signed already')
} catch(e) {
console.log(e)
// token expired
if (e.code == 'E_JWT_TOKEN_EXPIRED'){
token = await auth.generateForRefreshToken(refresh_token)

Object.entries(token).forEach(entry => {
if (entry[0] == 'refreshToken'){
refresh_token = entry[1]
}
});
}

// unloged user
if (e.code == 'E_INVALID_JWT_TOKEN'){
console.log(7)
try{
token = await auth.withRefreshToken().attempt(email, password)
} catch(e){
console.log('erro aqui')
console.log(e)
}
}

// generic error
if (token == "")
return response.status(e.status).json(e.message)

user = await User.findBy('email', email)
Object.assign(user, token)

return response.json(user)
}
}

async login2({ request, auth, response }) {
try{
let refresh_token = request.input('access_code');

let token = await auth.generateForRefreshToken(refresh_token)
return response.json(token)
}catch(e){
catch (e) {
console.log(e)
return response.status(500).json(e.message)
return response.status(e.status).json({ message: e.message })
}

}

async logout({ auth, response }) {
try{

const refreshToken = auth.getAuthHeader()
await auth.revokeTokens(refreshToken)

return response.json('successfull logout')
await auth.logout()

return response.json('Logged out successfuly')
}catch(e){
console.log(e)
return response.status(500).json(e.message)
Expand All @@ -78,3 +53,7 @@ class AuthController {
}

module.exports = AuthController




13 changes: 3 additions & 10 deletions src/adonisjs/app/Controllers/Http/v1/AdminController.js
Original file line number Diff line number Diff line change
Expand Up @@ -51,24 +51,17 @@ class AdminController {
}
}

async link_role_user({ request, response }) {
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)

await user.roles().attach(role.id)

// user.quests = await user.quests().fetch()

return response.json(user)
return response.json(role.slug + ' role has given to the user ' + user.username)
} catch (e) {
console.log(e)
if (e.code === 'ER_DUP_ENTRY') {
return response.status(409).json({ message: e.message })
}

return response.status(500).json({ message: e.toString() })
return response.status(500).json(e)
}
}

Expand Down
82 changes: 65 additions & 17 deletions src/adonisjs/app/Controllers/Http/v1/AuthController.js
Original file line number Diff line number Diff line change
@@ -1,30 +1,78 @@
'use strict'

const User = use('App/Models/v1/User');
const Token = use('App/Models/v1/Token');

class AuthController {

async login({ request, auth, response }) {
let { email, password } = request.all();

try {
if (await auth.attempt(email, password)) {
let user = await User.findBy('email', email)
let token = await auth.generate(user)

let authenticatedUser = new User()
authenticatedUser.id = user.id
authenticatedUser.email = user.email
authenticatedUser.username = user.username

Object.assign(authenticatedUser, token)
return response.json(authenticatedUser)
// console.log(request.all())
let { email, password, refresh_token } = request.all();
let user = ""
let token = ""

try{
await auth.check()
return response.json('user is signed already')
} catch(e) {
console.log(e)
// token expired
if (e.code == 'E_JWT_TOKEN_EXPIRED'){
token = await auth.generateForRefreshToken(refresh_token)

Object.entries(token).forEach(entry => {
if (entry[0] == 'refreshToken'){
refresh_token = entry[1]
}
});
}

// unloged user
if (e.code == 'E_INVALID_JWT_TOKEN'){
try{
token = await auth.withRefreshToken().attempt(email, password)
} catch(e){
console.log('erro aqui')
console.log(e)
}
}

// generic error
if (token == "")
return response.status(e.status).json(e.message)

user = await User.findBy('email', email)
Object.assign(user, token)

return response.json(user)
}
catch (e) {
}

async login2({ request, auth, response }) {
try{
let refresh_token = request.input('access_code');

let token = await auth.generateForRefreshToken(refresh_token)
return response.json(token)
}catch(e){
console.log(e)
return response.status(500).json(e.message)
}

}

async logout({ auth, response }) {
try{
const refreshToken = auth.getAuthHeader()
await auth.revokeTokens(refreshToken)

return response.json('successfull logout')
}catch(e){
console.log(e)
return response.status(e.status).json({ message: e.message })
return response.status(500).json(e.message)
}

}
}

module.exports = AuthController
module.exports = AuthController
66 changes: 38 additions & 28 deletions src/adonisjs/app/Controllers/Http/v1/QuestController.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,24 @@ const Database = use('Database')
const Quest = use('App/Models/v1/Quest');
const User = use('App/Models/v1/User');
const Case = use('App/Models/v1/Case');
const Role = use('App/Models/v1/Role');

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

class QuestController {

async index({ response }) {
console.log('aqui')
try{
let quests = await Quest.all()
return response.json(quests)
} catch(e){
return response.status(e.status).json({ message: e.message })
}
}



async store({ request, response, auth }) {
let trx = await Database.beginTransaction()

Expand Down Expand Up @@ -48,29 +61,31 @@ class QuestController {

async link_user({ request, response }) {
try {
const {user_id, quest_id} = request.post()
const {user_id, quest_id, roleSlug} = request.post()
let user = await User.find(user_id)
let quest = await Quest.find(quest_id)
let role = await Role.findBy('slug', roleSlug)

if (role == null)
return response.status(500).json('Invalid roleSlug')

if (await user.check_role('author')){
if (await user.check_role(role.slug)){
await user.quests().attach([quest.id], (row) => {
row.role = 1
if (role.slug == 'author'){
row.role = 1
}
if (role.slug == 'player'){
row.role = 2
}
})

user.quests = await user.quests().fetch()

return response.json(user)
return response.json(role.slug + ' ' + user.username + ' was added to the quest '+ quest.title)
} else {
return response.status(500).json('target user must be an author')
return response.status(500).json('target user must have ' + role.slug + ' role')
}

} catch (e) {
console.log(e)
if (e.code === 'ER_DUP_ENTRY') {
return response.status(409).json({ message: e.message })
}

return response.json({ message: e.toString() })
return response.status(500).json(e)
}
}

Expand Down Expand Up @@ -99,36 +114,31 @@ class QuestController {
}


async list_users({ params, response }) {
async listUsers({ request, response }) {
try{
let quest = await Quest.find(params.id)
let questId = request.input('questId')

let quest = await Quest.find(questId)

return response.json(await quest.users().fetch())
} catch(e){
console.log(e)
return response.status(500).json(e)
}
}

async list_cases({ request, response }) {

async listCases({ request, response }) {
try{
let quest_id = request.input('quest_id')
let quest = await Quest.find(quest_id)
console.log(quest)
let questId = request.input('questId')

let quest = await Quest.find(questId)

return response.json(await quest.cases().fetch())
} catch(e){
console.log(e)
}
}

async index({ response }) {
try{
let quests = await Quest.all()
return response.json(quests)
} catch(e){
return response.status(e.status).json({ message: e.message })
}
}
}

module.exports = QuestController
4 changes: 1 addition & 3 deletions src/adonisjs/app/Controllers/Http/v1/UserController.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ class UserController {
* @param {View} ctx.view
*/
async index({ request, response, view, auth }) {
console.log(1)
try{

let users = await User.all()
Expand All @@ -42,7 +41,6 @@ class UserController {
* @param {View} ctx.view
*/
async show({ params, request, response, view }) {
console.log(12323)
try{
let user = await User.find(params.id)

Expand Down Expand Up @@ -86,7 +84,7 @@ class UserController {
} catch (e) {
console.log(e)
if (e.code === 'ER_DUP_ENTRY') {
return response.status(409).json({ message: e.message })
return response.status(409).json(e.sqlMessage)
}

return response.status(e.status).json({ message: e.message })
Expand Down
Loading

0 comments on commit 2b5aacb

Please sign in to comment.