From b9fb24f2118acf2ce09b862d4aebaeba644272e3 Mon Sep 17 00:00:00 2001
From: Martin Weise <martin.weise@tuwien.ac.at>
Date: Tue, 25 Apr 2023 22:11:05 +0200
Subject: [PATCH] Added more to API

---
 dbrepo-ui/api/identifier.service.js | 30 +++++++++++++++++++++++++++++
 dbrepo-ui/layouts/default.vue       | 10 +---------
 dbrepo-ui/test/e2e/database.js      |  4 ++--
 dbrepo-ui/utils/index.js            | 26 +------------------------
 4 files changed, 34 insertions(+), 36 deletions(-)

diff --git a/dbrepo-ui/api/identifier.service.js b/dbrepo-ui/api/identifier.service.js
index a7b739d804..51181e9c59 100644
--- a/dbrepo-ui/api/identifier.service.js
+++ b/dbrepo-ui/api/identifier.service.js
@@ -53,6 +53,36 @@ class IdentifierService {
         })
     })
   }
+
+  export (pid) {
+    return new Promise((resolve, reject) => {
+      api.get(`/api/pid/${pid}`, { headers: { Accept: 'text/xml' } })
+        .then((response) => {
+          const identifier = response.data
+          console.debug('response identifier', identifier)
+          resolve(identifier)
+        })
+        .catch((error) => {
+          const { code, message } = error
+          console.error('Failed to export identifier', error)
+          Vue.$toast.error(`[${code}] Failed to export identifier: ${message}`)
+          reject(error)
+        })
+    })
+  }
+
+  delete (pid) {
+    return new Promise((resolve, reject) => {
+      api.delete(`/api/pid/${pid}`, { headers: { Accept: 'application/json' } })
+        .then(() => resolve())
+        .catch((error) => {
+          const { code, message } = error
+          console.error('Failed to delete identifier', error)
+          Vue.$toast.error(`[${code}] Failed to delete identifier: ${message}`)
+          reject(error)
+        })
+    })
+  }
 }
 
 export default new IdentifierService()
diff --git a/dbrepo-ui/layouts/default.vue b/dbrepo-ui/layouts/default.vue
index b455e83051..4745a933d7 100644
--- a/dbrepo-ui/layouts/default.vue
+++ b/dbrepo-ui/layouts/default.vue
@@ -120,16 +120,12 @@
 </template>
 
 <script>
-import { isDeveloper } from '@/utils'
 import AuthenticationService from '@/api/authentication.service'
 import DatabaseService from '@/api/database.service'
 import TableService from '@/api/table.service'
 import IdentifierService from '@/api/identifier.service'
 
 export default {
-  name: 'DefaultLayout',
-  components: {
-  },
   data () {
     return {
       drawer: false,
@@ -146,8 +142,7 @@ export default {
   },
   computed: {
     availableLocales () {
-      // return this.$i18n.locales.filter(i => i.code !== this.$i18n.locale)
-      return []
+      return this.$i18n.locales.filter(i => i.code !== this.$i18n.locale)
     },
     token () {
       return this.$store.state.token
@@ -167,9 +162,6 @@ export default {
     database () {
       return this.$store.state.database
     },
-    isDeveloper () {
-      return isDeveloper(this.user)
-    },
     version () {
       return this.$config.version
     },
diff --git a/dbrepo-ui/test/e2e/database.js b/dbrepo-ui/test/e2e/database.js
index 15a86e980b..22db30cb4c 100644
--- a/dbrepo-ui/test/e2e/database.js
+++ b/dbrepo-ui/test/e2e/database.js
@@ -6,7 +6,7 @@ test.before(before)
 test.after(after)
 
 test('databases_seeDatabases_succeeds', pageMacro, async (t, page) => {
-  await page.go('/container')
+  await page.go('/database')
   /* test */
   const success = await page.waitForSelector('main >> header >> text=Databases')
   t.true(!!success, 'Failed to find \'Databases\' in page')
@@ -15,7 +15,7 @@ test('databases_seeDatabases_succeeds', pageMacro, async (t, page) => {
 test('databases_createDatabase_succeeds', pageMacro, async (t, page) => {
   const state = { token: null, user: null, database: null, table: null, access: null }
 
-  await page.go('/container')
+  await page.go('/database')
   mutations.SET_TOKEN(state, 'ABC')
   mutations.SET_USER(state, { username: 'ava' })
   await page.screenshot({ path: './screenshots/databases_createDatabase_succeeds.png' })
diff --git a/dbrepo-ui/utils/index.js b/dbrepo-ui/utils/index.js
index fbf2e9b6b2..cc1ee56b61 100644
--- a/dbrepo-ui/utils/index.js
+++ b/dbrepo-ui/utils/index.js
@@ -28,27 +28,6 @@ function isNonNegativeInteger (str) {
   return str >>> 0 === parseFloat(str)
 }
 
-function isDeveloper (user) {
-  if (!user || !user.roles || user.roles.length === 0) {
-    return false
-  }
-  return user.roles.filter(a => a === 'ROLE_DEVELOPER').length === 1
-}
-
-function isResearcher (user) {
-  if (!user || !user.roles || user.roles.length === 0) {
-    return false
-  }
-  return user.roles.filter(a => a === 'ROLE_RESEARCHER').length === 1
-}
-
-function isDataSteward (user) {
-  if (!user || !user.roles || user.roles.length === 0) {
-    return false
-  }
-  return user.roles.filter(a => a === 'ROLE_DATA_STEWARD').length === 1
-}
-
 function formatDateUTC (str) {
   if (str === null) {
     return null
@@ -113,8 +92,5 @@ module.exports = {
   isNonNegativeInteger,
   formatYearUTC,
   formatMonthUTC,
-  formatDayUTC,
-  isDeveloper,
-  isResearcher,
-  isDataSteward
+  formatDayUTC
 }
-- 
GitLab