From ea096bda6a359faebc837387ecd6604e4597170b Mon Sep 17 00:00:00 2001 From: Christian Joudrey Date: Wed, 21 Jun 2017 21:44:16 -0400 Subject: [PATCH 1/2] Add region to `projects` list command --- src/api/api.ts | 12 ++++++++++-- src/commands/projects.ts | 4 ++-- src/types.ts | 1 + tests/fixtures/mock_data.ts | 21 ++++++++++++++------- 4 files changed, 27 insertions(+), 11 deletions(-) diff --git a/src/api/api.ts b/src/api/api.ts index 7e6c88f547..9f9dbfee3d 100644 --- a/src/api/api.ts +++ b/src/api/api.ts @@ -67,6 +67,7 @@ mutation addProject($schema: String!, $name: String!, $alias: String, $region: R schema alias version + region } } } @@ -91,8 +92,9 @@ mutation addProject($schema: String!, $name: String!, $alias: String, $region: R schema = json.data.addProject.project.schema const returnedAlias = json.data.addProject.project.alias name = json.data.addProject.project.name + const returnedRegion = json.data.addProject.project.region - const projectInfo = {projectId, version, alias: returnedAlias, schema, name} + const projectInfo = {projectId, version, alias: returnedAlias, schema, name, region: returnedRegion} return projectInfo } @@ -215,7 +217,7 @@ export async function fetchProjects(resolver: Resolver): Promise<[ProjectInfo]> const query = `\ { viewer { - user { + user { projects { edges { node { @@ -224,6 +226,7 @@ export async function fetchProjects(resolver: Resolver): Promise<[ProjectInfo]> schema alias version + region } } } @@ -240,6 +243,7 @@ export async function fetchProjects(resolver: Resolver): Promise<[ProjectInfo]> alias: p.alias, schema: p.schema, version: p.version, + region: p.region, })) return projectInfos @@ -256,6 +260,7 @@ query ($projectId: ID!){ alias schema version + region } } }` @@ -274,6 +279,7 @@ query ($projectId: ID!){ schema: json.data.viewer.project.schema, alias: json.data.viewer.project.alias, version: String(json.data.viewer.project.version), + region: json.data.viewer.project.region, } return projectInfo } @@ -352,6 +358,7 @@ mutation ($projectId: String!, $name: String!, $includeMutationCallbacks: Boolea alias schema version + region } } }` @@ -369,6 +376,7 @@ mutation ($projectId: String!, $name: String!, $includeMutationCallbacks: Boolea schema: json.data.cloneProject.project.schema, alias: json.data.cloneProject.project.alias, version: String(json.data.cloneProject.project.version), + region: json.data.cloneProject.project.region, } return projectInfo diff --git a/src/commands/projects.ts b/src/commands/projects.ts index 377b8815d7..b7cca451b0 100644 --- a/src/commands/projects.ts +++ b/src/commands/projects.ts @@ -24,14 +24,14 @@ export default async (props: Props, env: SystemEnvironment): Promise => { const data = projects.map(project => { const isCurrentProject = currentProjectId !== null && (currentProjectId === project.projectId || currentProjectId === project.alias) - return [isCurrentProject ? '*' : ' ', `${project.alias || project.projectId} `, project.name] + return [isCurrentProject ? '*' : ' ', `${project.alias || project.projectId} `, project.name, project.region] }) const output = table(data, { border: getBorderCharacters('void'), columnDefault: { paddingLeft: '0', - paddingRight: '1', + paddingRight: '2', }, drawHorizontalLine: () => false, }).trimRight() diff --git a/src/types.ts b/src/types.ts index 62afe66ab9..3dd1d4d878 100644 --- a/src/types.ts +++ b/src/types.ts @@ -49,6 +49,7 @@ export interface ProjectInfo { schema: string version: string alias: string + region: string } export interface MigrationMessage { diff --git a/tests/fixtures/mock_data.ts b/tests/fixtures/mock_data.ts index a03240fcae..3b510f5651 100644 --- a/tests/fixtures/mock_data.ts +++ b/tests/fixtures/mock_data.ts @@ -238,7 +238,8 @@ export const mockedPullProjectResponse1 = `\ "alias": null, "version": 1, "id": "cj26898xqm9tz0126n34d64ey", - "schema": "${mockedPullResponseSchema}" + "schema": "${mockedPullResponseSchema}", + "region": "EU_WEST_1" } } } @@ -253,7 +254,8 @@ export const mockedPullProjectResponseWithAlias1 = `\ "alias": "example", "version": 1, "id": "cj26898xqm9tz0126n34d64ey", - "schema": "${mockedPullResponseSchema}" + "schema": "${mockedPullResponseSchema}", + "region": "EU_WEST_1" } } } @@ -268,7 +270,8 @@ export const mockedPullProjectResponse2 = `\ "alias": null, "version": 2, "id": "cj26898xqm9tz0126n34d64ey", - "schema": "${mockedPullResponseSchema}" + "schema": "${mockedPullResponseSchema}", + "region": "EU_WEST_1" } } } @@ -283,7 +286,8 @@ export const mockedPullProjectResponseWithAlias2 = `\ "alias": "example", "version": 2, "id": "cj26898xqm9tz0126n34d64ey", - "schema": "${mockedPullResponseSchema}" + "schema": "${mockedPullResponseSchema}", + "region": "EU_WEST_1" } } } @@ -325,7 +329,8 @@ export const mockedCreateProjectResponse = `\ "schema": "type Tweet {\\n id: ID!\\n createdAt: DateTime!\\n updatedAt: DateTime!\\n text: String!\\n}\\n", "version": 1, "alias": null, - "name": "Example" + "name": "Example", + "region": "EU_WEST_1" } } } @@ -340,7 +345,8 @@ export const mockedClonedProjectResponse = `\ "schema": "type Tweet {\\n id: ID!\\n createdAt: DateTime!\\n updatedAt: DateTime!\\n text: String!\\n}\\n", "version": 1, "alias": null, - "name": "Clone of Example" + "name": "Clone of Example", + "region": "EU_WEST_1" } } } @@ -355,7 +361,8 @@ export const mockedCreateProjectResponseWithAlias = `\ "schema": "type Tweet {\\n id: ID!\\n createdAt: DateTime!\\n updatedAt: DateTime!\\n text: String!\\n}\\n", "alias": "example", "version": 1, - "name": "Example" + "name": "Example", + "region": "EU_WEST_1" } } } From 6e2a15d38f50f61860eddc2103551077ee5adac7 Mon Sep 17 00:00:00 2001 From: Christian Joudrey Date: Thu, 22 Jun 2017 20:25:10 -0400 Subject: [PATCH 2/2] Format region in project listing --- src/commands/projects.ts | 3 ++- src/utils/utils.ts | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/commands/projects.ts b/src/commands/projects.ts index b7cca451b0..b9f379c4bc 100644 --- a/src/commands/projects.ts +++ b/src/commands/projects.ts @@ -3,6 +3,7 @@ import { fetchProjects } from '../api/api' import figures = require('figures') import {couldNotFetchProjectsMessage, graphcoolProjectFileName} from '../utils/constants' import { readProjectIdFromProjectFile } from '../utils/file' +import { regionEnumToOption } from '../utils/utils' const {table, getBorderCharacters} = require('table') const debug = require('debug')('graphcool') @@ -24,7 +25,7 @@ export default async (props: Props, env: SystemEnvironment): Promise => { const data = projects.map(project => { const isCurrentProject = currentProjectId !== null && (currentProjectId === project.projectId || currentProjectId === project.alias) - return [isCurrentProject ? '*' : ' ', `${project.alias || project.projectId} `, project.name, project.region] + return [isCurrentProject ? '*' : ' ', `${project.alias || project.projectId} `, project.name, regionEnumToOption(project.region)] }) const output = table(data, { diff --git a/src/utils/utils.ts b/src/utils/utils.ts index 195c307015..580492a53d 100644 --- a/src/utils/utils.ts +++ b/src/utils/utils.ts @@ -21,4 +21,8 @@ export function makePartsEnclodesByCharacterBold(str: string, character: string) } } return components.join(chalk.bold(`\``)) -} \ No newline at end of file +} + +export function regionEnumToOption(regionEnum: string): string { + return regionEnum.toLowerCase().replace(/_/g, '-') +}