浏览代码

minor refactoring

Olivier Massot 3 年之前
父节点
当前提交
de6b55787c
共有 3 个文件被更改,包括 28 次插入15 次删除
  1. 4 4
      pages/cmf_licence/organization.vue
  2. 21 0
      services/utils/modelsUtils.ts
  3. 3 11
      store/sse.ts

+ 4 - 4
pages/cmf_licence/organization.vue

@@ -14,7 +14,7 @@
     >
       <div class="ma-12">
         <v-btn
-          v-if="!pending && file().value === null"
+          v-if="!pending && file === null"
           @click="submit"
         >
           {{ $t('generate') }}
@@ -25,7 +25,7 @@
           color="primary"
           :loading="pending"
           :disabled="pending"
-          :href="file().value ? file().value.url : ''">
+          :href="file ? file.url : ''">
           {{ $t('download') }}
         </v-btn>
       </div>
@@ -52,7 +52,7 @@ export default defineComponent({
 
     let fileId: Ref<number | null> = ref(null)
 
-    const file: ComputedRef<File | null> = computed(() => {
+    let file: ComputedRef<File | null> = computed(() => {
       return fileId.value !== null ? queryHelper.getItem(query, fileId.value) as File : null
     })
 
@@ -89,7 +89,7 @@ export default defineComponent({
     return {
       submit,
       pending,
-      file: () => file
+      file
     }
   },
   beforeDestroy() {

+ 21 - 0
services/utils/modelsUtils.ts

@@ -1,3 +1,5 @@
+import {models} from "~/models/_import";
+
 export default class ModelsUtils {
   /**
    * Extrait l'ID de l'URI passée en paramètre
@@ -14,4 +16,23 @@ export default class ModelsUtils {
 
     return parseInt(id)
   }
+  /**
+   * Extrait l'ID de l'URI passée en paramètre
+   * @param iri
+   */
+  static getModelFromIri (iri: string): any {
+    const matches = iri.match(/^\/api\/(\w+)\/.*/)
+    if (!matches || !matches[1]) {
+      throw new Error('cannot parse the IRI')
+    }
+    const entityName = matches[1]
+
+    let model = models.find(candidate => { return candidate.entity === entityName })
+    if (!model) {
+      throw new Error('no model found')
+    }
+    return model
+  }
+
+
 }

+ 3 - 11
store/sse.ts

@@ -1,6 +1,7 @@
 import {MercureEntityUpdate, sseState} from "~/types/interfaces";
 import {repositoryHelper} from "~/services/store/repository";
 import {models} from "~/models/_import";
+import ModelsUtils from "~/services/utils/modelsUtils";
 
 export const state = () => ({
   connected: false,
@@ -12,19 +13,10 @@ export const mutations = {
   },
   addEvent(state: sseState, event: MercureEntityUpdate) {
 
+    const model = ModelsUtils.getModelFromIri(event.iri)
+
     switch (event.operation) {
       case "update":
-        const matches = event.iri.match(/^\/api\/(\w+)\/.*/)
-        if (!matches) {
-          throw new Error('SSE: cannot parse the IRI')
-        }
-        const entityName = matches[1]
-
-        let model = models.find(candidate => { return candidate.entity === entityName })
-        if (!model) {
-          throw new Error('SSE: no model found')
-        }
-
         repositoryHelper.persist(model, JSON.parse(event.data))
         break