Add utils for recognizing resource by uuid
authorMichal Klobukowski <michal.klobukowski@contractors.roche.com>
Thu, 23 Aug 2018 15:59:15 +0000 (17:59 +0200)
committerMichal Klobukowski <michal.klobukowski@contractors.roche.com>
Thu, 23 Aug 2018 15:59:15 +0000 (17:59 +0200)
Feature #14102

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski@contractors.roche.com>

src/models/resource.ts

index 6a76b070452146734b2a9f64a36bf3d4eac6ff4f..3b30b08898701b6f0b4107ac5ce481995d180078 100644 (file)
@@ -20,5 +20,33 @@ export enum ResourceKind {
     GROUP = "arvados#group",
     PROCESS = "arvados#containerRequest",
     PROJECT = "arvados#group",
-    WORKFLOW = "arvados#workflow"
+    WORKFLOW = "arvados#workflow",
+    USER = "arvados#user",
 }
+
+export enum ResourceObjectType {
+    USER = 'tpzed',
+    GROUP = 'j7d0g',
+    COLLECTION = '4zz18'
+}
+
+export const extractUuidObjectType = (uuid: string) => {
+    const match = /(.{5})-(.{5})-(.{15})/.exec(uuid);
+    return match
+        ? match[2]
+        : undefined;
+};
+
+export const extractUuidKind = (uuid: string = '') => {
+    const objectType = extractUuidObjectType(uuid);
+    switch(objectType){
+        case ResourceObjectType.USER:
+            return ResourceKind.USER;
+        case ResourceObjectType.GROUP:
+            return ResourceKind.GROUP;
+        case ResourceObjectType.COLLECTION:
+            return ResourceKind.COLLECTION;
+        default:
+            return undefined;
+    }
+};