Fixing history, remove, and logs views

This commit is contained in:
mati108@gmail.com committed 2019-01-29 18:04:00 -03:00
1 parent 6785a45415
commit ee91e02cec
9 files changed
+96 -48

No files matched your search

@@ -45,8 +45,8 @@ const resolve = async(parent, { clone }, context) => {
}
try{
// Authorization is handled by the teams module
let botsByUser = await teams_FbByTeamMember(context.authorization)
console.log("botsByUser: ", botsByUser)
let selectedBot = getSelectedBot(botsByUser.data.data.teams_FbByTeamMember, clone.botId)
clone.teamId = botsByUser.data.data.teams_FbByTeamMember.id
clone.botId = selectedBot.id
@@ -12,6 +12,8 @@ import {
import { Clone } from '../../models'
import logger from '../../config/logger'
import removeKuberneteClone from '../../kubernetes/removeClone'
import teams_FbByTeamMember from '../../graphQLCalls/teams_FbByTeamMember'
import { isDefined, getSelectedBot } from '../../config/utils'
const args = {
id: { type: new GraphQLNonNull(GraphQLID) }
@@ -24,7 +26,22 @@ const resolve = async (parent, { id }, context) => {
throw new AuthentificationError()
}
await removeKuberneteClone(id)
let clone = await Clone.findOne({
_id: id,
authId: context.userId,
active: true
})
if(!isDefined(clone)){
throw new CustomError('You are not authorized to remove this clone.')
}
// Authorization is also handled by the teams module
let botsByUser = await teams_FbByTeamMember(context.authorization)
let selectedBot = getSelectedBot(botsByUser.data.data.teams_FbByTeamMember, clone.botId)
logger.debug('removeClone -> Removing Clone from Kubernates.')
await removeKuberneteClone(clone, botsByUser.data.data.teams_FbByTeamMember.slug, selectedBot.slug)
const query = {
_id: id,
@@ -33,12 +50,13 @@ const resolve = async (parent, { id }, context) => {
const options = { new: true }
const update = { active: false }
logger.debug('removeClone -> Removing Clone from DB.')
Clone.findOneAndUpdate(query, update, options, (err, doc) => {
if (err){
logger.error('removeClone -> Error removing clone from the DB. %s', err.stack)
throw new OperationsError(err)
}else{
resolve('Clone Removed.')
logger.debug('removeClone -> Clone Removed from the DB.')
return('Clone Removed.')
}
})
}
@@ -11,6 +11,8 @@ import { Clone } from '../../models'
import logger from '../../config/logger'
import getKuberneteClonePodStatus from '../../kubernetes/getClonePodStatus'
import getKuberneteClonePodLogs from '../../kubernetes/getClonePodLogs'
import teams_FbByTeamMember from '../../graphQLCalls/teams_FbByTeamMember'
import cloneDetails from './cloneDetails'
const args = {}
@@ -26,6 +28,14 @@ const resolve = async(parent, args, context) => {
active: false
})
// TODO Refactor this code once financial beings api is ready
// Authorization is handled by the teams module
let botsByUser = await teams_FbByTeamMember(context.authorization)
for (var i = 0; i < clones.length; i++) {
clones[i] = await cloneDetails(context.authorization, botsByUser, clones[i])
}
return clones
}
+8 -17
View File
@@ -12,9 +12,8 @@ import { Clone } from '../../models'
import logger from '../../config/logger'
import getCloneStatus from '../../kubernetes/getClonePodStatus'
import getCloneLogs from '../../kubernetes/getClonePodLogs'
import { getJobNameFromClone, getSelectedBot } from '../../config/utils'
import teams_FbByTeamMember from '../../graphQLCalls/teams_FbByTeamMember'
import teamAvatar from '../../graphQLCalls/teamAvatar'
import cloneDetails from './cloneDetails'
const args = {}
@@ -30,24 +29,16 @@ const resolve = async(parent, args, context) => {
active: true
})
// TODO Refactor this code once financial beings api is ready
// Authorization is handled by the teams module
let botsByUser = await teams_FbByTeamMember(context.authorization)
for (var i = 0; i < clones.length; i++) {
logger.debug('List Clones -> clone: %j', clones[i])
// TODO Refactor this code once financial beings api is ready
let selectedBot = getSelectedBot(botsByUser.data.data.teams_FbByTeamMember, clones[i].botId)
let cloneName = getJobNameFromClone(botsByUser.data.data.teams_FbByTeamMember.slug, selectedBot.slug, clones[i].mode)
clones[i].kind = selectedBot.kind
clones[i].teamName = botsByUser.data.data.teams_FbByTeamMember.name
clones[i].botName = selectedBot.name
clones[i].botAvatar = selectedBot.avatar
let team = await teamAvatar(context.authorization, botsByUser.data.data.teams_FbByTeamMember.id)
clones[i].teamAvatar = team.data.data.teams_TeamById.profile.avatar
clones[i].state = await getCloneStatus(cloneName)
clones[i].lastLogs = await getCloneLogs(cloneName)
clones[i] = await cloneDetails(context.authorization, botsByUser, clones[i])
let state = await getCloneStatus(clones[i].cloneName)
clones[i].state = state.substring(1, state.length-1)
let lastLogs = await getCloneLogs(clones[i].cloneName)
clones[i].lastLogs = lastLogs.substring(1, lastLogs.length-1)
}
return clones
} catch (err){
+21
View File
@@ -0,0 +1,21 @@
import logger from '../../config/logger'
import { getJobNameFromClone, getSelectedBot } from '../../config/utils'
import teamAvatar from '../../graphQLCalls/teamAvatar'
const cloneDetails = async(authorization, botsByUser, clone) => {
logger.debug('Retrieving clone details.')
// TODO Refactor this code once financial beings api is ready
let selectedBot = getSelectedBot(botsByUser.data.data.teams_FbByTeamMember, clone.botId)
clone.cloneName = getJobNameFromClone(botsByUser.data.data.teams_FbByTeamMember.slug, selectedBot.slug, clone.mode)
clone.kind = selectedBot.kind
clone.teamName = botsByUser.data.data.teams_FbByTeamMember.name
clone.botName = selectedBot.name
clone.botAvatar = selectedBot.avatar
let team = await teamAvatar(authorization, botsByUser.data.data.teams_FbByTeamMember.id)
clone.teamAvatar = team.data.data.teams_TeamById.profile.avatar
logger.debug('Retrieving clone details complete.')
return clone
};
export default cloneDetails