remove ResourceTypes and Api client Authorization extends by Resource
authorJanicki Artur <artur.janicki@contractors.roche.com>
Thu, 27 Dec 2018 10:43:24 +0000 (11:43 +0100)
committerJanicki Artur <artur.janicki@contractors.roche.com>
Thu, 27 Dec 2018 10:43:24 +0000 (11:43 +0100)
Feature #14652_api_tokens_pagination

Arvados-DCO-1.1-Signed-off-by: Janicki Artur <artur.janicki@contractors.roche.com>

src/models/api-client-authorization.ts
src/models/resource.ts
src/services/api/order-builder.ts
src/store/resources/resources-actions.ts
src/store/resources/resources.ts
src/views-components/data-explorer/with-resources.tsx

index e8f6fac7ae2f16c18405efd119f35bde6cb5c12a..38f56ccf2055fff6116ea2b5ff78e26eb420a82d 100644 (file)
@@ -2,9 +2,9 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { ResourceKind } from '~/models/resource';
+import { ResourceKind, Resource } from '~/models/resource';
 
-export interface ApiClientAuthorization {
+export interface ApiClientAuthorization extends Resource {
     uuid: string;
     apiToken: string;
     apiClientId: number;
@@ -18,7 +18,4 @@ export interface ApiClientAuthorization {
     ownerUuid: string;
     defaultOwnerUuid: string;
     scopes: string[];
-    kind: ResourceKind.API_CLIENT_AUTHORIZATION;
-    etag: string;
-    href: string;
 }
\ No newline at end of file
index 6f82402821ec26fc9c8cc5ea94876df6dfa4c508..c2c2771bc3cdf26a4e460a94e1e00d012f6730cc 100644 (file)
@@ -16,8 +16,6 @@ export interface Resource {
     etag: string;
 }
 
-export type ResourceTypes = Resource | ApiClientAuthorization;
-
 export interface TrashableResource extends Resource {
     trashAt: string;
     deleteAt: string;
index a54836702f88cc8624b5154124e86cdf39819341..03f2696a5614178daa4aaec77e0d346d045faf75 100644 (file)
@@ -3,11 +3,11 @@
 // SPDX-License-Identifier: AGPL-3.0
 
 import * as _ from "lodash";
-import { ResourceTypes } from "src/models/resource";
+import { Resource } from "src/models/resource";
 
 export enum OrderDirection { ASC, DESC }
 
-export class OrderBuilder<T extends ResourceTypes = ResourceTypes> {
+export class OrderBuilder<T extends Resource = Resource> {
 
     constructor(private order: string[] = []) {}
 
index e6566ab8ad0e2c041960192e3bb6b101bc8f4c68..1de2feff8b9f8d42111090f132f7dfba4a624a0c 100644 (file)
@@ -3,20 +3,20 @@
 // SPDX-License-Identifier: AGPL-3.0
 
 import { unionize, ofType, UnionOf } from '~/common/unionize';
-import { extractUuidKind, ResourceTypes } from '~/models/resource';
+import { extractUuidKind, Resource } from '~/models/resource';
 import { Dispatch } from 'redux';
 import { RootState } from '~/store/store';
 import { ServiceRepository } from '~/services/services';
 import { getResourceService } from '~/services/services';
 
 export const resourcesActions = unionize({
-    SET_RESOURCES: ofType<ResourceTypes[]>(),
+    SET_RESOURCES: ofType<Resource[]>(),
     DELETE_RESOURCES: ofType<string[]>()
 });
 
 export type ResourcesAction = UnionOf<typeof resourcesActions>;
 
-export const updateResources = (resources: ResourceTypes[]) => resourcesActions.SET_RESOURCES(resources);
+export const updateResources = (resources: Resource[]) => resourcesActions.SET_RESOURCES(resources);
 
 export const loadResource = (uuid: string) =>
     async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
index 4fec02a5d5b9af8ed3b179dcb6f0aad727143093..e7153decd70af11a91131c8f8009a26a74df73eb 100644 (file)
@@ -2,16 +2,16 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { ResourceTypes } from "~/models/resource";
+import { Resource } from "~/models/resource";
 import { ResourceKind } from '~/models/resource';
 
-export type ResourcesState = { [key: string]: ResourceTypes };
+export type ResourcesState = { [key: string]: Resource };
 
-export const getResource = <T extends ResourceTypes = ResourceTypes>(id: string) =>
+export const getResource = <T extends Resource = Resource>(id: string) =>
     (state: ResourcesState): T | undefined =>
         state[id] as T;
 
-export const setResource = <T extends ResourceTypes>(id: string, data: T) =>
+export const setResource = <T extends Resource>(id: string, data: T) =>
     (state: ResourcesState) => ({
         ...state,
         [id]: data
@@ -24,7 +24,7 @@ export const deleteResource = (id: string) =>
         return newState;
     };
 
-export const filterResources = (filter: (resource: ResourceTypes) => boolean) =>
+export const filterResources = (filter: (resource: Resource) => boolean) =>
     (state: ResourcesState) =>
         Object
             .keys(state)
index 399a2d05ff567addba7996997dccadd3e32df0be..54c9396cde1c71f482b27b7fda610fdad28eeb88 100644 (file)
@@ -6,10 +6,10 @@ import * as React from 'react';
 import { connect } from 'react-redux';
 import { RootState } from '~/store/store';
 import { getResource } from '~/store/resources/resources';
-import { Resource, ResourceTypes } from '~/models/resource';
+import { Resource } from '~/models/resource';
 
 interface WithResourceProps {
-    resource?: ResourceTypes;
+    resource?: Resource;
 }
 
 export const withResource = (component: React.ComponentType<WithResourceProps & { uuid: string }>) =>
@@ -19,7 +19,7 @@ export const withResource = (component: React.ComponentType<WithResourceProps &
         })
     )(component);
 
-export const getDataFromResource = (property: string, resource?: ResourceTypes) => {
+export const getDataFromResource = (property: string, resource?: Resource) => {
     return resource && resource[property] ? resource[property] : '(none)';
 };