From 5e02a881fbab888676668391cb4f20fca1912089 Mon Sep 17 00:00:00 2001 From: "build@lguplus.co.kr" Date: Fri, 8 Dec 2023 16:26:43 +0900 Subject: [PATCH] jira add send channel --- lib/oto/commands/util/jira.dart | 62 ++++++++++++++++++-------------- lib/oto/data/command_data.dart | 4 +++ lib/oto/data/command_data.g.dart | 6 +++- slack_test.yaml | 16 ++++++--- 4 files changed, 56 insertions(+), 32 deletions(-) diff --git a/lib/oto/commands/util/jira.dart b/lib/oto/commands/util/jira.dart index faff64a..0cb378b 100644 --- a/lib/oto/commands/util/jira.dart +++ b/lib/oto/commands/util/jira.dart @@ -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 { diff --git a/lib/oto/data/command_data.dart b/lib/oto/data/command_data.dart index 1087de4..418673e 100644 --- a/lib/oto/data/command_data.dart +++ b/lib/oto/data/command_data.dart @@ -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 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 json) => _$DataJiraFromJson(json); diff --git a/lib/oto/data/command_data.g.dart b/lib/oto/data/command_data.g.dart index db3227d..311f9de 100644 --- a/lib/oto/data/command_data.g.dart +++ b/lib/oto/data/command_data.g.dart @@ -361,10 +361,12 @@ DataJira _$DataJiraFromJson(Map 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) .map((e) => DataJiraUser.fromJson(e as Map)) .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 _$DataJiraToJson(DataJira instance) => { 'workspace': instance.workspace, @@ -372,8 +374,10 @@ Map _$DataJiraToJson(DataJira instance) => { '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 json) => DataJiraUser() diff --git a/slack_test.yaml b/slack_test.yaml index 591c9fc..a6713a9 100644 --- a/slack_test.yaml +++ b/slack_test.yaml @@ -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: + return-slack-data: + return-slack-channel: - command: Slack - id: slack + id: slackUser param: token: xoxb-3923712524596-5927868822833-amGkCRXlwX33LmgVF1dmeMZ5 - property: + property: +- command: Slack + id: slackChannel + param: + token: xoxb-3923712524596-5927868822833-amGkCRXlwX33LmgVF1dmeMZ5 + property: \ No newline at end of file