diff --git a/lib/oto/commands/util/slack.dart b/lib/oto/commands/util/slack.dart index 00b71c4..51858d2 100644 --- a/lib/oto/commands/util/slack.dart +++ b/lib/oto/commands/util/slack.dart @@ -18,19 +18,15 @@ class Slack extends Command { if (data.property != null) { var value = data.property as DataSlack?; if (value != null) { - await sender.sendData(value); - } - else - { + await sender.sendData(value); + } else { throw Exception('The property is null.'); } - } - else if(data.message != null) - { + } else if(data.message != null) { await sender.send(jsonEncode(data.message)); - } - else - { + } else if(data.messageJson != null) { + await sender.send(data.messageJson!); + } else { throw Exception('property or message field should not be null'); } diff --git a/lib/oto/commands/util/string_util.dart b/lib/oto/commands/util/string_util.dart index 2796f98..601a73a 100644 --- a/lib/oto/commands/util/string_util.dart +++ b/lib/oto/commands/util/string_util.dart @@ -53,11 +53,12 @@ class StringReplacePattern extends Command { Future execute(DataCommand command) async { var data = DataStringReplacePattern.fromJson(getParam(command)); + var startAt = data.startAt ?? 0; var text = data.text; var value = data.value; var exitCode = 0; - var start = text.indexOf(data.startPattern, data.startAt); + var start = text.indexOf(data.startPattern, startAt); var end = text.indexOf(data.endPattern, start); text = text.replaceRange(start, end + data.endPattern.length, value); @@ -72,9 +73,10 @@ class StringIndex extends Command { Future execute(DataCommand command) async { var data = DataStringIndex.fromJson(getParam(command)); + var startAt = data.startAt ?? 0; var text = data.text; var exitCode = 0; - var index = text.indexOf(data.value); + var index = text.indexOf(data.value, startAt); await setProperty(data.setValue, index, showPrint: data.showPrint); diff --git a/lib/oto/data/command_data.dart b/lib/oto/data/command_data.dart index 93a77c6..51becae 100644 --- a/lib/oto/data/command_data.dart +++ b/lib/oto/data/command_data.dart @@ -497,8 +497,9 @@ class DataSlackSender extends DataParam { DataSlackSender(); late String token; - late dynamic property; - late Map? message; + late dynamic property; //oto 내부 생성된 object의 경우 + late Map? message; //yaml로 선언된 값 + late String? messageJson; //json값으로 선언된 값 factory DataSlackSender.fromJson(Map json) => _$DataSlackSenderFromJson(json); @@ -955,7 +956,7 @@ class DataStringReplace extends DataParam { class DataStringReplacePattern extends DataParam { DataStringReplacePattern(); - int startAt = 0; + int? startAt = 0; late String startPattern; //시작 패턴 late String endPattern; //종료 패턴 late String text; //원본 텍스트 @@ -973,7 +974,7 @@ class DataStringReplacePattern extends DataParam { class DataStringIndex extends DataParam { DataStringIndex(); - int startAt = 0; + int? startAt = 0; late String text; late String value; late String setValue; diff --git a/lib/oto/data/command_data.g.dart b/lib/oto/data/command_data.g.dart index 469e613..049995d 100644 --- a/lib/oto/data/command_data.g.dart +++ b/lib/oto/data/command_data.g.dart @@ -867,7 +867,8 @@ DataSlackSender _$DataSlackSenderFromJson(Map json) => ..showPrint = json['showPrint'] as bool? ..token = json['token'] as String ..property = json['property'] - ..message = json['message'] as Map?; + ..message = json['message'] as Map? + ..messageJson = json['messageJson'] as String?; Map _$DataSlackSenderToJson(DataSlackSender instance) => { @@ -879,6 +880,7 @@ Map _$DataSlackSenderToJson(DataSlackSender instance) => 'token': instance.token, 'property': instance.property, 'message': instance.message, + 'messageJson': instance.messageJson, }; DataSlackBuild _$DataSlackBuildFromJson(Map json) => @@ -893,6 +895,7 @@ DataSlackBuild _$DataSlackBuildFromJson(Map json) => ..token = json['token'] as String ..property = json['property'] ..message = json['message'] as Map? + ..messageJson = json['messageJson'] as String? ..appName = json['appName'] as String ..type = $enumDecode(_$SlackBuildTypeEnumMap, json['type']) ..color = json['color'] as String @@ -910,6 +913,7 @@ Map _$DataSlackBuildToJson(DataSlackBuild instance) => 'token': instance.token, 'property': instance.property, 'message': instance.message, + 'messageJson': instance.messageJson, 'appName': instance.appName, 'type': _$SlackBuildTypeEnumMap[instance.type]!, 'color': instance.color, @@ -1606,7 +1610,7 @@ DataStringReplacePattern _$DataStringReplacePatternFromJson( ..setResult = json['setResult'] as String? ..setExitCode = json['setExitCode'] as String? ..showPrint = json['showPrint'] as bool? - ..startAt = (json['startAt'] as num).toInt() + ..startAt = (json['startAt'] as num?)?.toInt() ..startPattern = json['startPattern'] as String ..endPattern = json['endPattern'] as String ..text = json['text'] as String @@ -1638,7 +1642,7 @@ DataStringIndex _$DataStringIndexFromJson(Map json) => ..setResult = json['setResult'] as String? ..setExitCode = json['setExitCode'] as String? ..showPrint = json['showPrint'] as bool? - ..startAt = (json['startAt'] as num).toInt() + ..startAt = (json['startAt'] as num?)?.toInt() ..text = json['text'] as String ..value = json['value'] as String ..setValue = json['setValue'] as String;