@venturialstd/jira 0.1.20 → 0.1.22

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.
@@ -46,10 +46,19 @@ let JiraClient = JiraClient_1 = class JiraClient {
46
46
  async getTicketInformation(ticketId) {
47
47
  try {
48
48
  await this.initializeClient();
49
- const ticketResponse = await this.apiClient.get(`issue/VL-75`);
49
+ this.logger.log(`API Client Base URL: ${this.apiClient.defaults.baseURL}`);
50
+ this.logger.log(`API Client Headers: ${JSON.stringify(this.apiClient.defaults.headers, null, 2)}`);
51
+ const jiraToken = await this.settingsService.get(jira_constants_1.JIRA_SETTING_KEYS.CREDENTIALS_JIRA_TOKEN);
52
+ this.logger.log(`Jira Token: ${jiraToken ? '***' + jiraToken.slice(-4) : 'NOT FOUND'}`);
53
+ const jiraAuth = Buffer.from(`${this.user}:${jiraToken}`).toString('base64');
54
+ this.logger.log(`Jira Auth (Base64): ${jiraAuth}`);
55
+ this.logger.log(`Fetching ticket: ${ticketId}`);
56
+ const ticketResponse = await this.apiClient.get(`issue/${ticketId}`);
57
+ this.logger.log(`Response Status: ${ticketResponse.status}`);
58
+ this.logger.log(`Response Headers: ${JSON.stringify(ticketResponse.headers, null, 2)}`);
50
59
  const ticketData = ticketResponse.data;
51
60
  const description = ticketData.fields.description || 'No description available';
52
- const commentsResponse = await this.apiClient.get(`issue/VL-75/comment`);
61
+ const commentsResponse = await this.apiClient.get(`issue/${ticketId}/comment`);
53
62
  const comments = commentsResponse.data.comments || [];
54
63
  this.logger.log(`Ticket ${ticketId} fetched successfully`);
55
64
  return { description, comments };
@@ -1 +1 @@
1
- {"version":3,"file":"jira.client.js","sourceRoot":"","sources":["../../../clients/jira.client.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAgE;AAChE,kDAA6C;AAE7C,gEAAgE;AAGzD,IAAM,UAAU,kBAAhB,MAAM,UAAU;IAIX;IACA;IAJF,SAAS,CAAgB;IAChB,IAAI,GAAG,4BAA4B,CAAC;IACrD,YACU,MAAiB,EACjB,eAAgC;QADhC,WAAM,GAAN,MAAM,CAAW;QACjB,oBAAe,GAAf,eAAe,CAAiB;QAExC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,YAAU,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAKO,KAAK,CAAC,gBAAgB;QAE5B,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,kCAAiB,CAAC,sBAAsB,CAAC,CAAC;QAErF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC7E,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,eAAK,CAAC,MAAM,CAAC;YAC5B,OAAO,EAAE,gDAAgD;YACzD,OAAO,EAAE;gBACP,aAAa,EAAE,SAAS,QAAQ,EAAE;gBAClC,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,KAAK;aACd;SACF,CAAC,CAAC;IACL,CAAC;IAOD,KAAK,CAAC,oBAAoB,CAAC,QAAgB;QACzC,IAAI,CAAC;YAEH,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAM9B,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC/D,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC;YAGvC,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,IAAI,0BAA0B,CAAC;YAGhF,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YACzE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;YAEtD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,QAAQ,uBAAuB,CAAC,CAAC;YAC3D,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,QAAQ,EAAE,EAAE,KAAc,CAAC,CAAC;YACvE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF,CAAA;AA/DY,gCAAU;qBAAV,UAAU;IADtB,IAAA,mBAAU,GAAE;qCAKO,gBAAS;QACA,sBAAe;GAL/B,UAAU,CA+DtB","sourcesContent":["import { Injectable } from '@nestjs/common';\r\nimport { AppLogger, SettingsService } from '@venturialstd/core';\r\nimport axios, { AxiosInstance } from 'axios';\r\n\r\nimport { JIRA_SETTING_KEYS } from '../constants/jira.constants';\r\n\r\n@Injectable()\r\nexport class JiraClient {\r\n private apiClient: AxiosInstance;\r\n private readonly user = 'aaron.mendoza@venturial.io';\r\n constructor(\r\n private logger: AppLogger,\r\n private settingsService: SettingsService,\r\n ) {\r\n this.logger.setContext(JiraClient.name);\r\n }\r\n\r\n /**\r\n * Inicializa el cliente HTTP de Jira con las credenciales.\r\n */\r\n private async initializeClient(): Promise<void> {\r\n // const jiraToken = await this.settingsService.get(JIRA_SETTING_KEYS.CREDENTIALS_JIRA_TOKEN);\r\n const jiraToken = this.settingsService.get(JIRA_SETTING_KEYS.CREDENTIALS_JIRA_TOKEN);\r\n\r\n const jiraAuth = Buffer.from(`${this.user}:${jiraToken}`).toString('base64');\r\n if (!jiraToken || !jiraAuth) {\r\n throw new Error('Jira token not configured or jiraAuth failed');\r\n }\r\n\r\n this.apiClient = axios.create({\r\n baseURL: 'https://venturial-io.atlassian.net/rest/api/3/', // Cambia esto por la URL de tu instancia de Jira\r\n headers: {\r\n Authorization: `Basic ${jiraAuth}`,\r\n 'Content-Type': 'application/json',\r\n Accept: '*/*',\r\n },\r\n });\r\n }\r\n\r\n /**\r\n * Obtiene la información de un ticket de Jira.\r\n * @param ticketId - El ID o clave del ticket (por ejemplo, \"PROJ-123\").\r\n * @returns La descripción y los comentarios del ticket.\r\n */\r\n async getTicketInformation(ticketId: string): Promise<{ description: string; comments: any[] }> {\r\n try {\r\n // Asegúrate de que el cliente esté inicializado\r\n await this.initializeClient();\r\n\r\n // REMUEVE ESTA LÍNEA:\r\n // ticketId = 'VL-75';\r\n\r\n // Obtiene los detalles del ticket\r\n const ticketResponse = await this.apiClient.get(`issue/VL-75`);\r\n const ticketData = ticketResponse.data;\r\n\r\n // Extrae la descripción\r\n const description = ticketData.fields.description || 'No description available';\r\n\r\n // Obtiene los comentarios del ticket\r\n const commentsResponse = await this.apiClient.get(`issue/VL-75/comment`);\r\n const comments = commentsResponse.data.comments || [];\r\n\r\n this.logger.log(`Ticket ${ticketId} fetched successfully`);\r\n return { description, comments };\r\n } catch (error) {\r\n this.logger.error(`Error fetching ticket ${ticketId}`, error as Error);\r\n throw error;\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"jira.client.js","sourceRoot":"","sources":["../../../clients/jira.client.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable } from '@nestjs/common';\r\nimport { AppLogger, SettingsService } from '@venturialstd/core';\r\nimport axios, { AxiosInstance } from 'axios';\r\n\r\nimport { JIRA_SETTING_KEYS } from '../constants/jira.constants';\r\n\r\n@Injectable()\r\nexport class JiraClient {\r\n private apiClient: AxiosInstance;\r\n private readonly user = 'aaron.mendoza@venturial.io';\r\n constructor(\r\n private logger: AppLogger,\r\n private settingsService: SettingsService,\r\n ) {\r\n this.logger.setContext(JiraClient.name);\r\n }\r\n\r\n /**\r\n * Inicializa el cliente HTTP de Jira con las credenciales.\r\n */\r\n private async initializeClient(): Promise<void> {\r\n // const jiraToken = await this.settingsService.get(JIRA_SETTING_KEYS.CREDENTIALS_JIRA_TOKEN);\r\n const jiraToken = this.settingsService.get(JIRA_SETTING_KEYS.CREDENTIALS_JIRA_TOKEN);\r\n\r\n const jiraAuth = Buffer.from(`${this.user}:${jiraToken}`).toString('base64');\r\n if (!jiraToken || !jiraAuth) {\r\n throw new Error('Jira token not configured or jiraAuth failed');\r\n }\r\n\r\n this.apiClient = axios.create({\r\n baseURL: 'https://venturial-io.atlassian.net/rest/api/3/', // Cambia esto por la URL de tu instancia de Jira\r\n headers: {\r\n Authorization: `Basic ${jiraAuth}`,\r\n 'Content-Type': 'application/json',\r\n Accept: '*/*',\r\n },\r\n });\r\n }\r\n\r\n /**\r\n * Obtiene la información de un ticket de Jira.\r\n * @param ticketId - El ID o clave del ticket (por ejemplo, \"PROJ-123\").\r\n * @returns La descripción y los comentarios del ticket.\r\n */\r\n async getTicketInformation(ticketId: string): Promise<{ description: string; comments: any[] }> {\r\n try {\r\n // Asegúrate de que el cliente esté inicializado\r\n await this.initializeClient();\r\n\r\n // Loggear la configuración del cliente\r\n this.logger.log(`API Client Base URL: ${this.apiClient.defaults.baseURL}`);\r\n this.logger.log(\r\n `API Client Headers: ${JSON.stringify(this.apiClient.defaults.headers, null, 2)}`,\r\n );\r\n\r\n // Loggear el token (ten cuidado con esto en producción)\r\n const jiraToken = await this.settingsService.get(JIRA_SETTING_KEYS.CREDENTIALS_JIRA_TOKEN);\r\n this.logger.log(`Jira Token: ${jiraToken ? '***' + jiraToken.slice(-4) : 'NOT FOUND'}`);\r\n\r\n const jiraAuth = Buffer.from(`${this.user}:${jiraToken}`).toString('base64');\r\n this.logger.log(`Jira Auth (Base64): ${jiraAuth}`);\r\n\r\n // Obtiene los detalles del ticket\r\n this.logger.log(`Fetching ticket: ${ticketId}`);\r\n const ticketResponse = await this.apiClient.get(`issue/${ticketId}`);\r\n\r\n // Loggear headers de la respuesta\r\n this.logger.log(`Response Status: ${ticketResponse.status}`);\r\n this.logger.log(`Response Headers: ${JSON.stringify(ticketResponse.headers, null, 2)}`);\r\n\r\n const ticketData = ticketResponse.data;\r\n\r\n // Extrae la descripción\r\n const description = ticketData.fields.description || 'No description available';\r\n\r\n // Obtiene los comentarios del ticket\r\n const commentsResponse = await this.apiClient.get(`issue/${ticketId}/comment`);\r\n const comments = commentsResponse.data.comments || [];\r\n\r\n this.logger.log(`Ticket ${ticketId} fetched successfully`);\r\n return { description, comments };\r\n } catch (error) {\r\n this.logger.error(`Error fetching ticket ${ticketId}`, error as Error);\r\n throw error;\r\n }\r\n }\r\n}\r\n"]}
@@ -19,6 +19,7 @@ exports.JiraModule = JiraModule = __decorate([
19
19
  (0, common_1.Module)({
20
20
  imports: [event_emitter_1.EventEmitterModule.forRoot(), core_1.SettingsModule],
21
21
  providers: [core_1.AppLogger, jira_client_1.JiraClient, jira_issue_service_1.JiraIssueService],
22
+ exports: [jira_issue_service_1.JiraIssueService],
22
23
  })
23
24
  ], JiraModule);
24
25
  //# sourceMappingURL=jira.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jira.module.js","sourceRoot":"","sources":["../../jira.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,yDAA2D;AAC3D,6CAA+D;AAE/D,uDAAmD;AACnD,sEAAiE;AAO1D,IAAM,UAAU,GAAhB,MAAM,UAAU;CAAG,CAAA;AAAb,gCAAU;qBAAV,UAAU;IALtB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,kCAAkB,CAAC,OAAO,EAAE,EAAE,qBAAc,CAAC;QAEvD,SAAS,EAAE,CAAC,gBAAS,EAAE,wBAAU,EAAE,qCAAgB,CAAC;KACrD,CAAC;GACW,UAAU,CAAG","sourcesContent":["import { Module } from '@nestjs/common';\r\nimport { EventEmitterModule } from '@nestjs/event-emitter';\r\nimport { AppLogger, SettingsModule } from '@venturialstd/core';\r\n\r\nimport { JiraClient } from './clients/jira.client';\r\nimport { JiraIssueService } from './services/jira-issue.service';\r\n\r\n@Module({\r\n imports: [EventEmitterModule.forRoot(), SettingsModule],\r\n\r\n providers: [AppLogger, JiraClient, JiraIssueService],\r\n})\r\nexport class JiraModule {}\r\n"]}
1
+ {"version":3,"file":"jira.module.js","sourceRoot":"","sources":["../../jira.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,yDAA2D;AAC3D,6CAA+D;AAE/D,uDAAmD;AACnD,sEAAiE;AAQ1D,IAAM,UAAU,GAAhB,MAAM,UAAU;CAAG,CAAA;AAAb,gCAAU;qBAAV,UAAU;IANtB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,kCAAkB,CAAC,OAAO,EAAE,EAAE,qBAAc,CAAC;QAEvD,SAAS,EAAE,CAAC,gBAAS,EAAE,wBAAU,EAAE,qCAAgB,CAAC;QACpD,OAAO,EAAE,CAAC,qCAAgB,CAAC;KAC5B,CAAC;GACW,UAAU,CAAG","sourcesContent":["import { Module } from '@nestjs/common';\r\nimport { EventEmitterModule } from '@nestjs/event-emitter';\r\nimport { AppLogger, SettingsModule } from '@venturialstd/core';\r\n\r\nimport { JiraClient } from './clients/jira.client';\r\nimport { JiraIssueService } from './services/jira-issue.service';\r\n\r\n@Module({\r\n imports: [EventEmitterModule.forRoot(), SettingsModule],\r\n\r\n providers: [AppLogger, JiraClient, JiraIssueService],\r\n exports: [JiraIssueService],\r\n})\r\nexport class JiraModule {}\r\n"]}