Files
Superalgos/server/src/schema/cloneDetails.js
T
2019-02-11 18:36:03 -03:00

55 lines
1.5 KiB
JavaScript

import logger from '../config/logger'
import { isDefined } from '../config/utils'
import { AutorizationError } from '../errors'
const cloneDetails = async(authId, team, clone) => {
logger.debug('Retrieving clone details.')
if(!(authId === (process.env.AUTH_CLIENT_ID + '@clients') || isAuthorized(team, authId))){
logger.debug('User %s is not authorized to manage team %s.', authId, team.slug )
throw new AutorizationError()
}
let selectedBot = getSelectedBot(team, clone.botId)
clone.teamId = team.id
clone.botId = selectedBot.id
clone.kind = selectedBot.kind
clone.teamSlug = team.slug
clone.botSlug = selectedBot.slug
clone.teamName = team.name
clone.botName = selectedBot.name
clone.botAvatar = selectedBot.avatar
clone.teamAvatar = team.profile.avatar
clone.userLoggedIn = team.members[0].member.alias //TODO change by context info if possible
logger.debug('Retrieving clone details complete.')
return clone
};
function getSelectedBot(team, selectedBotId){
logger.debug('Getting selected bot.')
if(isDefined(team)){
for (var i = 0; i < team.fb.length; i++) {
if(team.fb[i].id === selectedBotId){
return team.fb[i]
}
}
}
}
function isAuthorized(team, authId){
logger.debug('Checking if the user is authorized by the teams module.')
let authorized = false
if(isDefined(team)){
for (var i = 0; i < team.members.length; i++) {
if(team.members[i].member.authId === authId){
authorized = true
break
}
}
}
return authorized
}
export default cloneDetails