jira add send channel

This commit is contained in:
build@lguplus.co.kr 2023-12-08 16:26:43 +09:00
parent 2d54694c1d
commit 5e02a881fb
4 changed files with 56 additions and 32 deletions

View file

@ -1,4 +1,6 @@
// ignore_for_file: prefer_function_declarations_over_variables
import 'dart:convert';
import 'package:dart_framework/utils/slack/slack_data.dart';
@ -45,38 +47,44 @@ class Jira extends Command {
if(arr != null && arr.isNotEmpty)
{
var browseUrl = 'https://${data.domain}/browse/${data.issue}';
var slackData = DataSlack(slackID);
DataSlack Function(String) getData = (channel) {
var slackData = DataSlack(channel);
slackData.attachments = [];
var attachment = SlackAttachment();
slackData.blocks = [];
var blockSection = SlackBlockSection();
blockSection.text = SlackBlockText();
blockSection.text!.text = ':jira: 새 Jira 업무가 할당되었습니다.';
slackData.blocks!.add(blockSection);
slackData.attachments = [];
var attachment = SlackAttachment();
slackData.blocks = [];
var blockSection = SlackBlockSection();
blockSection.text = SlackBlockText();
blockSection.text!.text = ':jira: 새 Jira 업무가 할당되었습니다.';
slackData.blocks!.add(blockSection);
attachment.blocks = [];
attachment.blocks = [];
blockSection = SlackBlockSection();
blockSection.text = SlackBlockText();
blockSection.text!.type = SlackTextType.mrkdwn;
blockSection.text!.text = '*<$browseUrl|${data.issue}>*';
attachment.blocks!.add(blockSection);
blockSection = SlackBlockSection();
blockSection.text = SlackBlockText();
blockSection.text!.type = SlackTextType.mrkdwn;
blockSection.text!.text = '*<$browseUrl|${data.issue}>*';
attachment.blocks!.add(blockSection);
blockSection = SlackBlockSection();
blockSection.text = SlackBlockText();
blockSection.text!.text = arr.first.text;
blockSection.accessory = SlackAccessory();
blockSection.accessory!.type = SlackActionType.button;
blockSection.accessory!.url = browseUrl;
blockSection.accessory!.text = SlackBlockText();
blockSection.accessory!.text!.type = SlackTextType.plain_text;
blockSection.accessory!.text!.text = 'Open';
attachment.blocks!.add(blockSection);
slackData.attachments!.add(attachment);
blockSection = SlackBlockSection();
blockSection.text = SlackBlockText();
blockSection.text!.text = arr!.first.text;
blockSection.accessory = SlackAccessory();
blockSection.accessory!.type = SlackActionType.button;
blockSection.accessory!.url = browseUrl;
blockSection.accessory!.text = SlackBlockText();
blockSection.accessory!.text!.type = SlackTextType.plain_text;
blockSection.accessory!.text!.text = 'Open';
attachment.blocks!.add(blockSection);
slackData.attachments!.add(attachment);
return slackData;
};
setReturn(data.return_slack_data, getData(slackID));
setReturn(data.return_slack_data, slackData);
if(data.sub_channel != null) {
setReturn(data.return_slack_channel, getData(data.sub_channel!));
}
}
}
} else {

View file

@ -303,9 +303,13 @@ class DataJira extends DataParam {
late String token;
late String domain;
late String issue;
@JsonKey(name: 'sub-channel')
late String? sub_channel;
late List<DataJiraUser> users;
@JsonKey(name: 'return-slack-data')
late String return_slack_data;
@JsonKey(name: 'return-slack-channel')
late String return_slack_channel;
factory DataJira.fromJson(Map<String, dynamic> json) =>
_$DataJiraFromJson(json);

View file

@ -361,10 +361,12 @@ DataJira _$DataJiraFromJson(Map<String, dynamic> json) => DataJira()
..token = json['token'] as String
..domain = json['domain'] as String
..issue = json['issue'] as String
..sub_channel = json['sub-channel'] as String?
..users = (json['users'] as List<dynamic>)
.map((e) => DataJiraUser.fromJson(e as Map<String, dynamic>))
.toList()
..return_slack_data = json['return-slack-data'] as String;
..return_slack_data = json['return-slack-data'] as String
..return_slack_channel = json['return-slack-channel'] as String;
Map<String, dynamic> _$DataJiraToJson(DataJira instance) => <String, dynamic>{
'workspace': instance.workspace,
@ -372,8 +374,10 @@ Map<String, dynamic> _$DataJiraToJson(DataJira instance) => <String, dynamic>{
'token': instance.token,
'domain': instance.domain,
'issue': instance.issue,
'sub-channel': instance.sub_channel,
'users': instance.users,
'return-slack-data': instance.return_slack_data,
'return-slack-channel': instance.return_slack_channel,
};
DataJiraUser _$DataJiraUserFromJson(Map<String, dynamic> json) => DataJiraUser()

View file

@ -6,7 +6,8 @@ pieline:
id: main
workflow:
- exe: jira
- exe: slack
- exe: slackUser
- exe: slackChannel
commands:
- command: Jira
@ -16,14 +17,21 @@ commands:
token: ATATT3xFfGF0mklis_51fqVtxqIatXsuUoOsgu6HXdWXh6nTnQOE964iSZnh0QhgUFZejaljlqsZVBA6OlG8hg74lnmyYKPB7M2Et2mAq3TsvvQskT6VwnG4mGXQ1ff-KIhPvfMvGmGzrQ7UeefC5muJusEcmy1nknxZC8CK4OhYQjAc07GnRmg=B6CBDA6F
domain: lgu-cto.atlassian.net
issue: M3-1
sub-channel: build-test
users:
- mail: leedongmyung@lguplus.co.kr
slackID: U05A94D57RS
- mail: sunmikk@lguplus.co.kr
id: U03SNLHMMAB
return-slack-data: <!property.slack>
return-slack-data: <!property.slackUser>
return-slack-channel: <!property.slackChannel>
- command: Slack
id: slack
id: slackUser
param:
token: xoxb-3923712524596-5927868822833-amGkCRXlwX33LmgVF1dmeMZ5
property: <!property.slack>
property: <!property.slackUser>
- command: Slack
id: slackChannel
param:
token: xoxb-3923712524596-5927868822833-amGkCRXlwX33LmgVF1dmeMZ5
property: <!property.slackChannel>