@vezlo/assistant-server 2.11.1 → 2.13.0

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 (82) hide show
  1. package/README.md +25 -1
  2. package/database-schema.sql +22 -0
  3. package/dist/src/bootstrap/initializeServices.d.ts +10 -0
  4. package/dist/src/bootstrap/initializeServices.d.ts.map +1 -1
  5. package/dist/src/bootstrap/initializeServices.js +25 -3
  6. package/dist/src/bootstrap/initializeServices.js.map +1 -1
  7. package/dist/src/config/defaultAISettings.d.ts +20 -0
  8. package/dist/src/config/defaultAISettings.d.ts.map +1 -0
  9. package/dist/src/config/defaultAISettings.js +52 -0
  10. package/dist/src/config/defaultAISettings.js.map +1 -0
  11. package/dist/src/controllers/AISettingsController.d.ts +22 -0
  12. package/dist/src/controllers/AISettingsController.d.ts.map +1 -0
  13. package/dist/src/controllers/AISettingsController.js +115 -0
  14. package/dist/src/controllers/AISettingsController.js.map +1 -0
  15. package/dist/src/controllers/AccountController.d.ts +20 -0
  16. package/dist/src/controllers/AccountController.d.ts.map +1 -0
  17. package/dist/src/controllers/AccountController.js +135 -0
  18. package/dist/src/controllers/AccountController.js.map +1 -0
  19. package/dist/src/controllers/ApiKeyController.d.ts.map +1 -1
  20. package/dist/src/controllers/ApiKeyController.js +2 -22
  21. package/dist/src/controllers/ApiKeyController.js.map +1 -1
  22. package/dist/src/controllers/ChatController.d.ts +3 -0
  23. package/dist/src/controllers/ChatController.d.ts.map +1 -1
  24. package/dist/src/controllers/ChatController.js +67 -5
  25. package/dist/src/controllers/ChatController.js.map +1 -1
  26. package/dist/src/controllers/GenerateKeyController.d.ts +22 -0
  27. package/dist/src/controllers/GenerateKeyController.d.ts.map +1 -0
  28. package/dist/src/controllers/GenerateKeyController.js +132 -0
  29. package/dist/src/controllers/GenerateKeyController.js.map +1 -0
  30. package/dist/src/controllers/TeamController.d.ts +30 -0
  31. package/dist/src/controllers/TeamController.d.ts.map +1 -0
  32. package/dist/src/controllers/TeamController.js +208 -0
  33. package/dist/src/controllers/TeamController.js.map +1 -0
  34. package/dist/src/middleware/roleGuard.d.ts +8 -0
  35. package/dist/src/middleware/roleGuard.d.ts.map +1 -0
  36. package/dist/src/middleware/roleGuard.js +26 -0
  37. package/dist/src/middleware/roleGuard.js.map +1 -0
  38. package/dist/src/migrations/012_create_ai_settings.d.ts +4 -0
  39. package/dist/src/migrations/012_create_ai_settings.d.ts.map +1 -0
  40. package/dist/src/migrations/012_create_ai_settings.js +36 -0
  41. package/dist/src/migrations/012_create_ai_settings.js.map +1 -0
  42. package/dist/src/server.js +405 -64
  43. package/dist/src/server.js.map +1 -1
  44. package/dist/src/services/AIService.d.ts +7 -2
  45. package/dist/src/services/AIService.d.ts.map +1 -1
  46. package/dist/src/services/AIService.js +43 -66
  47. package/dist/src/services/AIService.js.map +1 -1
  48. package/dist/src/services/AISettingsService.d.ts +45 -0
  49. package/dist/src/services/AISettingsService.d.ts.map +1 -0
  50. package/dist/src/services/AISettingsService.js +162 -0
  51. package/dist/src/services/AISettingsService.js.map +1 -0
  52. package/dist/src/services/ApiKeyService.d.ts.map +1 -1
  53. package/dist/src/services/ApiKeyService.js.map +1 -1
  54. package/dist/src/services/IntentService.d.ts +7 -0
  55. package/dist/src/services/IntentService.d.ts.map +1 -1
  56. package/dist/src/services/IntentService.js +51 -27
  57. package/dist/src/services/IntentService.js.map +1 -1
  58. package/dist/src/services/PromptService.d.ts +59 -0
  59. package/dist/src/services/PromptService.d.ts.map +1 -0
  60. package/dist/src/services/PromptService.js +199 -0
  61. package/dist/src/services/PromptService.js.map +1 -0
  62. package/dist/src/services/ResponseGenerationService.d.ts +13 -0
  63. package/dist/src/services/ResponseGenerationService.d.ts.map +1 -1
  64. package/dist/src/services/ResponseGenerationService.js +10 -2
  65. package/dist/src/services/ResponseGenerationService.js.map +1 -1
  66. package/dist/src/services/SetupService.d.ts +1 -0
  67. package/dist/src/services/SetupService.d.ts.map +1 -1
  68. package/dist/src/services/SetupService.js +15 -17
  69. package/dist/src/services/SetupService.js.map +1 -1
  70. package/dist/src/services/TeamService.d.ts +53 -0
  71. package/dist/src/services/TeamService.d.ts.map +1 -0
  72. package/dist/src/services/TeamService.js +310 -0
  73. package/dist/src/services/TeamService.js.map +1 -0
  74. package/dist/src/storage/MessageRepository.d.ts.map +1 -1
  75. package/dist/src/storage/MessageRepository.js +10 -1
  76. package/dist/src/storage/MessageRepository.js.map +1 -1
  77. package/dist/src/types/index.d.ts +1 -0
  78. package/dist/src/types/index.d.ts.map +1 -1
  79. package/env.example +2 -0
  80. package/package.json +3 -1
  81. package/scripts/generate-key.js +9 -69
  82. package/scripts/seed-ai-settings.js +120 -0
@@ -15,21 +15,7 @@ class ApiKeyController {
15
15
  */
16
16
  async generateApiKey(req, res) {
17
17
  try {
18
- if (!req.profile) {
19
- res.status(401).json({
20
- success: false,
21
- error: 'Not authenticated'
22
- });
23
- return;
24
- }
25
- // Check if user is an admin
26
- if (req.profile.role !== 'admin') {
27
- res.status(403).json({
28
- success: false,
29
- error: 'Only admin users can generate API keys'
30
- });
31
- return;
32
- }
18
+ // requireAdmin middleware ensures req.profile exists and role is admin
33
19
  const companyId = parseInt(req.profile.companyId);
34
20
  const result = await this.apiKeyService.generateApiKey(companyId);
35
21
  res.status(200).json({
@@ -53,13 +39,7 @@ class ApiKeyController {
53
39
  */
54
40
  async getApiKeyStatus(req, res) {
55
41
  try {
56
- if (!req.profile) {
57
- res.status(401).json({
58
- success: false,
59
- error: 'Not authenticated'
60
- });
61
- return;
62
- }
42
+ // requireAdmin middleware ensures req.profile exists and role is admin
63
43
  const companyId = parseInt(req.profile.companyId);
64
44
  const status = await this.apiKeyService.getApiKeyStatus(companyId);
65
45
  res.status(200).json({
@@ -1 +1 @@
1
- {"version":3,"file":"ApiKeyController.js","sourceRoot":"","sources":["../../../src/controllers/ApiKeyController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ApiKeyController.js","sourceRoot":"","sources":["../../../src/controllers/ApiKeyController.ts"],"names":[],"mappings":";;;;;;AAGA,8DAAsC;AAGtC,MAAa,gBAAgB;IAG3B,YAAY,aAA4B;QACtC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc,CAAC,GAAyB,EAAE,GAAa;QAC3D,IAAI,CAAC;YACH,uEAAuE;YACvE,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAQ,CAAC,SAAS,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YAElE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,OAAO,EAAE,MAAM,CAAC,MAAM;gBACtB,OAAO,EAAE,gCAAgC;aAC1C,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,gBAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;YACjD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,4BAA4B;gBACrC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAChE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,GAAyB,EAAE,GAAa;QAC5D,IAAI,CAAC;YACH,uEAAuE;YACvE,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAQ,CAAC,SAAS,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YAEnE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI;gBACzB,OAAO,EAAE,MAAM,CAAC,MAAM;oBACpB,CAAC,CAAC,iCAAiC;oBACnC,CAAC,CAAC,oCAAoC;aACzC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,gBAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;YACrD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,8BAA8B;gBACvC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAChE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF;AA1DD,4CA0DC"}
@@ -7,6 +7,7 @@ import { IntentService } from '../services/IntentService';
7
7
  import { RealtimePublisher } from '../services/RealtimePublisher';
8
8
  import { ValidationService } from '../services/ValidationService';
9
9
  import { DatabaseToolService } from '../services/DatabaseToolService';
10
+ import { AISettingsService } from '../services/AISettingsService';
10
11
  export declare class ChatController {
11
12
  private chatManager;
12
13
  private storage;
@@ -18,12 +19,14 @@ export declare class ChatController {
18
19
  private responseStreamingService;
19
20
  private validationService?;
20
21
  private databaseToolService?;
22
+ private aiSettingsService?;
21
23
  constructor(chatManager: ChatManager, storage: UnifiedStorage, supabase: SupabaseClient, options?: {
22
24
  historyLength?: number;
23
25
  intentService?: IntentService;
24
26
  realtimePublisher?: RealtimePublisher;
25
27
  validationService?: ValidationService;
26
28
  databaseToolService?: DatabaseToolService;
29
+ aiSettingsService?: AISettingsService;
27
30
  });
28
31
  createConversation(req: AuthenticatedRequest, res: Response): Promise<void>;
29
32
  createUserMessage(req: Request, res: Response): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"ChatController.d.ts","sourceRoot":"","sources":["../../../src/controllers/ChatController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChatController.d.ts","sourceRoot":"","sources":["../../../src/controllers/ChatController.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,7 @@ class ChatController {
18
18
  this.realtimePublisher = options.realtimePublisher;
19
19
  this.validationService = options.validationService;
20
20
  this.databaseToolService = options.databaseToolService;
21
+ this.aiSettingsService = options.aiSettingsService;
21
22
  // Initialize services
22
23
  const aiService = chatManager.aiService;
23
24
  this.responseGenerationService = new ResponseGenerationService_1.ResponseGenerationService(this.intentService, aiService, this.chatHistoryLength, this.databaseToolService);
@@ -264,8 +265,59 @@ class ChatController {
264
265
  }
265
266
  // Set up Server-Sent Events (SSE) headers for streaming
266
267
  this.responseStreamingService.setupSSEHeaders(res);
267
- // Run intent classification to decide handling strategy (with dynamic tools)
268
+ // Load and apply AI settings for this company before generating response
268
269
  const companyId = conversation?.organizationId ? parseInt(String(conversation.organizationId), 10) : undefined;
270
+ // Try to get company UUID from profile or fetch from database using companyId
271
+ let companyUuid = req.profile?.companyUuid;
272
+ if (!companyUuid && companyId && this.aiSettingsService) {
273
+ // Fallback: fetch company UUID from database using companyId
274
+ try {
275
+ const { data: company } = await this.supabase
276
+ .from('vezlo_companies')
277
+ .select('uuid')
278
+ .eq('id', companyId)
279
+ .single();
280
+ if (company) {
281
+ companyUuid = company.uuid;
282
+ logger_1.default.info(`🔍 Fetched company UUID from database: ${companyUuid}`);
283
+ }
284
+ }
285
+ catch (error) {
286
+ logger_1.default.warn('⚠️ Failed to fetch company UUID from database:', error);
287
+ }
288
+ }
289
+ if (this.aiSettingsService && companyUuid) {
290
+ try {
291
+ logger_1.default.info(`🔍 Loading AI settings for company: ${companyUuid}`);
292
+ const aiSettings = await this.aiSettingsService.getSettingsByCompanyUuid(companyUuid);
293
+ logger_1.default.info(`📦 AI Settings loaded:`, {
294
+ model: aiSettings.model,
295
+ temperature: aiSettings.temperature,
296
+ max_tokens: aiSettings.max_tokens,
297
+ hasPrompts: !!aiSettings.prompts,
298
+ promptKeys: aiSettings.prompts ? Object.keys(aiSettings.prompts) : []
299
+ });
300
+ const aiService = this.responseGenerationService.getAIService();
301
+ if (aiService) {
302
+ aiService.setAISettings(aiSettings);
303
+ logger_1.default.info(`✅ AI settings applied to AIService for company: ${companyUuid}`);
304
+ }
305
+ else {
306
+ logger_1.default.warn('⚠️ AIService not available in ResponseGenerationService');
307
+ }
308
+ // Also set ALL AI settings prompts in ResponseGenerationService for intent classification
309
+ if (aiSettings.prompts) {
310
+ this.responseGenerationService.setAISettingsPrompts(aiSettings.prompts);
311
+ }
312
+ }
313
+ catch (error) {
314
+ logger_1.default.warn('⚠️ Failed to load AI settings, using defaults:', error);
315
+ }
316
+ }
317
+ else {
318
+ logger_1.default.warn(`⚠️ Cannot load AI settings: aiSettingsService=${!!this.aiSettingsService}, companyUuid=${companyUuid}, companyId=${companyId}`);
319
+ }
320
+ // Run intent classification to decide handling strategy (with dynamic tools)
269
321
  const intentResult = await this.responseGenerationService.classifyIntent(userMessageContent, messages, companyId);
270
322
  const intentResponse = this.responseGenerationService.handleIntentResult(intentResult, userMessageContent);
271
323
  let accumulatedContent = '';
@@ -298,9 +350,13 @@ class ChatController {
298
350
  if (!aiService) {
299
351
  throw new Error('AI service not available');
300
352
  }
353
+ // Get AI settings from the AI service (model, temperature)
354
+ const aiSettings = aiService.aiSettings;
355
+ const modelToUse = aiSettings?.model || process.env.AI_MODEL || 'gpt-4o-mini';
356
+ const temperature = aiSettings?.temperature ?? parseFloat(process.env.AI_TEMPERATURE || '0.7');
357
+ const maxTokens = parseInt(process.env.AI_MAX_TOKENS || '500', 10);
301
358
  // Direct OpenAI call bypassing the restrictive system prompt
302
359
  const openai = aiService.openai;
303
- const modelToUse = process.env.AI_MODEL || 'gpt-4o-mini';
304
360
  const completion = await openai.chat.completions.create({
305
361
  model: modelToUse,
306
362
  messages: [
@@ -318,8 +374,8 @@ ${JSON.stringify(toolResult.data || toolResult, null, 2)}
318
374
  Provide a natural, friendly response to the user's question using this data.`
319
375
  }
320
376
  ],
321
- temperature: 0.7,
322
- max_tokens: 500
377
+ temperature,
378
+ max_tokens: maxTokens
323
379
  });
324
380
  const formattedContent = completion.choices[0]?.message?.content || 'Here is your information.';
325
381
  logger_1.default.info('📤 Streaming database tool response');
@@ -522,7 +578,8 @@ Provide a natural, friendly response to the user's question using this data.`
522
578
  content: msg.content,
523
579
  status: 'completed',
524
580
  created_at: toIso(msg.createdAt),
525
- author_id: msg.authorId ?? null
581
+ author_id: msg.authorId ?? null,
582
+ author_name: msg.authorName ?? null
526
583
  })),
527
584
  pagination: {
528
585
  page,
@@ -594,6 +651,7 @@ Provide a natural, friendly response to the user's question using this data.`
594
651
  content: systemMessage.content,
595
652
  type: systemMessage.role,
596
653
  author_id: systemMessage.authorId,
654
+ author_name: req.user.name || null,
597
655
  created_at: systemMessage.createdAt.toISOString()
598
656
  },
599
657
  conversation_update: {
@@ -679,6 +737,7 @@ Provide a natural, friendly response to the user's question using this data.`
679
737
  content: systemMessage.content,
680
738
  type: systemMessage.role,
681
739
  author_id: systemMessage.authorId,
740
+ author_name: req.user.name || null,
682
741
  created_at: systemMessage.createdAt.toISOString()
683
742
  },
684
743
  conversation_update: {
@@ -702,6 +761,7 @@ Provide a natural, friendly response to the user's question using this data.`
702
761
  content: systemMessage.content,
703
762
  type: systemMessage.role,
704
763
  author_id: systemMessage.authorId,
764
+ author_name: req.user.name || null,
705
765
  created_at: systemMessage.createdAt.toISOString()
706
766
  }
707
767
  });
@@ -832,6 +892,7 @@ Provide a natural, friendly response to the user's question using this data.`
832
892
  content: agentMessage.content,
833
893
  type: agentMessage.role,
834
894
  author_id: agentMessage.authorId,
895
+ author_name: req.user.name || null,
835
896
  created_at: agentMessage.createdAt.toISOString()
836
897
  },
837
898
  conversation_update: {
@@ -850,6 +911,7 @@ Provide a natural, friendly response to the user's question using this data.`
850
911
  content: agentMessage.content,
851
912
  type: agentMessage.role,
852
913
  author_id: agentMessage.authorId,
914
+ author_name: req.user.name || null,
853
915
  created_at: agentMessage.createdAt.toISOString()
854
916
  });
855
917
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ChatController.js","sourceRoot":"","sources":["../../../src/controllers/ChatController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChatController.js","sourceRoot":"","sources":["../../../src/controllers/ChatController.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { Request, Response } from 'express';
2
+ import { SupabaseClient } from '@supabase/supabase-js';
3
+ export declare class GenerateKeyController {
4
+ private supabase;
5
+ constructor(supabase: SupabaseClient);
6
+ /**
7
+ * Generate API key endpoint
8
+ * Supports two authentication methods:
9
+ * 1. Bearer token: For authenticated admin users, generates key for their company
10
+ * 2. Migration key: For Vercel deployments, generates key for default admin's company
11
+ */
12
+ generateKey(req: Request, res: Response): Promise<void>;
13
+ /**
14
+ * Handle Bearer token authentication and generate key for user's company
15
+ */
16
+ private handleBearerTokenAuth;
17
+ /**
18
+ * Handle migration key authentication and generate key for default admin's company
19
+ */
20
+ private handleMigrationKeyAuth;
21
+ }
22
+ //# sourceMappingURL=GenerateKeyController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenerateKeyController.d.ts","sourceRoot":"","sources":["../../../src/controllers/GenerateKeyController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAOvD,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAiB;gBAErB,QAAQ,EAAE,cAAc;IAIpC;;;;;OAKG;IACG,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAmC7D;;OAEG;YACW,qBAAqB;IA4DnC;;OAEG;YACW,sBAAsB;CAqBrC"}
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.GenerateKeyController = void 0;
7
+ const logger_1 = __importDefault(require("../config/logger"));
8
+ const SetupService_1 = require("../services/SetupService");
9
+ const ApiKeyService_1 = require("../services/ApiKeyService");
10
+ const MigrationService_1 = require("../services/MigrationService");
11
+ const auth_1 = require("../middleware/auth");
12
+ class GenerateKeyController {
13
+ constructor(supabase) {
14
+ this.supabase = supabase;
15
+ }
16
+ /**
17
+ * Generate API key endpoint
18
+ * Supports two authentication methods:
19
+ * 1. Bearer token: For authenticated admin users, generates key for their company
20
+ * 2. Migration key: For Vercel deployments, generates key for default admin's company
21
+ */
22
+ async generateKey(req, res) {
23
+ try {
24
+ const authHeader = req.headers.authorization;
25
+ const migrationKey = req.query.key || undefined;
26
+ // Check for Bearer token first (frontend/admin access)
27
+ if (authHeader && authHeader.startsWith('Bearer ')) {
28
+ await this.handleBearerTokenAuth(req, res, authHeader);
29
+ return;
30
+ }
31
+ // Fallback to migration key (Vercel deployment)
32
+ if (!migrationKey) {
33
+ res.status(401).json({
34
+ success: false,
35
+ message: 'No authentication provided',
36
+ error: 'UNAUTHORIZED'
37
+ });
38
+ return;
39
+ }
40
+ await this.handleMigrationKeyAuth(req, res, migrationKey);
41
+ }
42
+ catch (error) {
43
+ logger_1.default.error('Generate key failed:', error);
44
+ res.status(500).json({
45
+ success: false,
46
+ message: 'Failed to generate API key',
47
+ error: error.message || 'GENERATE_KEY_FAILED',
48
+ details: {
49
+ error: error.message
50
+ }
51
+ });
52
+ }
53
+ }
54
+ /**
55
+ * Handle Bearer token authentication and generate key for user's company
56
+ */
57
+ async handleBearerTokenAuth(req, res, authHeader) {
58
+ const token = authHeader.substring(7);
59
+ const decoded = auth_1.JWTUtils.verifyToken(token);
60
+ const { data: user } = await this.supabase
61
+ .from('vezlo_users')
62
+ .select('*')
63
+ .eq('id', decoded.user_id)
64
+ .single();
65
+ if (!user || user.token_updated_at !== decoded.user_token_updated_at) {
66
+ res.status(401).json({
67
+ success: false,
68
+ message: 'Invalid or expired token',
69
+ error: 'UNAUTHORIZED'
70
+ });
71
+ return;
72
+ }
73
+ const { data: profile } = await this.supabase
74
+ .from('vezlo_user_company_profiles')
75
+ .select(`
76
+ role,
77
+ company_id,
78
+ companies:company_id(
79
+ id,
80
+ name
81
+ )
82
+ `)
83
+ .eq('user_id', user.id)
84
+ .eq('id', decoded.user_company_profile_id)
85
+ .single();
86
+ if (!profile || profile.role !== 'admin') {
87
+ res.status(403).json({
88
+ success: false,
89
+ message: 'Only admin users can generate API keys',
90
+ error: 'FORBIDDEN'
91
+ });
92
+ return;
93
+ }
94
+ const companyId = parseInt(profile.company_id);
95
+ const apiKeyService = new ApiKeyService_1.ApiKeyService(this.supabase);
96
+ const result = await apiKeyService.generateApiKey(companyId);
97
+ const companyName = profile.companies?.name || 'Unknown Company';
98
+ res.status(200).json({
99
+ success: true,
100
+ message: 'API key generated successfully',
101
+ api_key_details: {
102
+ uuid: result.uuid,
103
+ company_name: companyName,
104
+ user_name: user.name,
105
+ api_key: result.apiKey
106
+ }
107
+ });
108
+ }
109
+ /**
110
+ * Handle migration key authentication and generate key for default admin's company
111
+ */
112
+ async handleMigrationKeyAuth(req, res, migrationKey) {
113
+ const keyValid = MigrationService_1.MigrationService.validateApiKey(migrationKey);
114
+ if (!keyValid) {
115
+ res.status(401).json({
116
+ success: false,
117
+ message: 'Invalid or missing migration API key',
118
+ error: 'UNAUTHORIZED'
119
+ });
120
+ return;
121
+ }
122
+ const setupService = new SetupService_1.SetupService(this.supabase);
123
+ const response = await setupService.executeGenerateKey();
124
+ res.status(200).json({
125
+ success: true,
126
+ message: 'API key generated successfully',
127
+ api_key_details: response
128
+ });
129
+ }
130
+ }
131
+ exports.GenerateKeyController = GenerateKeyController;
132
+ //# sourceMappingURL=GenerateKeyController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenerateKeyController.js","sourceRoot":"","sources":["../../../src/controllers/GenerateKeyController.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { Response } from 'express';
2
+ import { SupabaseClient } from '@supabase/supabase-js';
3
+ import { TeamService } from '../services/TeamService';
4
+ import { AuthenticatedRequest } from '../middleware/auth';
5
+ export declare class TeamController {
6
+ private teamService;
7
+ private supabase;
8
+ constructor(teamService: TeamService, supabase: SupabaseClient);
9
+ /**
10
+ * Create a new team member
11
+ * POST /api/companies/:companyUuid/team
12
+ */
13
+ createTeamMember(req: AuthenticatedRequest, res: Response): Promise<void>;
14
+ /**
15
+ * Get team members
16
+ * GET /api/companies/:companyUuid/team
17
+ */
18
+ getTeamMembers(req: AuthenticatedRequest, res: Response): Promise<void>;
19
+ /**
20
+ * Update team member
21
+ * PUT /api/companies/:companyUuid/team/:userUuid
22
+ */
23
+ updateTeamMember(req: AuthenticatedRequest, res: Response): Promise<void>;
24
+ /**
25
+ * Delete team member
26
+ * DELETE /api/companies/:companyUuid/team/:userUuid
27
+ */
28
+ deleteTeamMember(req: AuthenticatedRequest, res: Response): Promise<void>;
29
+ }
30
+ //# sourceMappingURL=TeamController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TeamController.d.ts","sourceRoot":"","sources":["../../../src/controllers/TeamController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAA0D,MAAM,yBAAyB,CAAC;AAE9G,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,qBAAa,cAAc;IACzB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,QAAQ,CAAiB;gBAErB,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc;IAK9D;;;OAGG;IACG,gBAAgB,CAAC,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAoD/E;;;OAGG;IACG,cAAc,CAAC,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC7E;;;OAGG;IACG,gBAAgB,CAAC,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA4E/E;;;OAGG;IACG,gBAAgB,CAAC,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CA8BhF"}