From e4b3023748f6268e96dea6e24e04324150867ceb Mon Sep 17 00:00:00 2001 From: Alirie Gray Date: Mon, 4 Mar 2019 15:21:07 -0800 Subject: [PATCH] fix(tasks): replace organization on tasks with org name string --- http/swagger.yml | 2 +- ui/mocks/dummyData.ts | 13 ++--------- ui/src/organizations/actions/orgView.ts | 10 ++++----- .../components/OrgTaskEditPage.tsx | 4 ++-- .../organizations/components/OrgTasksPage.tsx | 4 ++-- ui/src/organizations/reducers/orgView.ts | 2 +- ui/src/tasks/actions/v2/index.ts | 11 ++++------ ui/src/tasks/components/TaskCard.tsx | 17 ++++++-------- ui/src/tasks/components/TasksList.tsx | 2 +- .../__snapshots__/TasksList.test.tsx.snap | 22 ++----------------- ui/src/tasks/containers/TaskEditPage.tsx | 4 ++-- ui/src/tasks/reducers/v2/index.ts | 4 ++-- ui/src/types/tasks.ts | 3 +++ ui/src/types/v2/index.ts | 4 ++-- ui/src/types/v2/tasks.ts | 9 -------- 15 files changed, 35 insertions(+), 76 deletions(-) create mode 100644 ui/src/types/tasks.ts delete mode 100644 ui/src/types/v2/tasks.ts diff --git a/http/swagger.yml b/http/swagger.yml index 1e57472a62..8b5edd4210 100644 --- a/http/swagger.yml +++ b/http/swagger.yml @@ -5604,7 +5604,7 @@ components: description: The ID of the organization that owns this Task. type: string org: - description: The organization that owns this Task. + description: The name of the organization that owns this Task. type: string name: description: A description of the task. diff --git a/ui/mocks/dummyData.ts b/ui/mocks/dummyData.ts index 28ac135aed..213900df23 100644 --- a/ui/mocks/dummyData.ts +++ b/ui/mocks/dummyData.ts @@ -280,7 +280,7 @@ export const tasks: Task[] = [ flux: 'option task = {\n name: "pasdlak",\n cron: "2 0 * * *"\n}\nfrom(bucket: "inbucket") \n|> range(start: -1h)', cron: '2 0 * * *', - organization: orgs[0], + org: 'default', labels: [], }, { @@ -291,16 +291,7 @@ export const tasks: Task[] = [ flux: 'option task = {\n name: "somename",\n every: 1m,\n}\nfrom(bucket: "inbucket") \n|> range(start: -task.every)', every: '1m0s', - organization: { - links: { - buckets: '/api/v2/buckets?org=RadicalOrganization', - dashboards: '/api/v2/dashboards?org=RadicalOrganization', - self: '/api/v2/orgs/02ee9e2a29d73000', - tasks: '/api/v2/tasks?org=RadicalOrganization', - }, - id: '02ee9e2a29d73000', - name: 'RadicalOrganization', - }, + org: 'default', labels, }, ] diff --git a/ui/src/organizations/actions/orgView.ts b/ui/src/organizations/actions/orgView.ts index 2df03be4aa..b1ffef78e6 100644 --- a/ui/src/organizations/actions/orgView.ts +++ b/ui/src/organizations/actions/orgView.ts @@ -1,5 +1,5 @@ -import {Task, Organization} from 'src/types/v2' -import {ScraperTargetRequest} from '@influxdata/influx' +import {Organization} from 'src/types/v2' +import {ScraperTargetRequest, Task} from '@influxdata/influx' import {client} from 'src/utils/api' @@ -22,10 +22,8 @@ export const populateTasks = (tasks: Task[]): PopulateTasks => ({ export const getTasks = (org: Organization) => async dispatch => { const tasks = await client.tasks.getAllByOrg(org.name) - const organization = await client.organizations.get(org.id) - const tasksWithOrg = tasks.map(t => ({...t, organization})) as Task[] - - dispatch(populateTasks(tasksWithOrg)) + console.log(tasks) + dispatch(populateTasks(tasks)) } export const createScraper = (scraper: ScraperTargetRequest) => async () => { diff --git a/ui/src/organizations/components/OrgTaskEditPage.tsx b/ui/src/organizations/components/OrgTaskEditPage.tsx index 246646968e..d5005a96c5 100644 --- a/ui/src/organizations/components/OrgTaskEditPage.tsx +++ b/ui/src/organizations/components/OrgTaskEditPage.tsx @@ -22,8 +22,8 @@ import { } from 'src/tasks/actions/v2' // Types -import {Organization} from '@influxdata/influx' -import {Task, Links} from 'src/types/v2' +import {Organization, Task} from '@influxdata/influx' +import {Links} from 'src/types/v2' import {State as TasksState} from 'src/tasks/reducers/v2' import { TaskOptions, diff --git a/ui/src/organizations/components/OrgTasksPage.tsx b/ui/src/organizations/components/OrgTasksPage.tsx index 667e1181fa..b7dd1053db 100644 --- a/ui/src/organizations/components/OrgTasksPage.tsx +++ b/ui/src/organizations/components/OrgTasksPage.tsx @@ -26,8 +26,8 @@ import { } from 'src/tasks/actions/v2' // Types -import {Organization} from '@influxdata/influx' -import {AppState, Task, TaskStatus} from 'src/types/v2' +import {Organization, Task} from '@influxdata/influx' +import {AppState, TaskStatus} from 'src/types/v2' import {client} from 'src/utils/api' interface PassedInProps { diff --git a/ui/src/organizations/reducers/orgView.ts b/ui/src/organizations/reducers/orgView.ts index 6c948cf240..be5b1645d5 100644 --- a/ui/src/organizations/reducers/orgView.ts +++ b/ui/src/organizations/reducers/orgView.ts @@ -3,8 +3,8 @@ import { Telegraf, ScraperTargetResponse, Bucket, + Task, } from '@influxdata/influx' -import {Task} from 'src/types/v2' import {Dashboard} from 'src/types' import {ActionTypes, Actions} from 'src/organizations/actions/orgView' diff --git a/ui/src/tasks/actions/v2/index.ts b/ui/src/tasks/actions/v2/index.ts index 22f608c269..9c9627c74a 100644 --- a/ui/src/tasks/actions/v2/index.ts +++ b/ui/src/tasks/actions/v2/index.ts @@ -24,7 +24,8 @@ import { } from 'src/shared/copy/v2/notifications' // Types -import {AppState, Label, Task} from 'src/types/v2' +import {AppState, Label} from 'src/types/v2' +import {Task} from '@influxdata/influx' // Utils import {getDeep} from 'src/utils/wrappers' @@ -327,16 +328,12 @@ export const populateTasks = () => async ( } export const selectTaskByID = (id: string, route?: string) => async ( - dispatch, - getState: GetStateFunc + dispatch ): Promise => { try { - const {orgs} = getState() - const task = (await client.tasks.get(id)) as Task - const org = orgs.find(org => org.id === task.orgID) - return dispatch(setCurrentTask({...task, organization: org})) + return dispatch(setCurrentTask({...task})) } catch (e) { console.error(e) dispatch(goToTasks(route)) diff --git a/ui/src/tasks/components/TaskCard.tsx b/ui/src/tasks/components/TaskCard.tsx index 4178497f63..63c7b66ef5 100644 --- a/ui/src/tasks/components/TaskCard.tsx +++ b/ui/src/tasks/components/TaskCard.tsx @@ -9,8 +9,7 @@ import FeatureFlag from 'src/shared/components/FeatureFlag' // Types import {ComponentColor} from '@influxdata/clockface' -import {Task as TaskAPI} from '@influxdata/influx' -import {Task} from 'src/types/v2' +import {Task} from '@influxdata/influx' // Constants import {DEFAULT_TASK_NAME} from 'src/dashboards/constants' @@ -37,7 +36,7 @@ export class TaskCard extends PureComponent { testID="task-card" disabled={!this.isTaskActive} labels={() => this.labels} - owner={task.organization} + owner={{name: task.org, id: task.orgID}} contextMenu={() => this.contextMenu} name={() => ( { private handleExport = () => { const {router, task} = this.props - router.push( - `/organizations/${task.organization.id}/tasks/${task.id}/export` - ) + router.push(`/organizations/${task.orgID}/tasks/${task.id}/export`) } private get labels(): JSX.Element { @@ -154,7 +151,7 @@ export class TaskCard extends PureComponent { private get isTaskActive(): boolean { const {task} = this.props - if (task.status === TaskAPI.StatusEnum.Active) { + if (task.status === Task.StatusEnum.Active) { return true } return false @@ -168,10 +165,10 @@ export class TaskCard extends PureComponent { private changeToggle = () => { const {task, onActivate} = this.props - if (task.status === TaskAPI.StatusEnum.Active) { - task.status = TaskAPI.StatusEnum.Inactive + if (task.status === Task.StatusEnum.Active) { + task.status = Task.StatusEnum.Inactive } else { - task.status = TaskAPI.StatusEnum.Active + task.status = Task.StatusEnum.Active } onActivate(task) } diff --git a/ui/src/tasks/components/TasksList.tsx b/ui/src/tasks/components/TasksList.tsx index 9a326ee39c..d96de2e29b 100644 --- a/ui/src/tasks/components/TasksList.tsx +++ b/ui/src/tasks/components/TasksList.tsx @@ -11,7 +11,7 @@ import EditLabelsOverlay from 'src/shared/components/EditLabelsOverlay' // Types import EmptyTasksList from 'src/tasks/components/EmptyTasksList' -import {Task} from 'src/types/v2' +import {Task} from '@influxdata/influx' import {Sort} from 'src/clockface' import { diff --git a/ui/src/tasks/components/__snapshots__/TasksList.test.tsx.snap b/ui/src/tasks/components/__snapshots__/TasksList.test.tsx.snap index 8742718234..f522cc9125 100644 --- a/ui/src/tasks/components/__snapshots__/TasksList.test.tsx.snap +++ b/ui/src/tasks/components/__snapshots__/TasksList.test.tsx.snap @@ -58,17 +58,8 @@ from(bucket: \\"inbucket\\") "id": "02ef9deff2141000", "labels": Array [], "name": "pasdlak", + "org": "default", "orgID": "02ee9e2a29d73000", - "organization": Object { - "id": "02ee9e2a29d73000", - "links": Object { - "buckets": "/api/v2/buckets?org=RadicalOrganization", - "dashboards": "/api/v2/dashboards?org=RadicalOrganization", - "self": "/api/v2/orgs/02ee9e2a29d73000", - "tasks": "/api/v2/tasks?org=RadicalOrganization", - }, - "name": "RadicalOrganization", - }, "status": "active", }, Object { @@ -99,17 +90,8 @@ from(bucket: \\"inbucket\\") }, ], "name": "somename", + "org": "default", "orgID": "02ee9e2a29d73000", - "organization": Object { - "id": "02ee9e2a29d73000", - "links": Object { - "buckets": "/api/v2/buckets?org=RadicalOrganization", - "dashboards": "/api/v2/dashboards?org=RadicalOrganization", - "self": "/api/v2/orgs/02ee9e2a29d73000", - "tasks": "/api/v2/tasks?org=RadicalOrganization", - }, - "name": "RadicalOrganization", - }, "status": "active", }, ] diff --git a/ui/src/tasks/containers/TaskEditPage.tsx b/ui/src/tasks/containers/TaskEditPage.tsx index b7ccea4936..4756abbbb6 100644 --- a/ui/src/tasks/containers/TaskEditPage.tsx +++ b/ui/src/tasks/containers/TaskEditPage.tsx @@ -22,14 +22,14 @@ import { } from 'src/tasks/actions/v2' // Types -import {Organization} from '@influxdata/influx' +import {Organization, Task} from '@influxdata/influx' import {State as TasksState} from 'src/tasks/reducers/v2' import { TaskOptions, TaskOptionKeys, TaskSchedule, } from 'src/utils/taskOptionsToFluxScript' -import {Task, Links} from 'src/types/v2' +import {Links} from 'src/types/v2' interface PassedInProps { router: InjectedRouter diff --git a/ui/src/tasks/reducers/v2/index.ts b/ui/src/tasks/reducers/v2/index.ts index 8cf5f2bb0c..e30aff17bf 100644 --- a/ui/src/tasks/reducers/v2/index.ts +++ b/ui/src/tasks/reducers/v2/index.ts @@ -1,10 +1,10 @@ import {TaskOptions, TaskSchedule} from 'src/utils/taskOptionsToFluxScript' import {Run, LogEvent} from '@influxdata/influx' -//Types +// Types import {Action} from 'src/tasks/actions/v2' +import {Task} from '@influxdata/influx' import {RemoteDataState} from '@influxdata/clockface' -import {Task} from 'src/types/v2' export interface State { newScript: string diff --git a/ui/src/types/tasks.ts b/ui/src/types/tasks.ts new file mode 100644 index 0000000000..72521d9650 --- /dev/null +++ b/ui/src/types/tasks.ts @@ -0,0 +1,3 @@ +import {Task as TaskAPI} from '@influxdata/influx' + +export const TaskStatus = TaskAPI.StatusEnum diff --git a/ui/src/types/v2/index.ts b/ui/src/types/v2/index.ts index e97fb837f9..6d801cec90 100644 --- a/ui/src/types/v2/index.ts +++ b/ui/src/types/v2/index.ts @@ -19,9 +19,9 @@ import { } from 'src/types/v2/dashboards' import {Source} from '@influxdata/influx' -import {Task, TaskStatus} from 'src/types/v2/tasks' import {Member} from 'src/types/v2/members' -import {Organization} from '@influxdata/influx' +import {Organization, Task} from '@influxdata/influx' +import {TaskStatus} from 'src/types/tasks' import {Links} from 'src/types/v2/links' import {Notification} from 'src/types' import {TimeRange} from 'src/types/queries' diff --git a/ui/src/types/v2/tasks.ts b/ui/src/types/v2/tasks.ts deleted file mode 100644 index cfd2cc5071..0000000000 --- a/ui/src/types/v2/tasks.ts +++ /dev/null @@ -1,9 +0,0 @@ -import {Task as TaskAPI, Organization, User, Label} from '@influxdata/influx' - -export interface Task extends Exclude { - labels: Label[] - organization: Organization - owner?: User -} - -export const TaskStatus = TaskAPI.StatusEnum