shared-ritm 1.2.111 → 1.2.113

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/shared-ritm.es.js +13 -11
  3. package/dist/shared-ritm.umd.js +6 -6
  4. package/dist/types/api/services/ComentsServise.d.ts +10 -0
  5. package/dist/types/api/services/PhotoService.d.ts +51 -38
  6. package/dist/types/api/services/VideoService.d.ts +1 -0
  7. package/dist/types/api/types/Api_Users.d.ts +43 -0
  8. package/package.json +64 -64
  9. package/src/api/services/BrigadesService.ts +32 -32
  10. package/src/api/services/EquipmentService.ts +29 -29
  11. package/src/api/services/InstrumentsService.ts +63 -63
  12. package/src/api/services/ModulesService.ts +27 -27
  13. package/src/api/services/ProjectsService.ts +72 -72
  14. package/src/api/services/SearchService.ts +22 -22
  15. package/src/api/services/UserService.ts +101 -101
  16. package/src/api/services/VideoService.ts +66 -62
  17. package/src/api/settings/ApiService.ts +124 -124
  18. package/src/api/types/Api_Brigades.ts +36 -36
  19. package/src/api/types/Api_Equipment.ts +3 -3
  20. package/src/api/types/Api_Instruments.ts +136 -136
  21. package/src/api/types/Api_Modules.ts +21 -21
  22. package/src/api/types/Api_Search.ts +77 -77
  23. package/src/api/types/Api_User.ts +117 -117
  24. package/src/api/types/Api_Video.ts +123 -123
  25. package/src/common/app-input-new/AppInputNew.vue +175 -175
  26. package/src/common/app-layout/components/AppLayoutHeader.vue +3 -2
  27. package/src/common/app-sheet-new/AppSheetNew.vue +246 -246
  28. package/src/common/app-table/AppTable.vue +314 -314
  29. package/src/common/app-table/AppTableLayout.vue +137 -137
  30. package/src/common/app-table/components/ModalSelect.vue +270 -270
  31. package/src/common/app-table/components/TableModal.vue +356 -356
  32. package/src/common/app-table/controllers/useBaseTable.ts +45 -45
  33. package/src/index.ts +122 -122
  34. package/src/styles/variables.sass +12 -12
@@ -0,0 +1,10 @@
1
+ import ApiService from '@/api/settings/ApiService'
2
+ import { Api_Comment_Request_Dto } from '@/api/types/Api_Comment'
3
+ import { Api_Tasks_Task_Dto } from '@/api/types/Api_Tasks'
4
+ declare class CommentsService extends ApiService {
5
+ uploadComment(payload: Api_Comment_Request_Dto): Promise<Api_Tasks_Task_Dto>
6
+ deleteComment(commentId: string): Promise<unknown>
7
+ editComment(payload: { commentId: string; data: unknown }): Promise<unknown>
8
+ }
9
+ export default function useCommentsService(): CommentsService
10
+ export {}
@@ -1,40 +1,53 @@
1
- import * as faceapi from 'face-api.js';
1
+ import * as faceapi from 'face-api.js'
2
2
  declare class PhotoService {
3
- getVideoStreamConfig(width: number, height: number): {
4
- audio: boolean;
5
- video: {
6
- width: {
7
- min: number;
8
- ideal: number;
9
- };
10
- height: {
11
- min: number;
12
- ideal: number;
13
- };
14
- facingMode: string;
15
- };
16
- };
17
- getContourCoordinate(width: number, height: number): {
18
- x: number;
19
- y: number;
20
- width: number;
21
- height: number;
22
- };
23
- getBoxData(box: any): {
24
- x: any;
25
- y: any;
26
- width: any;
27
- height: any;
28
- } | null;
29
- setStylesForCanvas(canvasContainer: any): void;
30
- checkFaceInclusion(frame: any, face: any): boolean;
31
- getFaceDetections(videoRef: any): Promise<faceapi.WithFaceExpressions<faceapi.WithFaceLandmarks<{
32
- detection: faceapi.FaceDetection;
33
- }, faceapi.FaceLandmarks68>>[]>;
34
- getCanvas(videoRef: any): HTMLCanvasElement;
35
- getResizedAndDetection(canvas: any, detections: any, ctx: any, videoWidth: number, videoHeight: number): void;
36
- getFaceSnapshot(inputImage: any, box: any): Promise<string | null>;
37
- initModels(): Promise<void>;
3
+ getVideoStreamConfig(
4
+ width: number,
5
+ height: number,
6
+ ): {
7
+ audio: boolean
8
+ video: {
9
+ width: {
10
+ min: number
11
+ ideal: number
12
+ }
13
+ height: {
14
+ min: number
15
+ ideal: number
16
+ }
17
+ facingMode: string
18
+ }
19
+ }
20
+ getContourCoordinate(
21
+ width: number,
22
+ height: number,
23
+ ): {
24
+ x: number
25
+ y: number
26
+ width: number
27
+ height: number
28
+ }
29
+ getBoxData(box: any): {
30
+ x: any
31
+ y: any
32
+ width: any
33
+ height: any
34
+ } | null
35
+ setStylesForCanvas(canvasContainer: any): void
36
+ checkFaceInclusion(frame: any, face: any): boolean
37
+ getFaceDetections(videoRef: any): Promise<
38
+ faceapi.WithFaceExpressions<
39
+ faceapi.WithFaceLandmarks<
40
+ {
41
+ detection: faceapi.FaceDetection
42
+ },
43
+ faceapi.FaceLandmarks68
44
+ >
45
+ >[]
46
+ >
47
+ getCanvas(videoRef: any): HTMLCanvasElement
48
+ getResizedAndDetection(canvas: any, detections: any, ctx: any, videoWidth: number, videoHeight: number): void
49
+ getFaceSnapshot(inputImage: any, box: any): Promise<string | null>
50
+ initModels(): Promise<void>
38
51
  }
39
- export default function usePhotoService(): PhotoService;
40
- export {};
52
+ export default function usePhotoService(): PhotoService
53
+ export {}
@@ -4,6 +4,7 @@ import { Api_Video_Source_Create, Api_Video_Source_Search, Api_Work_Zone, Api_Wo
4
4
  declare class VideoService extends ApiService {
5
5
  startVideoAnalytics(): Promise<boolean>;
6
6
  reloadVideoAnalytics(ids: string[]): Promise<any>;
7
+ hardReloadStream(): Promise<any>;
7
8
  fetchWorkZones(params?: any): Promise<ResponseApi<Api_Work_Zone_Search[]>>;
8
9
  fetchWorkZone(id: string): Promise<ResponseApi<Api_Work_Zone>>;
9
10
  editWorkZone(id: string, body: {
@@ -0,0 +1,43 @@
1
+ export type Api_Search_User_Passes = {
2
+ id: string
3
+ type: string
4
+ uuid: string
5
+ }
6
+ export type Api_Search_User_Positions = {
7
+ id: string
8
+ name: string
9
+ display_name: string
10
+ description: string
11
+ }
12
+ export type Api_Search_User_Roles = {
13
+ id: string
14
+ name: string
15
+ display_name: string
16
+ }
17
+ export type Api_Search_User_Teams = {
18
+ id: string
19
+ name: string
20
+ display_name: string
21
+ roles: Api_Search_User_Roles[]
22
+ }
23
+ export type Api_Search_User_Photos = {
24
+ id: string
25
+ name: string
26
+ path: string
27
+ type: string
28
+ }
29
+ export type Api_Search_User = {
30
+ id: string
31
+ full_name: string
32
+ last_name: string
33
+ first_name: string
34
+ patronymic: string
35
+ email: string
36
+ phone: string
37
+ divisions: string
38
+ personnel_number: string
39
+ passes: Api_Search_User_Passes[]
40
+ positions: Api_Search_User_Positions[]
41
+ teams: Api_Search_User_Teams[]
42
+ photos: Api_Search_User_Photos[]
43
+ }
package/package.json CHANGED
@@ -1,64 +1,64 @@
1
- {
2
- "name": "shared-ritm",
3
- "version": "1.2.111",
4
- "private": false,
5
- "files": [
6
- "dist",
7
- "src"
8
- ],
9
- "main": "dist/shared-ritm.umd.js",
10
- "type": "module",
11
- "module": "./dist/shared-ritm.es.js",
12
- "types": "./dist/types/index.d.ts",
13
- "exports": {
14
- ".": {
15
- "import": "./dist/shared-ritm.es.js",
16
- "require": "./dist/shared-ritm.umd.js",
17
- "default": "./dist/shared-ritm.es.js",
18
- "types": "./dist/types/index.d.ts"
19
- },
20
- "./style": "./dist/index.css"
21
- },
22
- "scripts": {
23
- "dev": "vite",
24
- "build": "vite build && tsc --emitDeclarationOnly",
25
- "typecheck": "vue-tsc --noEmit",
26
- "lint": "eslint --fix",
27
- "format": "prettier -w -u ."
28
- },
29
- "dependencies": {
30
- "@quasar/extras": "^1.16.17",
31
- "@vueuse/core": "^10.1.2",
32
- "face-api.js": "^0.22.2",
33
- "axios": "^1.7.7",
34
- "vue": "^3.5.12",
35
- "vue-router": "^4.0.3"
36
- },
37
- "peerDependencies": {
38
- "quasar": "^2.18.1"
39
- },
40
- "devDependencies": {
41
- "@quasar/vite-plugin": "^1.9.0",
42
- "@rollup/pluginutils": "^5.1.3",
43
- "@types/node": "^22.7.9",
44
- "@typescript-eslint/eslint-plugin": "^4.25.0",
45
- "@typescript-eslint/parser": "^4.25.0",
46
- "@vitejs/plugin-vue": "^5.1.4",
47
- "@vue/compiler-sfc": "^3.0.5",
48
- "@vue/eslint-config-prettier": "^6.0.0",
49
- "@vue/eslint-config-typescript": "^7.0.0",
50
- "eslint": "^7.27.0",
51
- "eslint-plugin-prettier": "^3.4.0",
52
- "eslint-plugin-vue": "^7.10.0",
53
- "install": "^0.13.0",
54
- "npm": "^11.4.0",
55
- "prettier": "^2.3.0",
56
- "quasar": "^2.18.1",
57
- "rollup-plugin-visualizer": "^5.14.0",
58
- "sass": "^1.80.4",
59
- "typescript": "^5.6.3",
60
- "vite": "^5.4.9",
61
- "vite-plugin-css-modules": "^0.0.1",
62
- "vue-tsc": "^2.1.6"
63
- }
64
- }
1
+ {
2
+ "name": "shared-ritm",
3
+ "version": "1.2.113",
4
+ "private": false,
5
+ "files": [
6
+ "dist",
7
+ "src"
8
+ ],
9
+ "main": "dist/shared-ritm.umd.js",
10
+ "type": "module",
11
+ "module": "./dist/shared-ritm.es.js",
12
+ "types": "./dist/types/index.d.ts",
13
+ "exports": {
14
+ ".": {
15
+ "import": "./dist/shared-ritm.es.js",
16
+ "require": "./dist/shared-ritm.umd.js",
17
+ "default": "./dist/shared-ritm.es.js",
18
+ "types": "./dist/types/index.d.ts"
19
+ },
20
+ "./style": "./dist/index.css"
21
+ },
22
+ "scripts": {
23
+ "dev": "vite",
24
+ "build": "vite build && tsc --emitDeclarationOnly",
25
+ "typecheck": "vue-tsc --noEmit",
26
+ "lint": "eslint --fix",
27
+ "format": "prettier -w -u ."
28
+ },
29
+ "dependencies": {
30
+ "@quasar/extras": "^1.16.17",
31
+ "@vueuse/core": "^10.1.2",
32
+ "face-api.js": "^0.22.2",
33
+ "axios": "^1.7.7",
34
+ "vue": "^3.5.12",
35
+ "vue-router": "^4.0.3"
36
+ },
37
+ "peerDependencies": {
38
+ "quasar": "^2.18.1"
39
+ },
40
+ "devDependencies": {
41
+ "@quasar/vite-plugin": "^1.9.0",
42
+ "@rollup/pluginutils": "^5.1.3",
43
+ "@types/node": "^22.7.9",
44
+ "@typescript-eslint/eslint-plugin": "^4.25.0",
45
+ "@typescript-eslint/parser": "^4.25.0",
46
+ "@vitejs/plugin-vue": "^5.1.4",
47
+ "@vue/compiler-sfc": "^3.0.5",
48
+ "@vue/eslint-config-prettier": "^6.0.0",
49
+ "@vue/eslint-config-typescript": "^7.0.0",
50
+ "eslint": "^7.27.0",
51
+ "eslint-plugin-prettier": "^3.4.0",
52
+ "eslint-plugin-vue": "^7.10.0",
53
+ "install": "^0.13.0",
54
+ "npm": "^11.4.0",
55
+ "prettier": "^2.3.0",
56
+ "quasar": "^2.18.1",
57
+ "rollup-plugin-visualizer": "^5.14.0",
58
+ "sass": "^1.80.4",
59
+ "typescript": "^5.6.3",
60
+ "vite": "^5.4.9",
61
+ "vite-plugin-css-modules": "^0.0.1",
62
+ "vue-tsc": "^2.1.6"
63
+ }
64
+ }
@@ -1,32 +1,32 @@
1
- import ApiService from '../settings/ApiService'
2
- import { Api_Brigade, Api_Brigade_Create, Api_Brigade_Search } from '../types/Api_Brigades'
3
- import { ResponseApi } from '../types/Api_Service'
4
-
5
- class BrigadesService extends ApiService {
6
- public fetchBrigades(params: any): Promise<ResponseApi<Api_Brigade_Search[]>> {
7
- return this.get<ResponseApi<Api_Brigade_Search[]>>('/search/brigades', { params })
8
- }
9
-
10
- public editBrigade({ id, model }: { id: string; model: Partial<Api_Brigade_Create> }): Promise<Api_Brigade> {
11
- return this.put<Partial<Api_Brigade_Create>, Api_Brigade>(`/brigades/${id}`, model)
12
- }
13
-
14
- public getBrigade(id: string): Promise<Api_Brigade> {
15
- return this.get<Api_Brigade>(`/brigades/${id}`)
16
- }
17
-
18
- public createBrigade(model: Api_Brigade_Create): Promise<Api_Brigade> {
19
- return this.post<Api_Brigade_Create, Api_Brigade>('/brigades', model)
20
- }
21
-
22
- public deleteBrigade(id: string): Promise<{ data: boolean; status: number }> {
23
- return this.delete(`/brigades/${id}`)
24
- }
25
- }
26
-
27
- let api: BrigadesService
28
-
29
- export default function useBrigadesService() {
30
- if (!api) api = new BrigadesService()
31
- return api
32
- }
1
+ import ApiService from '../settings/ApiService'
2
+ import { Api_Brigade, Api_Brigade_Create, Api_Brigade_Search } from '../types/Api_Brigades'
3
+ import { ResponseApi } from '../types/Api_Service'
4
+
5
+ class BrigadesService extends ApiService {
6
+ public fetchBrigades(params: any): Promise<ResponseApi<Api_Brigade_Search[]>> {
7
+ return this.get<ResponseApi<Api_Brigade_Search[]>>('/search/brigades', { params })
8
+ }
9
+
10
+ public editBrigade({ id, model }: { id: string; model: Partial<Api_Brigade_Create> }): Promise<Api_Brigade> {
11
+ return this.put<Partial<Api_Brigade_Create>, Api_Brigade>(`/brigades/${id}`, model)
12
+ }
13
+
14
+ public getBrigade(id: string): Promise<Api_Brigade> {
15
+ return this.get<Api_Brigade>(`/brigades/${id}`)
16
+ }
17
+
18
+ public createBrigade(model: Api_Brigade_Create): Promise<Api_Brigade> {
19
+ return this.post<Api_Brigade_Create, Api_Brigade>('/brigades', model)
20
+ }
21
+
22
+ public deleteBrigade(id: string): Promise<{ data: boolean; status: number }> {
23
+ return this.delete(`/brigades/${id}`)
24
+ }
25
+ }
26
+
27
+ let api: BrigadesService
28
+
29
+ export default function useBrigadesService() {
30
+ if (!api) api = new BrigadesService()
31
+ return api
32
+ }
@@ -1,29 +1,29 @@
1
- import ApiService from '../settings/ApiService'
2
- import { ResponseApi } from '../types/Api_Service'
3
- import { Api_Equipment_Full_Dto } from '@/api/types/Api_Repairs'
4
- import { Api_Equipment_Create } from '@/api/types/Api_Equipment'
5
-
6
- class EquipmentService extends ApiService {
7
- public fetchEquipment(params: any): Promise<ResponseApi<Api_Equipment_Full_Dto[]>> {
8
- return this.get<ResponseApi<Api_Equipment_Full_Dto[]>>('repairs/equipment/list', { params })
9
- }
10
-
11
- public createEquipment(body: Api_Equipment_Create): Promise<Api_Equipment_Full_Dto> {
12
- return this.post<Api_Equipment_Create, Api_Equipment_Full_Dto>('repairs/equipment', body)
13
- }
14
-
15
- public editEquipment(id: string, body: Partial<Api_Equipment_Create>): Promise<Api_Equipment_Full_Dto> {
16
- return this.put<Partial<Api_Equipment_Create>, Api_Equipment_Full_Dto>(`repairs/equipment/${id}`, body)
17
- }
18
-
19
- public deleteEquipment(id: string): Promise<{ data: boolean; status: number }> {
20
- return this.delete(`repairs/equipment/${id}`)
21
- }
22
- }
23
-
24
- let api: EquipmentService
25
-
26
- export default function useEquipmentService() {
27
- if (!api) api = new EquipmentService()
28
- return api
29
- }
1
+ import ApiService from '../settings/ApiService'
2
+ import { ResponseApi } from '../types/Api_Service'
3
+ import { Api_Equipment_Full_Dto } from '@/api/types/Api_Repairs'
4
+ import { Api_Equipment_Create } from '@/api/types/Api_Equipment'
5
+
6
+ class EquipmentService extends ApiService {
7
+ public fetchEquipment(params: any): Promise<ResponseApi<Api_Equipment_Full_Dto[]>> {
8
+ return this.get<ResponseApi<Api_Equipment_Full_Dto[]>>('repairs/equipment/list', { params })
9
+ }
10
+
11
+ public createEquipment(body: Api_Equipment_Create): Promise<Api_Equipment_Full_Dto> {
12
+ return this.post<Api_Equipment_Create, Api_Equipment_Full_Dto>('repairs/equipment', body)
13
+ }
14
+
15
+ public editEquipment(id: string, body: Partial<Api_Equipment_Create>): Promise<Api_Equipment_Full_Dto> {
16
+ return this.put<Partial<Api_Equipment_Create>, Api_Equipment_Full_Dto>(`repairs/equipment/${id}`, body)
17
+ }
18
+
19
+ public deleteEquipment(id: string): Promise<{ data: boolean; status: number }> {
20
+ return this.delete(`repairs/equipment/${id}`)
21
+ }
22
+ }
23
+
24
+ let api: EquipmentService
25
+
26
+ export default function useEquipmentService() {
27
+ if (!api) api = new EquipmentService()
28
+ return api
29
+ }
@@ -1,63 +1,63 @@
1
- import ApiService from '../settings/ApiService'
2
- import {
3
- Api_Instrument,
4
- Api_instruments_HistoryResponse,
5
- Api_Warehouse_Create,
6
- Api_Warehouse_Search,
7
- Api_Warehouse_Status_History_Item,
8
- } from '../types/Api_Instruments'
9
- import { ResponseApi } from '@/api/types/Api_Service'
10
-
11
- class InstrumentsService extends ApiService {
12
- public async fetchUserInstrumentsHistory(id: string, page?: number): Promise<Api_instruments_HistoryResponse> {
13
- const params = {
14
- status: 'issued',
15
- page,
16
- desc: 'desc',
17
- column: 'issued_in',
18
- }
19
-
20
- return await this.get(`users/${id}/instruments`, { params })
21
- }
22
-
23
- public async fetchWarehouses(params: any): Promise<ResponseApi<Api_Warehouse_Search[]>> {
24
- return await this.get('search/warehouses', { params })
25
- }
26
-
27
- public async fetchWarehouse(id: string): Promise<Api_Instrument> {
28
- return await this.get(`admin/warehouses/${id}`)
29
- }
30
-
31
- public async fetchStatusHistory(id: string): Promise<Api_Warehouse_Status_History_Item[]> {
32
- return await this.get(`warehouses/${id}/history/status`)
33
- }
34
-
35
- public async createWarehouse(model: Api_Warehouse_Create): Promise<Api_Instrument> {
36
- return await this.post('admin/warehouses', model)
37
- }
38
-
39
- public async editWarehouse({
40
- id,
41
- model,
42
- }: {
43
- id: string
44
- model: Partial<Api_Warehouse_Create>
45
- }): Promise<Api_Instrument> {
46
- return await this.put(`admin/warehouses/${id}`, model)
47
- }
48
-
49
- public deleteWarehouse(id: string): Promise<{ data: boolean; status: number }> {
50
- return this.delete(`admin/warehouses/${id}`)
51
- }
52
-
53
- public async unsetWarehouseRfid(model: { warehouses: string[] }): Promise<Api_Warehouse_Search[]> {
54
- return await this.post('warehouses/unset-rfid', model)
55
- }
56
- }
57
-
58
- let api: InstrumentsService
59
-
60
- export default function useInstrumentsService() {
61
- if (!api) api = new InstrumentsService()
62
- return api
63
- }
1
+ import ApiService from '../settings/ApiService'
2
+ import {
3
+ Api_Instrument,
4
+ Api_instruments_HistoryResponse,
5
+ Api_Warehouse_Create,
6
+ Api_Warehouse_Search,
7
+ Api_Warehouse_Status_History_Item,
8
+ } from '../types/Api_Instruments'
9
+ import { ResponseApi } from '@/api/types/Api_Service'
10
+
11
+ class InstrumentsService extends ApiService {
12
+ public async fetchUserInstrumentsHistory(id: string, page?: number): Promise<Api_instruments_HistoryResponse> {
13
+ const params = {
14
+ status: 'issued',
15
+ page,
16
+ desc: 'desc',
17
+ column: 'issued_in',
18
+ }
19
+
20
+ return await this.get(`users/${id}/instruments`, { params })
21
+ }
22
+
23
+ public async fetchWarehouses(params: any): Promise<ResponseApi<Api_Warehouse_Search[]>> {
24
+ return await this.get('search/warehouses', { params })
25
+ }
26
+
27
+ public async fetchWarehouse(id: string): Promise<Api_Instrument> {
28
+ return await this.get(`admin/warehouses/${id}`)
29
+ }
30
+
31
+ public async fetchStatusHistory(id: string): Promise<Api_Warehouse_Status_History_Item[]> {
32
+ return await this.get(`warehouses/${id}/history/status`)
33
+ }
34
+
35
+ public async createWarehouse(model: Api_Warehouse_Create): Promise<Api_Instrument> {
36
+ return await this.post('admin/warehouses', model)
37
+ }
38
+
39
+ public async editWarehouse({
40
+ id,
41
+ model,
42
+ }: {
43
+ id: string
44
+ model: Partial<Api_Warehouse_Create>
45
+ }): Promise<Api_Instrument> {
46
+ return await this.put(`admin/warehouses/${id}`, model)
47
+ }
48
+
49
+ public deleteWarehouse(id: string): Promise<{ data: boolean; status: number }> {
50
+ return this.delete(`admin/warehouses/${id}`)
51
+ }
52
+
53
+ public async unsetWarehouseRfid(model: { warehouses: string[] }): Promise<Api_Warehouse_Search[]> {
54
+ return await this.post('warehouses/unset-rfid', model)
55
+ }
56
+ }
57
+
58
+ let api: InstrumentsService
59
+
60
+ export default function useInstrumentsService() {
61
+ if (!api) api = new InstrumentsService()
62
+ return api
63
+ }
@@ -1,27 +1,27 @@
1
- import ApiService from '../settings/ApiService'
2
- import { Api_Module, Api_Module_Create } from '../types/Api_Modules'
3
-
4
- class ModulesService extends ApiService {
5
- public async detectModule(id: string): Promise<{ data: string; status: number }> {
6
- return await this.get(`module/${id}/detect`)
7
- }
8
-
9
- public async createModule(model: Api_Module_Create): Promise<Api_Module> {
10
- return await this.post('admin/modules', model)
11
- }
12
-
13
- public async editModule({ id, model }: { id: string; model: Partial<Api_Module_Create> }): Promise<Api_Module> {
14
- return await this.put(`admin/modules/${id}`, model)
15
- }
16
-
17
- public deleteModule(id: string): Promise<{ data: boolean; status: number }> {
18
- return this.delete(`admin/modules/${id}`)
19
- }
20
- }
21
-
22
- let api: ModulesService
23
-
24
- export default function useModulesService() {
25
- if (!api) api = new ModulesService()
26
- return api
27
- }
1
+ import ApiService from '../settings/ApiService'
2
+ import { Api_Module, Api_Module_Create } from '../types/Api_Modules'
3
+
4
+ class ModulesService extends ApiService {
5
+ public async detectModule(id: string): Promise<{ data: string; status: number }> {
6
+ return await this.get(`module/${id}/detect`)
7
+ }
8
+
9
+ public async createModule(model: Api_Module_Create): Promise<Api_Module> {
10
+ return await this.post('admin/modules', model)
11
+ }
12
+
13
+ public async editModule({ id, model }: { id: string; model: Partial<Api_Module_Create> }): Promise<Api_Module> {
14
+ return await this.put(`admin/modules/${id}`, model)
15
+ }
16
+
17
+ public deleteModule(id: string): Promise<{ data: boolean; status: number }> {
18
+ return this.delete(`admin/modules/${id}`)
19
+ }
20
+ }
21
+
22
+ let api: ModulesService
23
+
24
+ export default function useModulesService() {
25
+ if (!api) api = new ModulesService()
26
+ return api
27
+ }