@venturialstd/jira 0.1.2
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/dist/jira/clients/jira.client.d.ts +12 -0
- package/dist/jira/clients/jira.client.js +68 -0
- package/dist/jira/clients/jira.client.js.map +1 -0
- package/dist/jira/constants/jira.constants.d.ts +3 -0
- package/dist/jira/constants/jira.constants.js +7 -0
- package/dist/jira/constants/jira.constants.js.map +1 -0
- package/dist/jira/dtos/jira-webhook-event.dto.d.ts +21 -0
- package/dist/jira/dtos/jira-webhook-event.dto.js +139 -0
- package/dist/jira/dtos/jira-webhook-event.dto.js.map +1 -0
- package/dist/jira/index.d.ts +3 -0
- package/dist/jira/index.js +10 -0
- package/dist/jira/index.js.map +1 -0
- package/dist/jira/jira.module.d.ts +2 -0
- package/dist/jira/jira.module.js +24 -0
- package/dist/jira/jira.module.js.map +1 -0
- package/dist/jira/services/jira-issue.service.d.ts +11 -0
- package/dist/jira/services/jira-issue.service.js +42 -0
- package/dist/jira/services/jira-issue.service.js.map +1 -0
- package/dist/jira/settings/jira-settings.d.ts +2 -0
- package/dist/jira/settings/jira-settings.js +19 -0
- package/dist/jira/settings/jira-settings.js.map +1 -0
- package/dist/jira/tsconfig.build.tsbuildinfo +1 -0
- package/dist/jira/types/slack.event.type.d.ts +20 -0
- package/dist/jira/types/slack.event.type.js +3 -0
- package/dist/jira/types/slack.event.type.js.map +1 -0
- package/package.json +25 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AppLogger, SettingsService } from '@venturialstd/core';
|
|
2
|
+
export declare class JiraClient {
|
|
3
|
+
private logger;
|
|
4
|
+
private settingsService;
|
|
5
|
+
private apiClient;
|
|
6
|
+
constructor(logger: AppLogger, settingsService: SettingsService);
|
|
7
|
+
private initializeClient;
|
|
8
|
+
getTicketInformation(ticketId: string): Promise<{
|
|
9
|
+
description: string;
|
|
10
|
+
comments: any[];
|
|
11
|
+
}>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
var JiraClient_1;
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.JiraClient = void 0;
|
|
17
|
+
const common_1 = require("@nestjs/common");
|
|
18
|
+
const core_1 = require("@venturialstd/core");
|
|
19
|
+
const axios_1 = __importDefault(require("axios"));
|
|
20
|
+
let JiraClient = JiraClient_1 = class JiraClient {
|
|
21
|
+
logger;
|
|
22
|
+
settingsService;
|
|
23
|
+
apiClient;
|
|
24
|
+
constructor(logger, settingsService) {
|
|
25
|
+
this.logger = logger;
|
|
26
|
+
this.settingsService = settingsService;
|
|
27
|
+
this.logger.setContext(JiraClient_1.name);
|
|
28
|
+
}
|
|
29
|
+
async initializeClient() {
|
|
30
|
+
const jiraToken = process.env.JIRA_KEY;
|
|
31
|
+
if (!jiraToken) {
|
|
32
|
+
throw new Error('Jira token not configured');
|
|
33
|
+
}
|
|
34
|
+
this.apiClient = axios_1.default.create({
|
|
35
|
+
baseURL: 'https://venturial-io.atlassian.net/rest/api/3/',
|
|
36
|
+
headers: {
|
|
37
|
+
Authorization: `Basic ${jiraToken}`,
|
|
38
|
+
'Content-Type': 'application/json',
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
async getTicketInformation(ticketId) {
|
|
43
|
+
try {
|
|
44
|
+
await this.initializeClient();
|
|
45
|
+
ticketId = 'VL-75';
|
|
46
|
+
const ticketResponse = await this.apiClient.get(`/issue/${ticketId}`);
|
|
47
|
+
const ticketData = ticketResponse.data;
|
|
48
|
+
const description = ticketData.fields.description || 'No description available';
|
|
49
|
+
const commentsResponse = await this.apiClient.get(`/issue/${ticketId}/comment`);
|
|
50
|
+
const comments = commentsResponse.data.comments || [];
|
|
51
|
+
console.log(ticketResponse);
|
|
52
|
+
console.log(commentsResponse);
|
|
53
|
+
this.logger.log(`Ticket ${ticketId} fetched successfully`);
|
|
54
|
+
return { description, comments };
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
this.logger.error(`Error fetching ticket ${ticketId}`, error);
|
|
58
|
+
throw error;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
exports.JiraClient = JiraClient;
|
|
63
|
+
exports.JiraClient = JiraClient = JiraClient_1 = __decorate([
|
|
64
|
+
(0, common_1.Injectable)(),
|
|
65
|
+
__metadata("design:paramtypes", [core_1.AppLogger,
|
|
66
|
+
core_1.SettingsService])
|
|
67
|
+
], JiraClient);
|
|
68
|
+
//# sourceMappingURL=jira.client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jira.client.js","sourceRoot":"","sources":["../../../clients/jira.client.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAgE;AAChE,kDAA6C;AAGtC,IAAM,UAAU,kBAAhB,MAAM,UAAU;IAGX;IACA;IAHF,SAAS,CAAgB;IACjC,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,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,eAAK,CAAC,MAAM,CAAC;YAC5B,OAAO,EAAE,gDAAgD;YACzD,OAAO,EAAE;gBACP,aAAa,EAAE,SAAS,SAAS,EAAE;gBACnC,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CAAC;IACL,CAAC;IAOD,KAAK,CAAC,oBAAoB,CAAC,QAAgB;QACzC,IAAI,CAAC;YAGH,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC9B,QAAQ,GAAG,OAAO,CAAC;YAEnB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,QAAQ,EAAE,CAAC,CAAC;YACtE,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,UAAU,QAAQ,UAAU,CAAC,CAAC;YAChF,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAC9B,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;AA1DY,gCAAU;qBAAV,UAAU;IADtB,IAAA,mBAAU,GAAE;qCAIO,gBAAS;QACA,sBAAe;GAJ/B,UAAU,CA0DtB","sourcesContent":["import { Injectable } from '@nestjs/common';\r\nimport { AppLogger, SettingsService } from '@venturialstd/core';\r\nimport axios, { AxiosInstance } from 'axios';\r\n\r\n@Injectable()\r\nexport class JiraClient {\r\n private apiClient: AxiosInstance;\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 = process.env.JIRA_KEY;\r\n if (!jiraToken) {\r\n throw new Error('Jira token not configured');\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 ${jiraToken}`, // Usa el token obtenido\r\n 'Content-Type': 'application/json',\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\r\n await this.initializeClient();\r\n ticketId = 'VL-75';\r\n // Obtiene los detalles del ticket\r\n const ticketResponse = await this.apiClient.get(`/issue/${ticketId}`);\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 console.log(ticketResponse);\r\n console.log(commentsResponse);\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"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jira.constants.js","sourceRoot":"","sources":["../../../constants/jira.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG;IAC/B,sBAAsB,EAAE,+BAA+B;CACxD,CAAC","sourcesContent":["export const JIRA_SETTING_KEYS = {\r\n CREDENTIALS_JIRA_TOKEN: 'GLOBAL:JIRA:GENERAL:API_TOKEN',\r\n};\r\n"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export declare class SlackEventDto {
|
|
2
|
+
type: string;
|
|
3
|
+
user?: string;
|
|
4
|
+
text?: string;
|
|
5
|
+
channel: string;
|
|
6
|
+
ts: string;
|
|
7
|
+
thread_ts?: string;
|
|
8
|
+
bot_id?: string;
|
|
9
|
+
client_msg_id?: string;
|
|
10
|
+
team?: string;
|
|
11
|
+
event_ts?: string;
|
|
12
|
+
channel_type?: string;
|
|
13
|
+
blocks?: unknown[];
|
|
14
|
+
}
|
|
15
|
+
export declare class SlackWebhookEventDto {
|
|
16
|
+
type: string;
|
|
17
|
+
challenge?: string;
|
|
18
|
+
token?: string;
|
|
19
|
+
team_id?: string;
|
|
20
|
+
event?: SlackEventDto;
|
|
21
|
+
}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.SlackWebhookEventDto = exports.SlackEventDto = void 0;
|
|
13
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
14
|
+
const class_transformer_1 = require("class-transformer");
|
|
15
|
+
const class_validator_1 = require("class-validator");
|
|
16
|
+
class SlackEventDto {
|
|
17
|
+
type;
|
|
18
|
+
user;
|
|
19
|
+
text;
|
|
20
|
+
channel;
|
|
21
|
+
ts;
|
|
22
|
+
thread_ts;
|
|
23
|
+
bot_id;
|
|
24
|
+
client_msg_id;
|
|
25
|
+
team;
|
|
26
|
+
event_ts;
|
|
27
|
+
channel_type;
|
|
28
|
+
blocks;
|
|
29
|
+
}
|
|
30
|
+
exports.SlackEventDto = SlackEventDto;
|
|
31
|
+
__decorate([
|
|
32
|
+
(0, swagger_1.ApiProperty)(),
|
|
33
|
+
(0, class_validator_1.IsString)(),
|
|
34
|
+
__metadata("design:type", String)
|
|
35
|
+
], SlackEventDto.prototype, "type", void 0);
|
|
36
|
+
__decorate([
|
|
37
|
+
(0, swagger_1.ApiPropertyOptional)(),
|
|
38
|
+
(0, class_validator_1.IsOptional)(),
|
|
39
|
+
(0, class_validator_1.IsString)(),
|
|
40
|
+
__metadata("design:type", String)
|
|
41
|
+
], SlackEventDto.prototype, "user", void 0);
|
|
42
|
+
__decorate([
|
|
43
|
+
(0, swagger_1.ApiPropertyOptional)(),
|
|
44
|
+
(0, class_validator_1.IsOptional)(),
|
|
45
|
+
(0, class_validator_1.IsString)(),
|
|
46
|
+
__metadata("design:type", String)
|
|
47
|
+
], SlackEventDto.prototype, "text", void 0);
|
|
48
|
+
__decorate([
|
|
49
|
+
(0, swagger_1.ApiProperty)(),
|
|
50
|
+
(0, class_validator_1.IsString)(),
|
|
51
|
+
__metadata("design:type", String)
|
|
52
|
+
], SlackEventDto.prototype, "channel", void 0);
|
|
53
|
+
__decorate([
|
|
54
|
+
(0, swagger_1.ApiProperty)(),
|
|
55
|
+
(0, class_validator_1.IsString)(),
|
|
56
|
+
__metadata("design:type", String)
|
|
57
|
+
], SlackEventDto.prototype, "ts", void 0);
|
|
58
|
+
__decorate([
|
|
59
|
+
(0, swagger_1.ApiPropertyOptional)(),
|
|
60
|
+
(0, class_validator_1.IsOptional)(),
|
|
61
|
+
(0, class_validator_1.IsString)(),
|
|
62
|
+
__metadata("design:type", String)
|
|
63
|
+
], SlackEventDto.prototype, "thread_ts", void 0);
|
|
64
|
+
__decorate([
|
|
65
|
+
(0, swagger_1.ApiPropertyOptional)(),
|
|
66
|
+
(0, class_validator_1.IsOptional)(),
|
|
67
|
+
(0, class_validator_1.IsString)(),
|
|
68
|
+
__metadata("design:type", String)
|
|
69
|
+
], SlackEventDto.prototype, "bot_id", void 0);
|
|
70
|
+
__decorate([
|
|
71
|
+
(0, swagger_1.ApiPropertyOptional)(),
|
|
72
|
+
(0, class_validator_1.IsOptional)(),
|
|
73
|
+
(0, class_validator_1.IsString)(),
|
|
74
|
+
__metadata("design:type", String)
|
|
75
|
+
], SlackEventDto.prototype, "client_msg_id", void 0);
|
|
76
|
+
__decorate([
|
|
77
|
+
(0, swagger_1.ApiPropertyOptional)(),
|
|
78
|
+
(0, class_validator_1.IsOptional)(),
|
|
79
|
+
(0, class_validator_1.IsString)(),
|
|
80
|
+
__metadata("design:type", String)
|
|
81
|
+
], SlackEventDto.prototype, "team", void 0);
|
|
82
|
+
__decorate([
|
|
83
|
+
(0, swagger_1.ApiPropertyOptional)(),
|
|
84
|
+
(0, class_validator_1.IsOptional)(),
|
|
85
|
+
(0, class_validator_1.IsString)(),
|
|
86
|
+
__metadata("design:type", String)
|
|
87
|
+
], SlackEventDto.prototype, "event_ts", void 0);
|
|
88
|
+
__decorate([
|
|
89
|
+
(0, swagger_1.ApiPropertyOptional)(),
|
|
90
|
+
(0, class_validator_1.IsOptional)(),
|
|
91
|
+
(0, class_validator_1.IsString)(),
|
|
92
|
+
__metadata("design:type", String)
|
|
93
|
+
], SlackEventDto.prototype, "channel_type", void 0);
|
|
94
|
+
__decorate([
|
|
95
|
+
(0, swagger_1.ApiPropertyOptional)(),
|
|
96
|
+
(0, class_validator_1.IsOptional)(),
|
|
97
|
+
(0, class_validator_1.IsArray)(),
|
|
98
|
+
__metadata("design:type", Array)
|
|
99
|
+
], SlackEventDto.prototype, "blocks", void 0);
|
|
100
|
+
class SlackWebhookEventDto {
|
|
101
|
+
type;
|
|
102
|
+
challenge;
|
|
103
|
+
token;
|
|
104
|
+
team_id;
|
|
105
|
+
event;
|
|
106
|
+
}
|
|
107
|
+
exports.SlackWebhookEventDto = SlackWebhookEventDto;
|
|
108
|
+
__decorate([
|
|
109
|
+
(0, swagger_1.ApiProperty)(),
|
|
110
|
+
(0, class_validator_1.IsString)(),
|
|
111
|
+
__metadata("design:type", String)
|
|
112
|
+
], SlackWebhookEventDto.prototype, "type", void 0);
|
|
113
|
+
__decorate([
|
|
114
|
+
(0, swagger_1.ApiPropertyOptional)(),
|
|
115
|
+
(0, class_validator_1.IsOptional)(),
|
|
116
|
+
(0, class_validator_1.IsString)(),
|
|
117
|
+
__metadata("design:type", String)
|
|
118
|
+
], SlackWebhookEventDto.prototype, "challenge", void 0);
|
|
119
|
+
__decorate([
|
|
120
|
+
(0, swagger_1.ApiPropertyOptional)(),
|
|
121
|
+
(0, class_validator_1.IsOptional)(),
|
|
122
|
+
(0, class_validator_1.IsString)(),
|
|
123
|
+
__metadata("design:type", String)
|
|
124
|
+
], SlackWebhookEventDto.prototype, "token", void 0);
|
|
125
|
+
__decorate([
|
|
126
|
+
(0, swagger_1.ApiPropertyOptional)(),
|
|
127
|
+
(0, class_validator_1.IsOptional)(),
|
|
128
|
+
(0, class_validator_1.IsString)(),
|
|
129
|
+
__metadata("design:type", String)
|
|
130
|
+
], SlackWebhookEventDto.prototype, "team_id", void 0);
|
|
131
|
+
__decorate([
|
|
132
|
+
(0, swagger_1.ApiPropertyOptional)(),
|
|
133
|
+
(0, class_validator_1.IsOptional)(),
|
|
134
|
+
(0, class_validator_1.IsObject)(),
|
|
135
|
+
(0, class_validator_1.ValidateNested)(),
|
|
136
|
+
(0, class_transformer_1.Type)(() => SlackEventDto),
|
|
137
|
+
__metadata("design:type", SlackEventDto)
|
|
138
|
+
], SlackWebhookEventDto.prototype, "event", void 0);
|
|
139
|
+
//# sourceMappingURL=jira-webhook-event.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jira-webhook-event.dto.js","sourceRoot":"","sources":["../../../dtos/jira-webhook-event.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAmE;AACnE,yDAAyC;AACzC,qDAA0F;AAE1F,MAAa,aAAa;IAGxB,IAAI,CAAS;IAKb,IAAI,CAAU;IAKd,IAAI,CAAU;IAId,OAAO,CAAS;IAIhB,EAAE,CAAS;IAKX,SAAS,CAAU;IAKnB,MAAM,CAAU;IAKhB,aAAa,CAAU;IAKvB,IAAI,CAAU;IAKd,QAAQ,CAAU;IAKlB,YAAY,CAAU;IAKtB,MAAM,CAAa;CACpB;AAzDD,sCAyDC;AAtDC;IAFC,IAAA,qBAAW,GAAE;IACb,IAAA,0BAAQ,GAAE;;2CACE;AAKb;IAHC,IAAA,6BAAmB,GAAE;IACrB,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;2CACG;AAKd;IAHC,IAAA,6BAAmB,GAAE;IACrB,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;2CACG;AAId;IAFC,IAAA,qBAAW,GAAE;IACb,IAAA,0BAAQ,GAAE;;8CACK;AAIhB;IAFC,IAAA,qBAAW,GAAE;IACb,IAAA,0BAAQ,GAAE;;yCACA;AAKX;IAHC,IAAA,6BAAmB,GAAE;IACrB,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;gDACQ;AAKnB;IAHC,IAAA,6BAAmB,GAAE;IACrB,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;6CACK;AAKhB;IAHC,IAAA,6BAAmB,GAAE;IACrB,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;oDACY;AAKvB;IAHC,IAAA,6BAAmB,GAAE;IACrB,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;2CACG;AAKd;IAHC,IAAA,6BAAmB,GAAE;IACrB,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;+CACO;AAKlB;IAHC,IAAA,6BAAmB,GAAE;IACrB,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;mDACW;AAKtB;IAHC,IAAA,6BAAmB,GAAE;IACrB,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;;6CACS;AAGrB,MAAa,oBAAoB;IAG/B,IAAI,CAAS;IAKb,SAAS,CAAU;IAKnB,KAAK,CAAU;IAKf,OAAO,CAAU;IAOjB,KAAK,CAAiB;CACvB;AA1BD,oDA0BC;AAvBC;IAFC,IAAA,qBAAW,GAAE;IACb,IAAA,0BAAQ,GAAE;;kDACE;AAKb;IAHC,IAAA,6BAAmB,GAAE;IACrB,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;uDACQ;AAKnB;IAHC,IAAA,6BAAmB,GAAE;IACrB,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;mDACI;AAKf;IAHC,IAAA,6BAAmB,GAAE;IACrB,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;qDACM;AAOjB;IALC,IAAA,6BAAmB,GAAE;IACrB,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,aAAa,CAAC;8BAClB,aAAa;mDAAC","sourcesContent":["import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\r\nimport { Type } from 'class-transformer';\r\nimport { IsArray, IsObject, IsOptional, IsString, ValidateNested } from 'class-validator';\r\n\r\nexport class SlackEventDto {\r\n @ApiProperty()\r\n @IsString()\r\n type: string;\r\n\r\n @ApiPropertyOptional()\r\n @IsOptional()\r\n @IsString()\r\n user?: string;\r\n\r\n @ApiPropertyOptional()\r\n @IsOptional()\r\n @IsString()\r\n text?: string;\r\n\r\n @ApiProperty()\r\n @IsString()\r\n channel: string;\r\n\r\n @ApiProperty()\r\n @IsString()\r\n ts: string;\r\n\r\n @ApiPropertyOptional()\r\n @IsOptional()\r\n @IsString()\r\n thread_ts?: string;\r\n\r\n @ApiPropertyOptional()\r\n @IsOptional()\r\n @IsString()\r\n bot_id?: string;\r\n\r\n @ApiPropertyOptional()\r\n @IsOptional()\r\n @IsString()\r\n client_msg_id?: string;\r\n\r\n @ApiPropertyOptional()\r\n @IsOptional()\r\n @IsString()\r\n team?: string;\r\n\r\n @ApiPropertyOptional()\r\n @IsOptional()\r\n @IsString()\r\n event_ts?: string;\r\n\r\n @ApiPropertyOptional()\r\n @IsOptional()\r\n @IsString()\r\n channel_type?: string;\r\n\r\n @ApiPropertyOptional()\r\n @IsOptional()\r\n @IsArray()\r\n blocks?: unknown[];\r\n}\r\n\r\nexport class SlackWebhookEventDto {\r\n @ApiProperty()\r\n @IsString()\r\n type: string;\r\n\r\n @ApiPropertyOptional()\r\n @IsOptional()\r\n @IsString()\r\n challenge?: string;\r\n\r\n @ApiPropertyOptional()\r\n @IsOptional()\r\n @IsString()\r\n token?: string;\r\n\r\n @ApiPropertyOptional()\r\n @IsOptional()\r\n @IsString()\r\n team_id?: string;\r\n\r\n @ApiPropertyOptional()\r\n @IsOptional()\r\n @IsObject()\r\n @ValidateNested()\r\n @Type(() => SlackEventDto)\r\n event?: SlackEventDto;\r\n}\r\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JiraIssueService = exports.JiraModule = exports.JiraClient = void 0;
|
|
4
|
+
var jira_client_1 = require("./clients/jira.client");
|
|
5
|
+
Object.defineProperty(exports, "JiraClient", { enumerable: true, get: function () { return jira_client_1.JiraClient; } });
|
|
6
|
+
var jira_module_1 = require("./jira.module");
|
|
7
|
+
Object.defineProperty(exports, "JiraModule", { enumerable: true, get: function () { return jira_module_1.JiraModule; } });
|
|
8
|
+
var jira_issue_service_1 = require("./services/jira-issue.service");
|
|
9
|
+
Object.defineProperty(exports, "JiraIssueService", { enumerable: true, get: function () { return jira_issue_service_1.JiraIssueService; } });
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":";;;AAAA,qDAAmD;AAA1C,yGAAA,UAAU,OAAA;AACnB,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AACnB,oEAAiE;AAAxD,sHAAA,gBAAgB,OAAA","sourcesContent":["export { JiraClient } from './clients/jira.client';\r\nexport { JiraModule } from './jira.module';\r\nexport { JiraIssueService } from './services/jira-issue.service';\r\n"]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.JiraModule = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const event_emitter_1 = require("@nestjs/event-emitter");
|
|
12
|
+
const core_1 = require("@venturialstd/core");
|
|
13
|
+
const jira_client_1 = require("./clients/jira.client");
|
|
14
|
+
const jira_issue_service_1 = require("./services/jira-issue.service");
|
|
15
|
+
let JiraModule = class JiraModule {
|
|
16
|
+
};
|
|
17
|
+
exports.JiraModule = JiraModule;
|
|
18
|
+
exports.JiraModule = JiraModule = __decorate([
|
|
19
|
+
(0, common_1.Module)({
|
|
20
|
+
imports: [event_emitter_1.EventEmitterModule.forRoot(), core_1.SettingsModule],
|
|
21
|
+
providers: [core_1.AppLogger, jira_client_1.JiraClient, jira_issue_service_1.JiraIssueService],
|
|
22
|
+
})
|
|
23
|
+
], JiraModule);
|
|
24
|
+
//# sourceMappingURL=jira.module.js.map
|
|
@@ -0,0 +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"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { AppLogger } from '@venturialstd/core';
|
|
2
|
+
import { JiraClient } from '../clients/jira.client';
|
|
3
|
+
export declare class JiraIssueService {
|
|
4
|
+
private readonly jiraClient;
|
|
5
|
+
private logger;
|
|
6
|
+
constructor(jiraClient: JiraClient, logger: AppLogger);
|
|
7
|
+
getTicketInformation(ticketId: string): Promise<{
|
|
8
|
+
description: string;
|
|
9
|
+
comments: any[];
|
|
10
|
+
}>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var JiraIssueService_1;
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.JiraIssueService = void 0;
|
|
14
|
+
const common_1 = require("@nestjs/common");
|
|
15
|
+
const core_1 = require("@venturialstd/core");
|
|
16
|
+
const jira_client_1 = require("../clients/jira.client");
|
|
17
|
+
let JiraIssueService = JiraIssueService_1 = class JiraIssueService {
|
|
18
|
+
jiraClient;
|
|
19
|
+
logger;
|
|
20
|
+
constructor(jiraClient, logger) {
|
|
21
|
+
this.jiraClient = jiraClient;
|
|
22
|
+
this.logger = logger;
|
|
23
|
+
this.logger.setContext(JiraIssueService_1.name);
|
|
24
|
+
}
|
|
25
|
+
async getTicketInformation(ticketId) {
|
|
26
|
+
try {
|
|
27
|
+
this.logger.log(`Fetching ticket information for ${ticketId}`);
|
|
28
|
+
return await this.jiraClient.getTicketInformation(ticketId);
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
this.logger.error(`Error fetching ticket information for ${ticketId}`, error);
|
|
32
|
+
throw error;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
exports.JiraIssueService = JiraIssueService;
|
|
37
|
+
exports.JiraIssueService = JiraIssueService = JiraIssueService_1 = __decorate([
|
|
38
|
+
(0, common_1.Injectable)(),
|
|
39
|
+
__metadata("design:paramtypes", [jira_client_1.JiraClient,
|
|
40
|
+
core_1.AppLogger])
|
|
41
|
+
], JiraIssueService);
|
|
42
|
+
//# sourceMappingURL=jira-issue.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jira-issue.service.js","sourceRoot":"","sources":["../../../services/jira-issue.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAA+C;AAE/C,wDAAoD;AAG7C,IAAM,gBAAgB,wBAAtB,MAAM,gBAAgB;IAER;IACT;IAFV,YACmB,UAAsB,EAC/B,MAAiB;QADR,eAAU,GAAV,UAAU,CAAY;QAC/B,WAAM,GAAN,MAAM,CAAW;QAEzB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,kBAAgB,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,QAAgB;QACzC,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mCAAmC,QAAQ,EAAE,CAAC,CAAC;YAC/D,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAC9D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,QAAQ,EAAE,EAAE,KAAc,CAAC,CAAC;YACvF,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF,CAAA;AAjBY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;qCAGoB,wBAAU;QACvB,gBAAS;GAHhB,gBAAgB,CAiB5B","sourcesContent":["import { Injectable } from '@nestjs/common';\r\nimport { AppLogger } from '@venturialstd/core';\r\n\r\nimport { JiraClient } from '../clients/jira.client';\r\n\r\n@Injectable()\r\nexport class JiraIssueService {\r\n constructor(\r\n private readonly jiraClient: JiraClient,\r\n private logger: AppLogger,\r\n ) {\r\n this.logger.setContext(JiraIssueService.name);\r\n }\r\n\r\n async getTicketInformation(ticketId: string): Promise<{ description: string; comments: any[] }> {\r\n try {\r\n this.logger.log(`Fetching ticket information for ${ticketId}`);\r\n return await this.jiraClient.getTicketInformation(ticketId);\r\n } catch (error) {\r\n this.logger.error(`Error fetching ticket information for ${ticketId}`, error as Error);\r\n throw error;\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SETTINGS = void 0;
|
|
4
|
+
const core_1 = require("@venturialstd/core");
|
|
5
|
+
exports.SETTINGS = [
|
|
6
|
+
{
|
|
7
|
+
scope: 'GLOBAL',
|
|
8
|
+
module: 'JIRA',
|
|
9
|
+
section: 'GENERAL',
|
|
10
|
+
key: 'ENABLED',
|
|
11
|
+
label: 'Enabled',
|
|
12
|
+
description: 'Enable or disable the module',
|
|
13
|
+
type: core_1.SETTINGS_TYPE.BOOLEAN,
|
|
14
|
+
value: '',
|
|
15
|
+
options: null,
|
|
16
|
+
sortOrder: 1,
|
|
17
|
+
},
|
|
18
|
+
];
|
|
19
|
+
//# sourceMappingURL=jira-settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jira-settings.js","sourceRoot":"","sources":["../../../settings/jira-settings.ts"],"names":[],"mappings":";;;AAAA,6CAA6D;AAEhD,QAAA,QAAQ,GAAuD;IAC1E;QACE,KAAK,EAAE,QAAQ;QACf,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,SAAS;QAClB,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,8BAA8B;QAC3C,IAAI,EAAE,oBAAa,CAAC,OAAO;QAC3B,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,CAAC;KACb;CACF,CAAC","sourcesContent":["import { Settings, SETTINGS_TYPE } from '@venturialstd/core';\n\nexport const SETTINGS: Omit<Settings, 'id' | 'createdAt' | 'updatedAt'>[] = [\n {\n scope: 'GLOBAL',\n module: 'JIRA',\n section: 'GENERAL',\n key: 'ENABLED',\n label: 'Enabled',\n description: 'Enable or disable the module',\n type: SETTINGS_TYPE.BOOLEAN,\n value: '',\n options: null,\n sortOrder: 1,\n },\n];\n"]}
|