@steedos/service-metadata-objects 3.0.0-beta.7 → 3.0.0-beta.70

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.
@@ -1,304 +1,381 @@
1
1
  import _ = require("lodash");
2
- import { Register } from '@steedos/metadata-registrar';
2
+ import { Register } from "@steedos/metadata-registrar";
3
3
  import { METADATA_TYPE } from ".";
4
- import { getObjectServiceName, getOriginalObject, refreshObject, MONGO_BASE_OBJECT, SQL_BASE_OBJECT } from "./objects";
4
+ import {
5
+ getObjectServiceName,
6
+ getOriginalObject,
7
+ refreshObject,
8
+ MONGO_BASE_OBJECT,
9
+ SQL_BASE_OBJECT,
10
+ } from "./objects";
5
11
  export type SObject = {
6
- name: string,
7
- [x: string]: any
8
- }
12
+ name: string;
13
+ [x: string]: any;
14
+ };
9
15
 
10
16
  export type MetadataObject = {
11
- nodeID: [string],
12
- service: {
13
- name: string,
14
- version: string | undefined,
15
- fullName: string
16
- },
17
- metadata: SObject
18
- }
17
+ nodeID: [string];
18
+ service: {
19
+ name: string;
20
+ version: string | undefined;
21
+ fullName: string;
22
+ };
23
+ metadata: SObject;
24
+ };
19
25
 
20
- function cacherKey(objectApiName: string): string{
21
- return `$steedos.#${METADATA_TYPE}.${objectApiName}`
26
+ function cacherKey(objectApiName: string): string {
27
+ return `$steedos.#${METADATA_TYPE}.${objectApiName}`;
22
28
  }
23
29
 
24
- const DELAY_MESSAGE_OF_OBJECT_CHANGED = 10; // 延迟通知对象事件的时间,单位:毫秒
30
+ const DELAY_MESSAGE_OF_OBJECT_CHANGED = 10; // 延迟通知对象事件的时间,单位:毫秒
25
31
 
26
32
  export class ActionHandlers {
27
- onRegister: any = null;
28
- onDestroy: any = null;
29
- onRegistered: any = null;
30
- registerObjectMemEntry: Map<string, any>;
33
+ onRegister: any = null;
34
+ onDestroy: any = null;
35
+ onRegistered: any = null;
36
+ registerObjectMemEntry: Map<string, any>;
37
+
38
+ constructor(onRegister, onDestroy, onRegistered) {
39
+ this.onRegister = onRegister;
40
+ this.onDestroy = onDestroy;
41
+ this.onRegistered = onRegistered;
42
+ this.registerObjectMemEntry = new Map<string, number>();
43
+ }
31
44
 
32
- constructor(onRegister, onDestroy, onRegistered){
33
- this.onRegister = onRegister;
34
- this.onDestroy = onDestroy;
35
- this.onRegistered = onRegistered;
36
- this.registerObjectMemEntry = new Map<string, number>();
45
+ async registerObject(ctx, objectApiName, data, meta) {
46
+ if (
47
+ objectApiName != MONGO_BASE_OBJECT &&
48
+ objectApiName != SQL_BASE_OBJECT &&
49
+ this.onRegister &&
50
+ _.isFunction(this.onRegister)
51
+ ) {
52
+ await this.onRegister(data);
53
+ }
54
+ // await ctx.broker.call('metadata.add', {key: cacherKey(objectApiName), data: data}, {meta: meta});
55
+ await Register.add(
56
+ ctx.broker,
57
+ { key: cacherKey(objectApiName), data: data },
58
+ meta,
59
+ );
60
+ if (
61
+ objectApiName != MONGO_BASE_OBJECT &&
62
+ objectApiName != SQL_BASE_OBJECT &&
63
+ this.onRegistered &&
64
+ _.isFunction(this.onRegistered)
65
+ ) {
66
+ await this.onRegistered(data);
67
+ }
68
+ // 为每个对象 setTimeout 延时执行
69
+ const registerObjectMemEntry = this.registerObjectMemEntry;
70
+ let timeoutId = registerObjectMemEntry.get(objectApiName);
71
+ if (timeoutId) {
72
+ clearTimeout(timeoutId);
37
73
  }
74
+ timeoutId = setTimeout(function () {
75
+ ctx.broker.emit("metadata.objects.inserted", {
76
+ objectApiName: objectApiName,
77
+ isInsert: true,
78
+ });
79
+ ctx.broker.broadcast(
80
+ `${data.datasource}.@${objectApiName}.metadata.objects.inserted`,
81
+ { objectApiName: objectApiName, isInsert: true, data: data },
82
+ );
83
+ registerObjectMemEntry.delete(objectApiName);
84
+ }, DELAY_MESSAGE_OF_OBJECT_CHANGED);
85
+ registerObjectMemEntry.set(objectApiName, timeoutId);
86
+ return true;
87
+ }
38
88
 
39
- async registerObject(ctx, objectApiName, data, meta) {
40
- if (objectApiName != MONGO_BASE_OBJECT &&
41
- objectApiName != SQL_BASE_OBJECT && this.onRegister && _.isFunction(this.onRegister)) {
42
- await this.onRegister(data)
43
- }
44
- // await ctx.broker.call('metadata.add', {key: cacherKey(objectApiName), data: data}, {meta: meta});
45
- await Register.add(ctx.broker, {key: cacherKey(objectApiName), data: data}, meta)
46
- if (objectApiName != MONGO_BASE_OBJECT &&
47
- objectApiName != SQL_BASE_OBJECT && this.onRegistered && _.isFunction(this.onRegistered)) {
48
- await this.onRegistered(data)
49
- }
50
- // 为每个对象 setTimeout 延时执行
51
- const registerObjectMemEntry = this.registerObjectMemEntry;
52
- let timeoutId = registerObjectMemEntry.get(objectApiName);
53
- if (timeoutId) {
54
- clearTimeout(timeoutId);
55
- }
56
- timeoutId = setTimeout(function(){
57
- ctx.broker.emit("metadata.objects.inserted", {objectApiName: objectApiName, isInsert: true});
58
- ctx.broker.broadcast(`${data.datasource}.@${objectApiName}.metadata.objects.inserted`, { objectApiName: objectApiName, isInsert: true, data: data });
59
- registerObjectMemEntry.delete(objectApiName);
60
- }, DELAY_MESSAGE_OF_OBJECT_CHANGED);
61
- registerObjectMemEntry.set(objectApiName, timeoutId);
62
- return true;
63
- }
89
+ async get(ctx: any): Promise<MetadataObject> {
90
+ return await Register.get(ctx.broker, cacherKey(ctx.params.objectApiName));
91
+ }
64
92
 
65
- async get(ctx: any): Promise<MetadataObject> {
66
- return await Register.get(ctx.broker, cacherKey(ctx.params.objectApiName))
93
+ async getAll(ctx: any): Promise<Array<MetadataObject>> {
94
+ const datasource = ctx.params.datasource;
95
+ // const objects = await ctx.broker.call('metadata.filter', {key: cacherKey("*")}, {meta: ctx.meta});
96
+ const objects = await Register.filter(ctx.broker, cacherKey("*"));
97
+ if (datasource) {
98
+ return _.filter(objects, (object) => {
99
+ return object?.metadata?.datasource == datasource;
100
+ });
67
101
  }
102
+ return objects;
103
+ }
68
104
 
69
- async getAll(ctx: any): Promise<Array<MetadataObject>> {
70
- const datasource = ctx.params.datasource;
71
- // const objects = await ctx.broker.call('metadata.filter', {key: cacherKey("*")}, {meta: ctx.meta});
72
- const objects = await Register.filter(ctx.broker, cacherKey("*"));
73
- if(datasource){
74
- return _.filter(objects, (object)=>{
75
- return object?.metadata?.datasource == datasource;
76
- });
77
- }
78
- return objects
105
+ async add(ctx: any): Promise<boolean> {
106
+ if (true) {
107
+ return true;
79
108
  }
109
+ const objectApiName = ctx.params.data.name;
110
+ const data = ctx.params.data;
111
+ const meta = ctx.meta;
112
+ return await this.registerObject(ctx, objectApiName, data, meta);
113
+ }
80
114
 
81
- async add(ctx: any): Promise<boolean>{
82
- if(true){
83
- return true;
84
- }
85
- const objectApiName = ctx.params.data.name;
86
- const data = ctx.params.data;
87
- const meta = ctx.meta;
88
- return await this.registerObject(ctx, objectApiName, data, meta);
115
+ async addConfig(ctx: any): Promise<boolean> {
116
+ let config = ctx.params.data;
117
+ if (config.extend) {
118
+ config.name = config.extend;
89
119
  }
120
+ const metadataApiName = config.name;
121
+ if (!config.isMain) {
122
+ // const metadataConfig = await ctx.broker.call('metadata.getServiceMetadata', {
123
+ // serviceName: ctx.meta.metadataServiceName,
124
+ // metadataType: METADATA_TYPE,
125
+ // metadataApiName: metadataApiName,
126
+ // }, {meta: ctx.meta});
90
127
 
91
- async addConfig(ctx: any): Promise<boolean>{
92
- let config = ctx.params.data;
93
- if(config.extend){
94
- config.name = config.extend
95
- }
96
- const metadataApiName = config.name;
97
- if(!config.isMain){
98
- // const metadataConfig = await ctx.broker.call('metadata.getServiceMetadata', {
99
- // serviceName: ctx.meta.metadataServiceName,
100
- // metadataType: METADATA_TYPE,
101
- // metadataApiName: metadataApiName,
102
- // }, {meta: ctx.meta});
103
-
104
- const metadataConfig = await Register.getServiceMetadata(ctx.broker, {
105
- serviceName: ctx.meta.metadataServiceName,
106
- metadataType: METADATA_TYPE,
107
- metadataApiName: metadataApiName,
108
- }, ctx.meta)
128
+ const metadataConfig = await Register.getServiceMetadata(
129
+ ctx.broker,
130
+ {
131
+ serviceName: ctx.meta.metadataServiceName,
132
+ metadataType: METADATA_TYPE,
133
+ metadataApiName: metadataApiName,
134
+ },
135
+ ctx.meta,
136
+ );
109
137
 
110
- if (metadataConfig && metadataConfig.metadata) {
111
- config.list_views = _.defaultsDeep(metadataConfig.metadata.list_views || {}, config.list_views || {});
112
- config = _.defaultsDeep(config, metadataConfig.metadata);
113
- }
114
- }
138
+ if (metadataConfig && metadataConfig.metadata) {
139
+ config.list_views = _.defaultsDeep(
140
+ metadataConfig.metadata.list_views || {},
141
+ config.list_views || {},
142
+ );
143
+ config = _.defaultsDeep(config, metadataConfig.metadata);
144
+ }
145
+ }
115
146
 
116
- // await ctx.broker.call('metadata.addServiceMetadata', { key: cacherKey(metadataApiName), data: config }, { meta: Object.assign({}, ctx.meta, { metadataType: METADATA_TYPE, metadataApiName: metadataApiName }) })
147
+ // await ctx.broker.call('metadata.addServiceMetadata', { key: cacherKey(metadataApiName), data: config }, { meta: Object.assign({}, ctx.meta, { metadataType: METADATA_TYPE, metadataApiName: metadataApiName }) })
117
148
 
118
- await Register.addServiceMetadata(ctx.broker, { key: cacherKey(metadataApiName), data: config }, Object.assign({}, ctx.meta, { metadataType: METADATA_TYPE, metadataApiName: metadataApiName }));
149
+ await Register.addServiceMetadata(
150
+ ctx.broker,
151
+ { key: cacherKey(metadataApiName), data: config },
152
+ Object.assign({}, ctx.meta, {
153
+ metadataType: METADATA_TYPE,
154
+ metadataApiName: metadataApiName,
155
+ }),
156
+ );
119
157
 
120
- const objectConfig = await refreshObject(ctx, metadataApiName);
158
+ const objectConfig = await refreshObject(ctx, metadataApiName);
121
159
 
122
- if (!objectConfig) {
123
- return;
124
- }
125
-
126
- const objectServiceName = getObjectServiceName(metadataApiName);
127
-
128
- const result = await this.registerObject(ctx, metadataApiName, objectConfig, {
129
- caller: {
130
- // nodeID: broker.nodeID,
131
- service: {
132
- name: objectServiceName,
133
- // version: broker.service.version, TODO
134
- // fullName: broker.service.fullName, TODO
135
- }
136
- }
137
- });
138
- return result;
160
+ if (!objectConfig) {
161
+ return;
139
162
  }
140
163
 
141
- async addConfigs(ctx: any): Promise<boolean> {
142
- let configs = ctx.params.data;
143
- for (let config of configs) {
144
- if (config.extend) {
145
- config.name = config.extend
146
- }
147
- const metadataApiName = config.name;
148
- if (!config.isMain) {
149
- // const metadataConfig = await ctx.broker.call('metadata.getServiceMetadata', {
150
- // serviceName: ctx.meta.metadataServiceName,
151
- // metadataType: METADATA_TYPE,
152
- // metadataApiName: metadataApiName,
153
- // }, { meta: ctx.meta });
164
+ const objectServiceName = getObjectServiceName(metadataApiName);
154
165
 
155
- const metadataConfig = await Register.getServiceMetadata(ctx.broker, {
156
- serviceName: ctx.meta.metadataServiceName,
157
- metadataType: METADATA_TYPE,
158
- metadataApiName: metadataApiName,
159
- }, ctx.meta);
166
+ const result = await this.registerObject(
167
+ ctx,
168
+ metadataApiName,
169
+ objectConfig,
170
+ {
171
+ caller: {
172
+ // nodeID: broker.nodeID,
173
+ service: {
174
+ name: objectServiceName,
175
+ // version: broker.service.version, TODO
176
+ // fullName: broker.service.fullName, TODO
177
+ },
178
+ },
179
+ },
180
+ );
181
+ return result;
182
+ }
160
183
 
161
- if (metadataConfig && metadataConfig.metadata) {
162
- config.list_views = _.defaultsDeep(metadataConfig.metadata.list_views || {}, config.list_views || {});
163
- config = _.defaultsDeep(config, metadataConfig.metadata);
164
- }
165
- }
166
- // await ctx.broker.call('metadata.addServiceMetadata', { key: cacherKey(metadataApiName), data: config }, { meta: Object.assign({}, ctx.meta, { metadataType: METADATA_TYPE, metadataApiName: metadataApiName }) })
184
+ async addConfigs(ctx: any): Promise<boolean> {
185
+ let configs = ctx.params.data;
186
+ for (let config of configs) {
187
+ if (config.extend) {
188
+ config.name = config.extend;
189
+ }
190
+ const metadataApiName = config.name;
191
+ if (!config.isMain) {
192
+ // const metadataConfig = await ctx.broker.call('metadata.getServiceMetadata', {
193
+ // serviceName: ctx.meta.metadataServiceName,
194
+ // metadataType: METADATA_TYPE,
195
+ // metadataApiName: metadataApiName,
196
+ // }, { meta: ctx.meta });
167
197
 
168
- await Register.addServiceMetadata(ctx.broker, {
169
- key: cacherKey(metadataApiName),
170
- data: config
171
- }, Object.assign({}, ctx.meta, { metadataType: METADATA_TYPE, metadataApiName: metadataApiName }));
198
+ const metadataConfig = await Register.getServiceMetadata(
199
+ ctx.broker,
200
+ {
201
+ serviceName: ctx.meta.metadataServiceName,
202
+ metadataType: METADATA_TYPE,
203
+ metadataApiName: metadataApiName,
204
+ },
205
+ ctx.meta,
206
+ );
172
207
 
173
- const objectConfig = await refreshObject(ctx, metadataApiName);
174
- if (!objectConfig) {
175
- ctx.broker.logger.error(`not find extend object ${metadataApiName}, Please check 「${ctx.meta.metadataServiceName}」 package.service.js for dependencies`);
176
- break;
177
- }
178
- const objectServiceName = getObjectServiceName(metadataApiName);
179
- await this.registerObject(ctx, metadataApiName, objectConfig, {
180
- caller: {
181
- // nodeID: broker.nodeID,
182
- service: {
183
- name: objectServiceName,
184
- // version: broker.service.version, TODO
185
- // fullName: broker.service.fullName, TODO
186
- }
187
- }
188
- });
208
+ if (metadataConfig && metadataConfig.metadata) {
209
+ config.list_views = _.defaultsDeep(
210
+ metadataConfig.metadata.list_views || {},
211
+ config.list_views || {},
212
+ );
213
+ config = _.defaultsDeep(config, metadataConfig.metadata);
189
214
  }
190
- return true;
191
- }
215
+ }
216
+ // await ctx.broker.call('metadata.addServiceMetadata', { key: cacherKey(metadataApiName), data: config }, { meta: Object.assign({}, ctx.meta, { metadataType: METADATA_TYPE, metadataApiName: metadataApiName }) })
192
217
 
193
- async change(ctx: any): Promise<boolean> {
194
- const {data, oldData} = ctx.params;
195
- if(oldData.name != data.name){
196
- // console.log(`change==================`, oldData.name, data.name);
197
- await this.deleteObject(ctx, oldData.name)
198
- }
199
- // await ctx.broker.call('metadata.add', {key: cacherKey(data.name), data: data}, {meta: ctx.meta})
200
- await Register.add(ctx.broker, {key: cacherKey(data.name), data: data}, ctx.meta);
201
- ctx.broker.emit("metadata.objects.updated", {objectApiName: data.name, oldObjectApiName: oldData.name, isUpdate: true});
202
- return true;
218
+ await Register.addServiceMetadata(
219
+ ctx.broker,
220
+ {
221
+ key: cacherKey(metadataApiName),
222
+ data: config,
223
+ },
224
+ Object.assign({}, ctx.meta, {
225
+ metadataType: METADATA_TYPE,
226
+ metadataApiName: metadataApiName,
227
+ }),
228
+ );
229
+
230
+ const objectConfig = await refreshObject(ctx, metadataApiName);
231
+ if (!objectConfig) {
232
+ ctx.broker.logger.error(
233
+ `not find extend object ${metadataApiName}, Please check 「${ctx.meta.metadataServiceName}」 package.service.js for dependencies`,
234
+ );
235
+ break;
236
+ }
237
+ const objectServiceName = getObjectServiceName(metadataApiName);
238
+ await this.registerObject(ctx, metadataApiName, objectConfig, {
239
+ caller: {
240
+ // nodeID: broker.nodeID,
241
+ service: {
242
+ name: objectServiceName,
243
+ // version: broker.service.version, TODO
244
+ // fullName: broker.service.fullName, TODO
245
+ },
246
+ },
247
+ });
203
248
  }
249
+ return true;
250
+ }
204
251
 
205
- async removeConfig(ctx: any): Promise<boolean>{
206
- const { serviceName = '~database-objects', objectName } = ctx.params;
207
- await Register.deleteServiceMetadata(ctx.broker, {
208
- nodeID: ctx.broker.nodeID,
209
- serviceName: serviceName,
210
- metadataType: METADATA_TYPE,
211
- metadataApiName: objectName
212
- });
213
- const objectConfig = await refreshObject(ctx, objectName);
252
+ async change(ctx: any): Promise<boolean> {
253
+ const { data, oldData } = ctx.params;
254
+ if (oldData.name != data.name) {
255
+ // console.log(`change==================`, oldData.name, data.name);
256
+ await this.deleteObject(ctx, oldData.name);
257
+ }
258
+ // await ctx.broker.call('metadata.add', {key: cacherKey(data.name), data: data}, {meta: ctx.meta})
259
+ await Register.add(
260
+ ctx.broker,
261
+ { key: cacherKey(data.name), data: data },
262
+ ctx.meta,
263
+ );
264
+ ctx.broker.emit("metadata.objects.updated", {
265
+ objectApiName: data.name,
266
+ oldObjectApiName: oldData.name,
267
+ isUpdate: true,
268
+ });
269
+ return true;
270
+ }
214
271
 
215
- if (!objectConfig) {
216
- return;
217
- }
218
- const objectServiceName = getObjectServiceName(objectName);
219
- await this.registerObject(ctx, objectName, objectConfig, {
220
- caller: {
221
- // nodeID: broker.nodeID,
222
- service: {
223
- name: objectServiceName,
224
- }
225
- }
226
- });
227
- return true;
228
- }
272
+ async removeConfig(ctx: any): Promise<boolean> {
273
+ const { serviceName = "~database-objects", objectName } = ctx.params;
274
+ await Register.deleteServiceMetadata(ctx.broker, {
275
+ nodeID: ctx.broker.nodeID,
276
+ serviceName: serviceName,
277
+ metadataType: METADATA_TYPE,
278
+ metadataApiName: objectName,
279
+ });
280
+ const objectConfig = await refreshObject(ctx, objectName);
229
281
 
230
- async delete(ctx: any): Promise<boolean>{
231
- // console.log(`delete==================`, ctx.params.objectApiName);
232
- return await this.deleteObject(ctx, ctx.params.objectApiName)
282
+ if (!objectConfig) {
283
+ await this.deleteObject(ctx, objectName);
284
+ return;
233
285
  }
286
+ const objectServiceName = getObjectServiceName(objectName);
287
+ await this.registerObject(ctx, objectName, objectConfig, {
288
+ caller: {
289
+ // nodeID: broker.nodeID,
290
+ service: {
291
+ name: objectServiceName,
292
+ },
293
+ },
294
+ });
295
+ return true;
296
+ }
234
297
 
235
- async verify(ctx: any): Promise<boolean>{
236
- console.log("verify");
237
- return true;
238
- }
298
+ async delete(ctx: any): Promise<boolean> {
299
+ // console.log(`delete==================`, ctx.params.objectApiName);
300
+ return await this.deleteObject(ctx, ctx.params.objectApiName);
301
+ }
239
302
 
240
- async getOriginalObject(ctx: any): Promise<boolean>{
241
- return await getOriginalObject(ctx, ctx.params.objectApiName);
242
- }
303
+ async verify(ctx: any): Promise<boolean> {
304
+ console.log("verify");
305
+ return true;
306
+ }
243
307
 
244
- async refresh(ctx){
245
- const { isClear, metadataApiNames } = ctx.params
246
- if(isClear){
247
- for await (const metadataApiName of metadataApiNames) {
248
- const objectConfig = await refreshObject(ctx, metadataApiName);
249
- if(!objectConfig){
250
- // console.log(`refresh deleteObject==================`, metadataApiName);
251
- await this.deleteObject(ctx, metadataApiName)
252
- }else{
253
- const objectServiceName = getObjectServiceName(metadataApiName);
254
- await this.registerObject(ctx, metadataApiName, objectConfig, {
255
- caller: {
256
- // nodeID: broker.nodeID,
257
- service: {
258
- name: objectServiceName,
259
- // version: broker.service.version, TODO
260
- // fullName: broker.service.fullName, TODO
261
- }
262
- }
263
- });
264
- }
265
- }
308
+ async getOriginalObject(ctx: any): Promise<boolean> {
309
+ return await getOriginalObject(ctx, ctx.params.objectApiName);
310
+ }
311
+
312
+ async refresh(ctx) {
313
+ const { isClear, metadataApiNames } = ctx.params;
314
+ if (isClear) {
315
+ for await (const metadataApiName of metadataApiNames) {
316
+ const objectConfig = await refreshObject(ctx, metadataApiName);
317
+ if (!objectConfig) {
318
+ // console.log(`refresh deleteObject==================`, metadataApiName);
319
+ await this.deleteObject(ctx, metadataApiName);
320
+ } else {
321
+ const objectServiceName = getObjectServiceName(metadataApiName);
322
+ await this.registerObject(ctx, metadataApiName, objectConfig, {
323
+ caller: {
324
+ // nodeID: broker.nodeID,
325
+ service: {
326
+ name: objectServiceName,
327
+ // version: broker.service.version, TODO
328
+ // fullName: broker.service.fullName, TODO
329
+ },
330
+ },
331
+ });
266
332
  }
333
+ }
267
334
  }
268
- async deleteObject(ctx, objectApiName): Promise<boolean>{
269
- await ctx.broker.broadcast(`delete.metadata.${METADATA_TYPE}`, {objectApiName: objectApiName});
270
- return true;
271
- }
272
- async handleDeleteObject(ctx, objectApiName): Promise<boolean>{
273
- // const { metadata } = (await ctx.broker.call("metadata.get", { key: cacherKey(objectApiName) }, { meta: ctx.meta })) || {};
274
- const { metadata } = (await Register.get(ctx.broker, cacherKey(objectApiName))) || {};
275
- // await ctx.broker.call('metadata.delete', {key: cacherKey(objectApiName)}, {meta: ctx.meta})
276
- await Register.delete(ctx.broker, cacherKey(objectApiName));
277
- try {
278
- // await ctx.broker.call('metadata.deleteServiceMetadata', {
279
- // nodeID: ctx.broker.nodeID,
280
- // serviceName: '~database-objects',
281
- // metadataType: METADATA_TYPE,
282
- // metadataApiName: objectApiName
283
- // }, {meta: ctx.meta})
335
+ }
336
+ async deleteObject(ctx, objectApiName): Promise<boolean> {
337
+ await ctx.broker.broadcast(`delete.metadata.${METADATA_TYPE}`, {
338
+ objectApiName: objectApiName,
339
+ });
340
+ return true;
341
+ }
342
+ async handleDeleteObject(ctx, objectApiName): Promise<boolean> {
343
+ // const { metadata } = (await ctx.broker.call("metadata.get", { key: cacherKey(objectApiName) }, { meta: ctx.meta })) || {};
344
+ const { metadata } =
345
+ (await Register.get(ctx.broker, cacherKey(objectApiName))) || {};
346
+ // await ctx.broker.call('metadata.delete', {key: cacherKey(objectApiName)}, {meta: ctx.meta})
347
+ await Register.delete(ctx.broker, cacherKey(objectApiName));
348
+ try {
349
+ // await ctx.broker.call('metadata.deleteServiceMetadata', {
350
+ // nodeID: ctx.broker.nodeID,
351
+ // serviceName: '~database-objects',
352
+ // metadataType: METADATA_TYPE,
353
+ // metadataApiName: objectApiName
354
+ // }, {meta: ctx.meta})
284
355
 
285
- await Register.deleteServiceMetadata(ctx.broker, {
286
- nodeID: ctx.broker.nodeID,
287
- serviceName: '~database-objects',
288
- metadataType: METADATA_TYPE,
289
- metadataApiName: objectApiName
290
- });
291
-
292
- } catch (error) {
293
- console.log(error)
294
- }
295
- if(this.onDestroy && _.isFunction(this.onDestroy)){
296
- await this.onDestroy(metadata)
297
- }
298
- await ctx.broker.broadcast("metadata.objects.deleted", {objectApiName: objectApiName, isDelete: true, objectConfig: metadata});
299
- if(metadata){
300
- await ctx.broker.broadcast(`${metadata.datasource}.@${objectApiName}.metadata.objects.deleted`, { objectApiName: objectApiName, data: metadata });
301
- }
302
- return true;
356
+ await Register.deleteServiceMetadata(ctx.broker, {
357
+ nodeID: ctx.broker.nodeID,
358
+ serviceName: "~database-objects",
359
+ metadataType: METADATA_TYPE,
360
+ metadataApiName: objectApiName,
361
+ });
362
+ } catch (error) {
363
+ console.log(error);
364
+ }
365
+ if (this.onDestroy && _.isFunction(this.onDestroy)) {
366
+ await this.onDestroy(metadata);
367
+ }
368
+ await ctx.broker.broadcast("metadata.objects.deleted", {
369
+ objectApiName: objectApiName,
370
+ isDelete: true,
371
+ objectConfig: metadata,
372
+ });
373
+ if (metadata) {
374
+ await ctx.broker.broadcast(
375
+ `${metadata.datasource}.@${objectApiName}.metadata.objects.deleted`,
376
+ { objectApiName: objectApiName, data: metadata },
377
+ );
303
378
  }
379
+ return true;
380
+ }
304
381
  }