@solidstarters/solid-core 1.2.203 → 1.2.204

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@solidstarters/solid-core",
3
- "version": "1.2.203",
3
+ "version": "1.2.204",
4
4
  "description": "This module is a NestJS module containing all the required core providers required by a Solid application",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -0,0 +1,69 @@
1
+ import { Injectable, BadRequestException } from "@nestjs/common";
2
+ import { SelectionProvider } from "src/decorators/selection-provider.decorator";
3
+ import {
4
+ ISelectionProvider,
5
+ ISelectionProviderContext,
6
+ ISelectionProviderValues
7
+ } from "../../interfaces";
8
+ import { BasicFilterDto } from "src/dtos/basic-filters.dto";
9
+ import { RoleMetadataService } from "../role-metadata.service";
10
+
11
+ const DEFAULT_LIMIT = 100;
12
+
13
+ interface ListOfRolesProviderContext extends ISelectionProviderContext {
14
+ filters?: Record<string, any>;
15
+
16
+ }
17
+
18
+ @SelectionProvider()
19
+ @Injectable()
20
+ export class ListOfRolesSelectionProvider implements ISelectionProvider<ListOfRolesProviderContext> {
21
+
22
+ constructor(
23
+ private readonly roleMetadataService: RoleMetadataService
24
+ ) {}
25
+
26
+ name(): string {
27
+ return 'ListOfRolesSelectionProvider';
28
+ }
29
+
30
+ help(): string {
31
+ return '# Simple Role selection provider (search + include/exclude)';
32
+ }
33
+
34
+ async value( optionValue: string, ctxt: ListOfRolesProviderContext ): Promise<ISelectionProviderValues> {
35
+
36
+ const basicFilterQuery = new BasicFilterDto(1, 0);
37
+ basicFilterQuery.filters = {
38
+ name: { $eq: optionValue }
39
+ };
40
+
41
+ const roles = await this.roleMetadataService.find(basicFilterQuery);
42
+
43
+ if (!roles.records || roles.records.length === 0) {
44
+ throw new BadRequestException(
45
+ `Invalid role name: ${optionValue}`
46
+ );
47
+ }
48
+
49
+ const role = roles.records[0];
50
+
51
+ return {
52
+ label: role.name,
53
+ value: role.name
54
+ };
55
+ }
56
+
57
+ async values( query: string, ctxt: ListOfRolesProviderContext ): Promise<readonly ISelectionProviderValues[]> {
58
+
59
+ const basicFilterQuery = new BasicFilterDto(DEFAULT_LIMIT, 0);
60
+ basicFilterQuery.filters = ctxt.filters || {};
61
+
62
+ const roles = await this.roleMetadataService.find(basicFilterQuery);
63
+
64
+ return roles.records.map(role => ({
65
+ label: role.name,
66
+ value: role.name
67
+ }));
68
+ }
69
+ }
@@ -344,6 +344,7 @@ import { WhatsAppFactory } from './factories/whatsapp.factory';
344
344
  import { WhatsApp } from 'twilio/lib/twiml/VoiceResponse';
345
345
  import { ImageEncodingService } from './helpers/image-encoding.helper';
346
346
  import { SolidMicroserviceAdapter } from './helpers/solid-microservice-adapter.service';
347
+ import { ListOfRolesSelectionProvider } from './services/selection-providers/list-of-roles-selectionproviders.service';
347
348
 
348
349
 
349
350
  @Global()
@@ -734,6 +735,7 @@ import { SolidMicroserviceAdapter } from './helpers/solid-microservice-adapter.s
734
735
 
735
736
  ImageEncodingService,
736
737
  SolidMicroserviceAdapter,
738
+ ListOfRolesSelectionProvider,
737
739
  ],
738
740
  exports: [
739
741
  AiInteractionService,