From bf6b3e04957e48bf12b1c8093090fe228c60eaf9 Mon Sep 17 00:00:00 2001 From: Barry Low Date: Tue, 23 Oct 2018 21:39:31 -0700 Subject: [PATCH 1/2] Fix JSON circular error in logger --- api/src/index.js | 10 ++++++++-- api/src/logger/index.js | 3 ++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/api/src/index.js b/api/src/index.js index ced686bdb..adb633a01 100644 --- a/api/src/index.js +++ b/api/src/index.js @@ -155,7 +155,10 @@ const resolvers = { return team }, async createTeam(parent, { name, slug, botName, botSlug }, ctx, info) { - logger.info(ctx.request.user, 'createTeam ctx.request.user:') + logger.info('createTeam ctx.request.user:') + logger.info(ctx.request.user) + logger.info('createTeam ctx.request:') + logger.info(ctx.request) const authId = ctx.request.user.sub const encodedAuthId = encodeURI(authId) @@ -177,6 +180,7 @@ const resolvers = { const platformUrl = 'https://develop.advancedalgos.net/AABrowserAPI/teamSetup/' // const platformUrl = 'http://localhost:1337/AABrowserAPI/teamSetup/' + /* logger.info(`${platformUrl}${createTeamUrl}/${authId}`) const createPlatformTeam = await axios.get(`${platformUrl}${createTeamUrl}/${authId}`) .then((result) => { @@ -198,13 +202,15 @@ const resolvers = { if(await createPlatformTeam === 'Team Name already taken'){ return createPlatformTeam } + */ const createTeam = await ctx.db.mutation.createTeam({ data: {name: name, slug: slug, owner: authId, members: {create: {member: {create: {authId: authId, alias: alias, visible:'true', status: { create: { status: 'ACTIVE', reason: `Created team ${name}`}}}}, role: 'OWNER'}}, profile: {create: {avatar: avatar, banner: banner}}, fb: {create: {name: botName, slug: botSlug, kind:'TRADER', avatar: avatar, status: {create: {status: 'ACTIVE', reason: "Cloned on team creation"}}}}, status: {create: {status: 'ACTIVE', reason:"Team created"}}} }, TEAMS_FRAGMENT) .catch((err) => { logger.debug(err, 'createTeam error: ') return err }) - sendTeamCreateConfirmation(email, name, botName) + // sendTeamCreateConfirmation(email, name, botName) + return createTeam }) .catch((err) => { diff --git a/api/src/logger/index.js b/api/src/logger/index.js index 7d55674e9..3ed2a8e70 100644 --- a/api/src/logger/index.js +++ b/api/src/logger/index.js @@ -1,4 +1,5 @@ import { createLogger, format, transports } from 'winston' +import { inspect } from 'util' class LoggerService { constructor() { @@ -8,7 +9,7 @@ class LoggerService { format.colorize(), format.timestamp({ format: 'YY/MM/DD HH:mm' }), format.printf( - info => `${info.timestamp} - ${info.level}: ${JSON.stringify(info.message)}` + info => `${info.timestamp} - ${info.level}: ${JSON.parse(JSON.stringify(inspect(info.message)))}` ) ), }), From 7f067284c8e811fc8e74d0212593ce9e75afc888 Mon Sep 17 00:00:00 2001 From: Barry Low Date: Tue, 23 Oct 2018 22:14:36 -0700 Subject: [PATCH 2/2] Add createTeam for both user as new team member and already a team member --- api/src/index.js | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/api/src/index.js b/api/src/index.js index adb633a01..6673e8562 100644 --- a/api/src/index.js +++ b/api/src/index.js @@ -157,8 +157,7 @@ const resolvers = { async createTeam(parent, { name, slug, botName, botSlug }, ctx, info) { logger.info('createTeam ctx.request.user:') logger.info(ctx.request.user) - logger.info('createTeam ctx.request:') - logger.info(ctx.request) + const authId = ctx.request.user.sub const encodedAuthId = encodeURI(authId) @@ -203,12 +202,32 @@ const resolvers = { return createPlatformTeam } */ - const createTeam = await ctx.db.mutation.createTeam({ data: {name: name, slug: slug, owner: authId, members: {create: {member: {create: {authId: authId, alias: alias, visible:'true', status: { create: { status: 'ACTIVE', reason: `Created team ${name}`}}}}, role: 'OWNER'}}, profile: {create: {avatar: avatar, banner: banner}}, fb: {create: {name: botName, slug: botSlug, kind:'TRADER', avatar: avatar, status: {create: {status: 'ACTIVE', reason: "Cloned on team creation"}}}}, status: {create: {status: 'ACTIVE', reason:"Team created"}}} }, TEAMS_FRAGMENT) + const existingMember = await ctx.db.query.member({ where: { authId } }, `{id}`) .catch((err) => { - logger.debug(err, 'createTeam error: ') + logger.debug(err, 'existingMember error: ') return err }) + logger.info('existingMember:') + logger.info(await existingMember) + + let createTeam + if(existingMember.id !== null){ + logger.info('createTeam with existingMember:') + createTeam = await ctx.db.mutation.createTeam({ data: {name: name, slug: slug, owner: authId, members: {create: {member: {connect: {authId: authId}}, role: 'OWNER', status: { create: { status: 'ACTIVE', reason: `Connected to Team ${name}`}}}}, profile: {create: {avatar: avatar, banner: banner}}, fb: {create: {name: botName, slug: botSlug, kind:'TRADER', avatar: avatar, status: {create: {status: 'ACTIVE', reason: "Cloned on team creation"}}}}, status: {create: {status: 'ACTIVE', reason:"Team created"}}} }, TEAMS_FRAGMENT) + .catch((err) => { + logger.debug(err, 'createTeamMutation error: ') + return err + }) + } else { + logger.info('createTeam without existingMember:') + createTeam = await ctx.db.mutation.createTeam({ data: {name: name, slug: slug, owner: authId, members: {create: {member: {create: {authId: authId, alias: alias, visible:'true', status: { create: { status: 'ACTIVE', reason: `Created team ${name}`}}}}, role: 'OWNER', status: { create: { status: 'ACTIVE', reason: `Created with Team ${name}`}}}}, profile: {create: {avatar: avatar, banner: banner}}, fb: {create: {name: botName, slug: botSlug, kind:'TRADER', avatar: avatar, status: {create: {status: 'ACTIVE', reason: "Cloned on team creation"}}}}, status: {create: {status: 'ACTIVE', reason:"Team created"}}} }, TEAMS_FRAGMENT) + .catch((err) => { + logger.debug(err, 'createTeamMutation error: ') + return err + }) + } + // sendTeamCreateConfirmation(email, name, botName) return createTeam