slack id mapping 지원

This commit is contained in:
leedongmyung(desktop) 2025-04-03 14:22:32 +09:00
parent 61719ce813
commit bc74966f28
3 changed files with 22 additions and 2 deletions

View file

@ -25,13 +25,24 @@ class Slack extends Command {
} else if(data.message != null) {
await sender.send(jsonEncode(data.message));
} else if(data.messageJson != null) {
await sender.send(data.messageJson!);
await sender.send(getName2ID(data.messageJson!, data.idMap));
} else {
throw Exception('property or message field should not be null');
}
return simpleFuture;
}
String getName2ID(String message, Map<String, String>? idMap) {
if(idMap == null) {
return message;
} else {
for(var entry in idMap.entries) {
message = message.replaceAll('@${entry.key}', '<@${entry.value}>');
}
return message;
}
}
}
class SlackBuild extends Command {

View file

@ -500,6 +500,7 @@ class DataSlackSender extends DataParam {
late dynamic property; //oto object의
late Map<String, dynamic>? message; //yaml로
late String? messageJson; //json값으로
late Map<String, String>? idMap;
factory DataSlackSender.fromJson(Map<String, dynamic> json) =>
_$DataSlackSenderFromJson(json);

View file

@ -868,7 +868,10 @@ DataSlackSender _$DataSlackSenderFromJson(Map<String, dynamic> json) =>
..token = json['token'] as String
..property = json['property']
..message = json['message'] as Map<String, dynamic>?
..messageJson = json['messageJson'] as String?;
..messageJson = json['messageJson'] as String?
..idMap = (json['idMap'] as Map<String, dynamic>?)?.map(
(k, e) => MapEntry(k, e as String),
);
Map<String, dynamic> _$DataSlackSenderToJson(DataSlackSender instance) =>
<String, dynamic>{
@ -881,6 +884,7 @@ Map<String, dynamic> _$DataSlackSenderToJson(DataSlackSender instance) =>
'property': instance.property,
'message': instance.message,
'messageJson': instance.messageJson,
'idMap': instance.idMap,
};
DataSlackBuild _$DataSlackBuildFromJson(Map<String, dynamic> json) =>
@ -896,6 +900,9 @@ DataSlackBuild _$DataSlackBuildFromJson(Map<String, dynamic> json) =>
..property = json['property']
..message = json['message'] as Map<String, dynamic>?
..messageJson = json['messageJson'] as String?
..idMap = (json['idMap'] as Map<String, dynamic>?)?.map(
(k, e) => MapEntry(k, e as String),
)
..appName = json['appName'] as String
..type = $enumDecode(_$SlackBuildTypeEnumMap, json['type'])
..color = json['color'] as String
@ -914,6 +921,7 @@ Map<String, dynamic> _$DataSlackBuildToJson(DataSlackBuild instance) =>
'property': instance.property,
'message': instance.message,
'messageJson': instance.messageJson,
'idMap': instance.idMap,
'appName': instance.appName,
'type': _$SlackBuildTypeEnumMap[instance.type]!,
'color': instance.color,