@simitgroup/simpleapp-generator 1.6.7-g-alpha → 1.6.7-i-alpha

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 (73) hide show
  1. package/ReleaseNote.md +12 -1
  2. package/dist/generate.js +2 -0
  3. package/dist/generate.js.map +1 -1
  4. package/package.json +1 -1
  5. package/src/generate.ts +2 -0
  6. package/templates/basic/miniApi/resource.controller.ts.eta +10 -3
  7. package/templates/basic/miniApi/resource.service.ts.eta +9 -2
  8. package/templates/basic/nest/apischema.ts.eta +21 -6
  9. package/templates/basic/nest/controller.ts.eta +37 -16
  10. package/templates/basic/nuxt/resource-bridge.service.ts.eta +3 -2
  11. package/templates/miniApi/src/constants/api-scopes.ts.eta +1 -1
  12. package/templates/nest/src/simpleapp/generate/commons/middlewares/tenant.middleware.ts.eta +34 -14
  13. package/templates/nest/src/simpleapp/generate/commons/robotuser.service.ts.eta +4 -8
  14. package/templates/nest/src/simpleapp/generate/commons/user.context.ts.eta +154 -17
  15. package/templates/nuxt/composables/getUserStore.generate.ts.eta +62 -66
  16. package/templates/nuxt/composables/goTo.generate.ts.eta +1 -3
  17. package/templates/nuxt/plugins/19.simpleapp-mini-app-store.ts.eta +240 -203
  18. package/templates/nuxt/plugins/20.simpleapp-userstore.ts.eta +1 -1
  19. package/templates/nuxt/simpleapp/generate/features/miniApp/app/components/MiniAppFeatureCustomField.vue.eta +34 -0
  20. package/templates/nuxt/simpleapp/generate/features/miniApp/app/components/MiniAppFeatureCustomPage.vue.eta +68 -0
  21. package/templates/nuxt/simpleapp/generate/features/miniApp/app/components/MiniAppFeatureScope.vue.eta +53 -0
  22. package/templates/nuxt/simpleapp/generate/features/miniApp/app/components/MiniAppIcon.vue.eta +49 -0
  23. package/templates/nuxt/simpleapp/generate/features/miniApp/app/components/MiniAppMenuButton.vue.eta +6 -4
  24. package/templates/nuxt/simpleapp/generate/features/miniApp/app/components/MiniAppPageIframe.vue.eta +9 -3
  25. package/templates/nuxt/simpleapp/generate/features/miniApp/app/components/MiniAppPermissionWrapper.vue.eta +4 -4
  26. package/templates/nuxt/simpleapp/generate/features/miniApp/app/components/MiniAppRestrictedWarning.vue.eta +3 -3
  27. package/templates/nuxt/simpleapp/generate/features/miniApp/app/components/MiniAppSettingLayout.vue.eta +3 -3
  28. package/templates/nuxt/simpleapp/generate/features/miniApp/app/components/MiniAppSettingPage.vue.eta +2 -2
  29. package/templates/nuxt/simpleapp/generate/features/miniApp/app/components/MiniAppWrapper.vue.eta +2 -32
  30. package/templates/nuxt/simpleapp/generate/features/miniApp/app/components/integration/MiniAppIntegrationItem.vue.eta +6 -5
  31. package/templates/nuxt/simpleapp/generate/features/miniApp/app/components/integration/MiniAppIntegrationItemBadge.vue.eta +15 -9
  32. package/templates/nuxt/simpleapp/generate/features/miniApp/app/components/integration/MiniAppIntegrationItemGroup.vue.eta +4 -4
  33. package/templates/nuxt/simpleapp/generate/features/miniApp/app/components/integration/MiniAppIntegrationPage.vue.eta +135 -22
  34. package/templates/nuxt/simpleapp/generate/features/miniApp/app/types/miniApp.ts.eta +7 -7
  35. package/templates/nuxt/simpleapp/generate/features/miniApp/bridge/services/bridge-resource-accessor.service.ts.eta +3 -1
  36. package/templates/nuxt/simpleapp/generate/features/miniApp/bridge/services/bridge.service.ts.eta +3 -0
  37. package/templates/nuxt/types/others.ts.eta +5 -0
  38. package/dist/buildinschemas/message.d.ts +0 -3
  39. package/dist/buildinschemas/message.d.ts.map +0 -1
  40. package/dist/buildinschemas/message.js +0 -34
  41. package/dist/buildinschemas/message.js.map +0 -1
  42. package/dist/buildinschemas/webhookhistory.d.ts +0 -3
  43. package/dist/buildinschemas/webhookhistory.d.ts.map +0 -1
  44. package/dist/buildinschemas/webhookhistory.js +0 -44
  45. package/dist/buildinschemas/webhookhistory.js.map +0 -1
  46. package/dist/createproject.js +0 -138
  47. package/dist/createproject.js.map +0 -1
  48. package/dist/generate-allow-changebackend.js +0 -305
  49. package/dist/generate-allow-changebackend.js.map +0 -1
  50. package/dist/index2.js +0 -118
  51. package/dist/index2.js.map +0 -1
  52. package/dist/installdependency.js +0 -20
  53. package/dist/installdependency.js.map +0 -1
  54. package/dist/installnest.js +0 -2
  55. package/dist/installnest.js.map +0 -1
  56. package/dist/installnuxt.js +0 -2
  57. package/dist/installnuxt.js.map +0 -1
  58. package/dist/processors/groupsbuilder.js +0 -2
  59. package/dist/processors/groupsbuilder.js.map +0 -1
  60. package/dist/schematype/baseschema.js +0 -25
  61. package/dist/schematype/baseschema.js.map +0 -1
  62. package/dist/schematype/default.js +0 -2
  63. package/dist/schematype/default.js.map +0 -1
  64. package/dist/schematype/index.js +0 -12
  65. package/dist/schematype/index.js.map +0 -1
  66. package/dist/schematype/primarymasterdata.js +0 -38
  67. package/dist/schematype/primarymasterdata.js.map +0 -1
  68. package/dist/schematype/simple.js +0 -24
  69. package/dist/schematype/simple.js.map +0 -1
  70. package/dist/schematype/simplemasterdata.js +0 -31
  71. package/dist/schematype/simplemasterdata.js.map +0 -1
  72. package/dist/schematype/transaction.js +0 -74
  73. package/dist/schematype/transaction.js.map +0 -1
package/ReleaseNote.md CHANGED
@@ -1,6 +1,17 @@
1
+ [1.6.7h-alpha]
2
+
3
+ 1. Restructure Mini App
4
+ 2. Support Mini Api Access
5
+ 3. Validate Mini App Scope
6
+
7
+ [1.6.7h-alpha]
8
+
9
+ 1. Remove Navigate To Mobile Url
10
+ 2. Add Label Value Type
11
+
1
12
  [1.6.7g-alpha]
2
- 1. fix some api schema cause cannot run backend
3
13
 
14
+ 1. fix some api schema cause cannot run backend
4
15
 
5
16
  [1.6.7f-alpha]
6
17
 
package/dist/generate.js CHANGED
@@ -686,5 +686,7 @@ const getCodeGenHelper = () => 'const capitalizeFirstLetter = (str) => !str ? `O
686
686
  "const camelCaseToWords = (s) => {const result = s.replace(/([A-Z])/g, ' $1');return result.charAt(0).toUpperCase() + result.slice(1);};" +
687
687
  'const upperFirstCase = (value) => { return value.charAt(0).toUpperCase() + value.slice(1); };' +
688
688
  'const camelToKebab = (value) => { return value.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase(); };' +
689
+ 'const removeSuffix = (input, suffix) => { return input.endsWith(suffix) ? input.slice(0, -suffix.length) : input };' +
690
+ 'const isWhitelistedMiniApp = (actionName, it) => { return it.miniApp.whitelistApis?.[actionName] === true };' +
689
691
  'const titleCase = (value) => { return value.replace(/([a-z])([A-Z])/g, "$1 $2"); }; ';
690
692
  //# sourceMappingURL=generate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simitgroup/simpleapp-generator",
3
- "version": "1.6.7g-alpha",
3
+ "version": "1.6.7i-alpha",
4
4
  "description": "frontend nuxtjs and backend nests code generator using jsonschema",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
package/src/generate.ts CHANGED
@@ -798,4 +798,6 @@ const getCodeGenHelper = () =>
798
798
  "const camelCaseToWords = (s) => {const result = s.replace(/([A-Z])/g, ' $1');return result.charAt(0).toUpperCase() + result.slice(1);};" +
799
799
  'const upperFirstCase = (value) => { return value.charAt(0).toUpperCase() + value.slice(1); };' +
800
800
  'const camelToKebab = (value) => { return value.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase(); };' +
801
+ 'const removeSuffix = (input, suffix) => { return input.endsWith(suffix) ? input.slice(0, -suffix.length) : input };' +
802
+ 'const isWhitelistedMiniApp = (actionName, it) => { return it.miniApp.whitelistApis?.[actionName] === true };' +
801
803
  'const titleCase = (value) => { return value.replace(/([a-z])([A-Z])/g, "$1 $2"); }; ';
@@ -3,6 +3,7 @@
3
3
  const kebabName = camelToKebab(it.resourceName);
4
4
  const apiName = it.typename.toUpperCase() + 'Api';
5
5
  const titleName = titleCase(pascalName);
6
+ const uglyName = upperFirstCase(it.name ?? '');
6
7
 
7
8
  const serviceVariable = it.resourceName + 'Service';
8
9
  %>
@@ -22,6 +23,8 @@ import {
22
23
  import { ApiTags, ApiBody, ApiResponse, ApiOperation, ApiQuery } from '@nestjs/swagger';
23
24
  import { ApiHeader } from 'src/types/api';
24
25
  import { <%= pascalName %>Service } from './<%= kebabName %>.service';
26
+ import { ResourceApiListDto } from '../../dto/resource-api.schema';
27
+ import { <%= uglyName %> } from 'src/openapi/backend-api';
25
28
 
26
29
  @ApiTags('<%= titleName %>')
27
30
  @Controller('resources/<%= kebabName %>')
@@ -32,9 +35,13 @@ export class <%= pascalName %>Controller {
32
35
  <% if (value !== true && typeof value !== 'object') { return; } %>
33
36
 
34
37
  <% if(action === 'list') { %>
35
- @Get()
36
- findAll(@Headers() headers:ApiHeader) {
37
- return this.<%= serviceVariable %>.findAll(headers);
38
+ @Post('list')
39
+ @ApiBody({
40
+ type: ResourceApiListDto<<%= uglyName %>>,
41
+ required: false,
42
+ })
43
+ findAll(@Headers() headers:ApiHeader, @Body() dto?: ResourceApiListDto<<%= uglyName %>>) {
44
+ return this.<%= serviceVariable %>.findAll(headers, dto);
38
45
  }
39
46
  <% } else if(action === 'detail') { %>
40
47
  @Get(':id')
@@ -1,6 +1,7 @@
1
1
  <%
2
2
  const pascalName = upperFirstCase(it.resourceName);
3
3
  const apiName = it.typename.toUpperCase() + 'Api';
4
+ const uglyName = upperFirstCase(it.name ?? '');
4
5
  %>
5
6
 
6
7
  import { BadRequestException, Injectable } from '@nestjs/common';
@@ -8,6 +9,8 @@ import _ from 'lodash';
8
9
  import { <%= apiName %> } from 'src/openapi/backend-api';
9
10
  import { ApiHeader } from 'src/types/api';
10
11
  import { getOpenApiConfig } from 'src/utils/api';
12
+ import { ResourceApiListDto } from '../../dto/resource-api.schema';
13
+ import { <%= uglyName %> } from 'src/openapi/backend-api';
11
14
 
12
15
  @Injectable()
13
16
  export class <%= pascalName %>Service {
@@ -27,9 +30,13 @@ export class <%= pascalName %>Service {
27
30
  <% if (value !== true && typeof value !== 'object') { return; } %>
28
31
 
29
32
  <% if(action === 'list') { %>
30
- async findAll(headers: ApiHeader) {
33
+ async findAll(headers: ApiHeader, dto?: ResourceApiListDto<<%= uglyName %>>) {
31
34
  const api = this.getApi(headers);
32
- const resp = await api.runSearch({});
35
+ const resp = await api.runSearch({
36
+ fields: dto?.fields,
37
+ filter: dto?.filters,
38
+ sorts: dto?.sorts as string[][] | undefined,
39
+ });
33
40
  return resp.data;
34
41
  }
35
42
  <% } else if(action === 'detail') { %>
@@ -8,7 +8,7 @@ import { ApiProperty } from '@nestjs/swagger';
8
8
  import { Field, ObjectType,ID } from '@nestjs/graphql';
9
9
  import GraphQLJSON, { GraphQLJSONObject } from 'graphql-type-json';
10
10
 
11
- <% const draw = (it, obj, key) => { %>
11
+ <% const draw = (it, obj, key, currentModelName) => { %>
12
12
  <% if(typeof obj == 'string') {%>
13
13
  <% // This Is Dynamic Object %>
14
14
  <% if(it.models?.[obj] && it.models[obj]?.model && Object.keys(it.models[obj]?.model).length === 0) { %>
@@ -16,8 +16,15 @@ import GraphQLJSON, { GraphQLJSONObject } from 'graphql-type-json';
16
16
  @ApiProperty({ type:()=>Object,required: false, default: {} })
17
17
  <%= key %>: Object;
18
18
  <% } else { %>
19
+ <%
20
+ let required = false;
21
+ const currentModel = it.models?.[currentModelName];
22
+ if (currentModel && (currentModel.required ?? []).includes(key)) {
23
+ required = true;
24
+ }
25
+ %>
19
26
  @Field()
20
- @ApiProperty({type: ()=><%=obj%>})
27
+ @ApiProperty({type: ()=><%=obj%>, required: <%= required %>})
21
28
  <%= key %>: <%= obj %>;
22
29
  <% } %>
23
30
  <%} else if(typeof obj.default !='undefined' && JSON.stringify(obj.default)=='{}'){%>
@@ -25,8 +32,15 @@ import GraphQLJSON, { GraphQLJSONObject } from 'graphql-type-json';
25
32
  @ApiProperty({ type:()=>Object,required: false, default: {} })
26
33
  <%= key %>: Object;
27
34
  <% } else if( Array.isArray( obj)){%>
35
+ <%
36
+ let required = false;
37
+ const currentModel = it.models?.[currentModelName];
38
+ if (currentModel && (currentModel.required ?? []).includes(key)) {
39
+ required = true;
40
+ }
41
+ %>
28
42
  @Field(type=>[<%=initType(obj[0]) %>])
29
- @ApiProperty({type: ()=>[<%=initType(obj[0]) %>] })
43
+ @ApiProperty({type: ()=>[<%=initType(obj[0]) %>], required: <%= required %> })
30
44
  <%= key %>: <%= obj[0] %>[];
31
45
 
32
46
  <% }else{%>
@@ -47,14 +61,15 @@ import GraphQLJSON, { GraphQLJSONObject } from 'graphql-type-json';
47
61
 
48
62
  <% Object.keys(schema).forEach(function(key) { %>
49
63
  <% let obj = schema[key] %>
50
- <% draw(it, obj, key) %>
64
+ <% draw(it, obj, key, name) %>
51
65
  <% }) %>
52
66
  }
53
67
  <%}) %>
54
68
 
55
69
  /***************************************** Start Auto Complete *****************************************/
70
+ <% const autoCompleteModelName = it.apiSchemaName + 'AutoComplete'; %>
56
71
  @ObjectType()
57
- export class <%= it.apiSchemaName %>AutoComplete {
72
+ export class <%=autoCompleteModelName %> {
58
73
  @Field()
59
74
  @ApiProperty({ type: 'string', required: true, default: '' })
60
75
  _id: string;
@@ -69,7 +84,7 @@ export class <%= it.apiSchemaName %>AutoComplete {
69
84
 
70
85
  <% if(it.moreAutoComplete && Array.isArray(it.moreAutoComplete)) { %>
71
86
  <% it.moreAutoComplete.forEach(function(field){ %>
72
- <% draw(it, it.models[it.apiSchemaName].model[field], field) %>
87
+ <% draw(it, it.models[it.apiSchemaName].model[field], field, autoCompleteModelName) %>
73
88
 
74
89
  <% }) %>
75
90
  <% } %>
@@ -34,28 +34,41 @@ import {Role} from '../commons/roles/roles.enum'
34
34
  import { Response } from 'express';
35
35
  import {AppUser} from '../commons/decorators/appuser.decorator'
36
36
  import {UserContext} from '../commons/user.context'
37
+ import { MiniAppScope } from 'src/modules/mini-app/mini-app-scope/mini-app-scope.decorator';
37
38
 
39
+ <%
40
+ const drawMiniAppScope = (actionName) => {
41
+ if(isWhitelistedMiniApp(actionName, it)){
42
+ return `@MiniAppScope('${it.resourceName}.${actionName}')`;
43
+ }
38
44
 
39
- <% const getFieldType =(proptype, typename,actionname)=>{
40
- const systemtypes = ['Boolean','boolean','string','String','number','Number','object','Object','integer','Integer']
41
- if(!typename) throw actionname +" undefine schema";
42
- let tmptypename = typename.replace('[','').replace(']','')
43
-
44
- if(systemtypes.includes(tmptypename)){
45
- if(proptype=='type' ) tmptypename =tmptypename.toLowerCase();
46
- }else if(proptype=='schema'){
47
- tmptypename= 'schemas.'+tmptypename
48
- }else{ //type
49
- tmptypename= 'types.'+tmptypename
45
+ return '';
50
46
  }
47
+ %>
51
48
 
52
- if(typename.includes('[')){
53
- return proptype=='schema' ? `[${tmptypename}]` : `${tmptypename}[]`
54
- }else{
55
- return tmptypename
49
+
50
+ <%
51
+ const getFieldType =(proptype, typename,actionname)=>{
52
+ const systemtypes = ['Boolean','boolean','string','String','number','Number','object','Object','integer','Integer']
53
+ if(!typename) throw actionname +" undefine schema";
54
+ let tmptypename = typename.replace('[','').replace(']','')
55
+
56
+ if(systemtypes.includes(tmptypename)){
57
+ if(proptype=='type' ) tmptypename =tmptypename.toLowerCase();
58
+ }else if(proptype=='schema'){
59
+ tmptypename= 'schemas.'+tmptypename
60
+ }else{ //type
61
+ tmptypename= 'types.'+tmptypename
62
+ }
63
+
64
+ if(typename.includes('[')){
65
+ return proptype=='schema' ? `[${tmptypename}]` : `${tmptypename}[]`
66
+ }else{
67
+ return tmptypename
68
+ }
56
69
  }
57
- }
58
70
  %>
71
+
59
72
  <% let superadmindoctype = ['tenant','globaluser'] %>
60
73
  const apiname = '<%= it.typename %>'.toUpperCase();
61
74
  @ApiTags(apiname)
@@ -103,6 +116,7 @@ export class <%= it.typename %>Controller extends SimpleAppAbstractController<
103
116
  @ApiQuery({ name: 'keyword', type:String})
104
117
  @ApiBody({ description: 'Data', type: ()=>Object})
105
118
  @ApiOperation({ operationId: 'autoComplete',description:"retrieve array of {_id, code, name}" })
119
+ <%~ drawMiniAppScope('autoComplete') %>
106
120
  async autoComplete(@AppUser() appuser: UserContext,
107
121
  @Query('keyword') keyword:string,
108
122
  @Body() data: types.<%=it.typename%>,
@@ -127,6 +141,7 @@ export class <%= it.typename %>Controller extends SimpleAppAbstractController<
127
141
  @ApiResponse({ status: 500, description: 'internal error' })
128
142
  @ApiBody({ description: 'Data',type:schemas.<%= it.typename%> })
129
143
  @ApiOperation({ operationId: 'runCreate' })
144
+ <%~ drawMiniAppScope('create') %>
130
145
  async create(@AppUser() appuser: UserContext,@Body() data: schemas.<%= it.typename%>) {
131
146
  return await this._create(appuser,data)
132
147
  }
@@ -147,6 +162,7 @@ export class <%= it.typename %>Controller extends SimpleAppAbstractController<
147
162
  @ApiResponse({ status: 500, description: 'internal error' })
148
163
  @ApiBody({ description: 'Data', type: schemas.ApiSearchBody })
149
164
  @ApiOperation({ operationId: 'runSearch' })
165
+ <%~ drawMiniAppScope('list') %>
150
166
  async search(@AppUser() appuser: UserContext,@Body() data: types.SearchBody) {
151
167
  return await this._search(appuser,data)
152
168
  }
@@ -207,6 +223,7 @@ export class <%= it.typename %>Controller extends SimpleAppAbstractController<
207
223
  @ApiQuery({name: "<%=api['queryPara'][q]%>",required: false,type: String})
208
224
  <%}%>
209
225
  <%}%>
226
+ <%~ drawMiniAppScope(api.action) %>
210
227
  async <%=capitalizeFirstLetter(api.action) %>(
211
228
  @AppUser() appuser: UserContext,
212
229
  <%if(['post','put','patch'].includes(api.method.toLowerCase())){%>
@@ -284,6 +301,7 @@ export class <%= it.typename %>Controller extends SimpleAppAbstractController<
284
301
  @ApiResponse({ status: 404, description: 'Document not found' })
285
302
  @ApiResponse({ status: 500, description: 'Internal error' })
286
303
  @ApiOperation({ operationId: 'runFindOne' })
304
+ <%~ drawMiniAppScope('detail') %>
287
305
  async findOne(@AppUser() appuser: UserContext,@Param('id') id: string) {
288
306
  const data = await this._findOne(appuser, id);
289
307
  if(!data ){
@@ -308,6 +326,7 @@ export class <%= it.typename %>Controller extends SimpleAppAbstractController<
308
326
  @ApiResponse({ status: 500, description: 'Internal error' })
309
327
  @ApiBody({ description: 'Data',type: schemas.<%= it.typename%> })
310
328
  @ApiOperation({ operationId: 'runUpdate' })
329
+ <%~ drawMiniAppScope('update') %>
311
330
  async update(@AppUser() appuser: UserContext,@Param('id') id: string, @Body() data: schemas.<%= it.typename%>) {
312
331
  return await this._update(appuser,id, data) ;
313
332
  }
@@ -325,6 +344,7 @@ export class <%= it.typename %>Controller extends SimpleAppAbstractController<
325
344
  @ApiResponse({ status: 500, description: 'Internal error' })
326
345
  @ApiBody({ description: 'Data',type: schemas.<%= it.typename%> })
327
346
  @ApiOperation({ operationId: 'runPatch' })
347
+ <%~ drawMiniAppScope('patch') %>
328
348
  async patch(@AppUser() appuser: UserContext,@Param('id') id: string, @Body() data: schemas.<%= it.typename%>) {
329
349
  return await this._patch(appuser,id, data) ;
330
350
  }
@@ -343,6 +363,7 @@ export class <%= it.typename %>Controller extends SimpleAppAbstractController<
343
363
  @ApiResponse({ status: 404, description: 'Document not found' })
344
364
  @ApiResponse({ status: 500, description: 'Internal error' })
345
365
  @ApiOperation({ operationId: 'runDelete' })
366
+ <%~ drawMiniAppScope('delete') %>
346
367
  async delete(@AppUser() appuser: UserContext,@Param('id') id: string) {
347
368
  return this._delete(appuser,id);
348
369
  }
@@ -24,12 +24,13 @@ export type <%= typeActionName %> = (typeof actions)[number];
24
24
  export class MiniApp<%= pascalName %>BridgeService {
25
25
  protected api!: <%= apiName %>;
26
26
 
27
- constructor(miniAppCode: string) {
27
+ constructor(miniAppCode: string, developerPortalAppId: string) {
28
28
  const config = getAxiosConfig();
29
29
  if(miniAppCode !== ""){
30
30
  config.baseOptions = {
31
31
  headers: {
32
- "x-mini-app-code": miniAppCode
32
+ "x-mini-app-code": miniAppCode,
33
+ "x-mini-app-dev-portal-app-id": developerPortalAppId,
33
34
  }
34
35
  }
35
36
  }
@@ -13,11 +13,11 @@
13
13
  if (value !== true && typeof value !== 'object') { return; }
14
14
  let method = '';
15
15
  switch(action) {
16
- case 'list':
17
16
  case 'detail':
18
17
  method = 'get';
19
18
  break;
20
19
 
20
+ case 'list':
21
21
  case 'create':
22
22
  case 'autoComplete':
23
23
  method = 'post';
@@ -13,8 +13,10 @@ import { Model } from 'mongoose';
13
13
  import { Permission } from '../../types/perm.type';
14
14
  import { User } from '../../types/user.type';
15
15
  import { Appintegration } from '../../types/appintegration.type';
16
- import { Webhook } from '../../types';
16
+ import { Miniappinstallation, Webhook } from '../../types';
17
17
  import { UserContext } from '../user.context';
18
+ import { ApiKeyService } from './api-key/api-key.service';
19
+ import { HEADER_X_API_KEY, HEADER_X_API_SECRET } from '../constants/header';
18
20
 
19
21
  @Injectable()
20
22
  export class TenantMiddleware implements NestMiddleware {
@@ -29,6 +31,8 @@ export class TenantMiddleware implements NestMiddleware {
29
31
  @InjectModel('Permission') private readonly permModel: Model<Permission>,
30
32
  @InjectModel('Appintegration') private readonly appModel: Model<Appintegration>,
31
33
  @InjectModel('Webhook') private readonly webhookModel: Model<Webhook>,
34
+ @InjectModel('Miniappinstallation') private readonly miniAppInstallationModel: Model<Miniappinstallation>,
35
+ private readonly apiKeyService: ApiKeyService,
32
36
  ) {}
33
37
 
34
38
  requireXOrg(baseurl: string): boolean {
@@ -51,11 +55,11 @@ export class TenantMiddleware implements NestMiddleware {
51
55
  tokenStr = tokenStr.replace('Bearer ', '');
52
56
  const xOrg = req.get('x-org') ?? this.defaultXOrg;
53
57
 
54
- const user = new UserContext(this.userModel, this.permModel, this.appModel);
58
+ const user = new UserContext(this.userModel, this.permModel, this.appModel, this.miniAppInstallationModel);
55
59
 
56
60
  if (req.baseUrl == '/graphql') {
57
61
  if (tokenStr) {
58
- await user.setCurrentUserInfo(tokenStr, xOrg,this.webhookModel);
62
+ await user.setCurrentUserInfo(tokenStr, xOrg, this.webhookModel);
59
63
  }
60
64
  req['sessionuser'] = user;
61
65
  next();
@@ -63,22 +67,37 @@ export class TenantMiddleware implements NestMiddleware {
63
67
  }
64
68
  this.logger.debug(`Running TenantMiddleware for ${req.baseUrl}`);
65
69
 
66
- // If X_APIKEY defined, and there is api key and secret supplied. use robot user
67
- if (process.env.X_APIKEY && req.get('x-apikey') && req.get('x-apisecret')) {
68
- if (req.get('x-apikey') == process.env.X_APIKEY && req.get('x-apisecret') == process.env.X_APISECRET) {
69
- user.setAsStaticUser('00000000-0000-0000-0000-000000000000', 'robot', 'Robot', 'robot@a.org', req.get('x-org') ?? this.defaultXOrg);
70
- if (req.get('x-guest-accesstoken')) {
71
- user.setGuestToken(req.get('x-guest-accesstoken'));
72
- }
70
+ // Request Using API Key & Secret
71
+ const isApiKeyRequest = process.env.X_APIKEY && req.get(HEADER_X_API_KEY) && req.get(HEADER_X_API_SECRET);
72
+ if (isApiKeyRequest) {
73
+ try {
74
+ await this.apiKeyService.validate(req, user);
75
+
73
76
  req['sessionuser'] = user;
74
77
  next();
75
78
  return;
76
- } else {
77
- this.logger.log('Invalid API Key / Secret');
78
- throw new BadRequestException('Invalid API Key / Secret');
79
+ } catch (e) {
80
+ throw e;
79
81
  }
80
82
  }
81
83
 
84
+ // If X_APIKEY defined, and there is api key and secret supplied. use robot user
85
+ // if (process.env.X_APIKEY && req.get('x-apikey') && req.get('x-apisecret')) {
86
+ // if (req.get('x-apikey') == process.env.X_APIKEY && req.get('x-apisecret') == process.env.X_APISECRET) {
87
+ // user.setAsStaticUser('00000000-0000-0000-0000-000000000000', 'robot', 'Robot', 'robot@a.org', req.get('x-org') ?? this.defaultXOrg);
88
+ // if (req.get('x-guest-accesstoken')) {
89
+ // user.setGuestToken(req.get('x-guest-accesstoken'));
90
+ // }
91
+
92
+ // req['sessionuser'] = user;
93
+ // next();
94
+ // return;
95
+ // } else {
96
+ // this.logger.log('Invalid API Key / Secret');
97
+ // throw new BadRequestException('Invalid API Key / Secret');
98
+ // }
99
+ // }
100
+
82
101
  if (!req.get('authorization')) {
83
102
  this.logger.log('Undefine Bearer Token');
84
103
  return res.status(401).send('Undefine Bearer Token');
@@ -90,7 +109,8 @@ export class TenantMiddleware implements NestMiddleware {
90
109
  }
91
110
 
92
111
  try {
93
- await user.setCurrentUserInfo(tokenStr, xOrg,this.webhookModel);
112
+ await user.setCurrentUserInfo(tokenStr, xOrg, this.webhookModel);
113
+ user.detectMiniAppSdkRequest(req);
94
114
  if (user.getId() == '' && this.requireXOrg(req.baseUrl)) {
95
115
  this.logger.log('Access deny for user:', req.baseUrl);
96
116
  return res.status(401).send('Access deny for user');
@@ -11,6 +11,7 @@ import { UserContext } from 'src/simpleapp/generate/commons/user.context';
11
11
  import { Permission } from 'src/simpleapp/services/perm.service';
12
12
  import { User } from 'src/simpleapp/services/user.service';
13
13
  import { Appintegration } from 'src/simpleapp/services/appintegration.service';
14
+ import { Miniappinstallation } from '../types';
14
15
  const Base64URL = require('@darkwolf/base64url');
15
16
  @Injectable()
16
17
  export class SimpleAppRobotUserService {
@@ -22,6 +23,7 @@ export class SimpleAppRobotUserService {
22
23
  @InjectModel('User') private readonly usermodel: Model<User>;
23
24
  @InjectModel('Permission') private readonly permmodel: Model<Permission>;
24
25
  @InjectModel('Appintegration') private readonly appmodel: Model<Appintegration>;
26
+ @InjectModel('Miniappinstallation') private readonly miniAppInstallationModel: Model<Miniappinstallation>;
25
27
 
26
28
  constructor() {
27
29
  this.init();
@@ -91,14 +93,8 @@ export class SimpleAppRobotUserService {
91
93
 
92
94
  prepareAppUser(data: any) {
93
95
  // console.log('prepareAppUserprepareAppUser');
94
- const appuser = new UserContext(this.usermodel, this.permmodel, this.appmodel);
95
- appuser.setAsStaticUser(
96
- '00000000-0000-0000-0000-000000000000',
97
- 'robot',
98
- 'Robot',
99
- 'robot@a.org',
100
- Base64URL.encodeText('0-0-0'),
101
- );
96
+ const appuser = new UserContext(this.usermodel, this.permmodel, this.appmodel, this.miniAppInstallationModel);
97
+ appuser.setAsStaticUser('00000000-0000-0000-0000-000000000000', 'robot', 'Robot', 'robot@a.org', Base64URL.encodeText('0-0-0'));
102
98
 
103
99
  const tenantId = data?.tenantId ?? 0;
104
100
  const orgId = data?.orgId ?? 0;