slack file add

This commit is contained in:
leedongmyung 2025-06-11 10:21:06 +09:00
parent da1f7b7907
commit 622a0465d1
4 changed files with 78 additions and 0 deletions

View file

@ -80,6 +80,7 @@ enum CommandType {
FileInfo,
DirectoryCreate,
Slack,
SlackFile,
SlackBuild,
StringSub,
StringReplace,
@ -154,6 +155,7 @@ abstract class Command {
CommandType.FileInfo: () => FileInfo(),
CommandType.DirectoryCreate: () => DirectoryCreate(),
CommandType.Slack: () => Slack(),
CommandType.SlackFile: () => SlackFile(),
CommandType.SlackBuild: () => SlackBuild(),
CommandType.StringSub: () => StringSub(),
CommandType.StringReplace: () => StringReplace(),

View file

@ -2,6 +2,7 @@
import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'package:dart_framework/utils/slack/slack_data.dart';
import 'package:dart_framework/utils/system_util.dart';
@ -9,6 +10,7 @@ import 'package:oto_cli/oto/commands/command.dart';
import 'package:oto_cli/oto/data/command_data.dart';
import 'package:color/color.dart';
import 'package:dart_framework/utils/slack/slack_sender.dart';
import 'package:dart_framework/utils/slack/slack_data.dart' as slackData;
class Slack extends Command {
@override
@ -45,6 +47,26 @@ class Slack extends Command {
}
}
class SlackFile extends Command {
Function? get error => null;
@override
Future execute(DataCommand command) async {
var data = DataSlackFile.fromJson(getParam(command));
var slackFile = slackData.SlackFile();
slackFile.title = data.title;
slackFile.initial_comment = data.initialComment;
slackFile.file = File(data.filePath);
slackFile.fileName = data.fileName;
slackFile.mimeType = data.mimeType;
var sender = SlackSender(data.token);
await sender.sendFile(data.channel, slackFile);
return await complete(0, command);
}
}
class SlackBuild extends Command {
@override
Future execute(DataCommand command) async {

View file

@ -583,6 +583,26 @@ class DataSlackSender extends DataParam {
Map<String, dynamic> toJson() => _$DataSlackSenderToJson(this);
}
//TestflightUpload
@JsonSerializable()
class DataSlackFile extends DataParam {
DataSlackFile();
late String token;
late String channel;
late String filePath;
late String? title;
late String? initialComment;
late String? fileName;
late String? mimeType;
factory DataSlackFile.fromJson(Map<String, dynamic> json) =>
_$DataSlackFileFromJson(json);
@override
Map<String, dynamic> toJson() => _$DataSlackFileToJson(this);
}
//Slack Build
@JsonSerializable()
class DataSlackBuild extends DataSlackSender {

View file

@ -86,6 +86,7 @@ const _$CommandTypeEnumMap = {
CommandType.FileInfo: 'FileInfo',
CommandType.DirectoryCreate: 'DirectoryCreate',
CommandType.Slack: 'Slack',
CommandType.SlackFile: 'SlackFile',
CommandType.SlackBuild: 'SlackBuild',
CommandType.StringSub: 'StringSub',
CommandType.StringReplace: 'StringReplace',
@ -1023,6 +1024,39 @@ Map<String, dynamic> _$DataSlackSenderToJson(DataSlackSender instance) =>
'idMap': instance.idMap,
};
DataSlackFile _$DataSlackFileFromJson(Map<String, dynamic> json) =>
DataSlackFile()
..workspace = json['workspace'] as String?
..passExitCodes = (json['passExitCodes'] as List<dynamic>?)
?.map((e) => (e as num).toInt())
.toList()
..setResult = json['setResult'] as String?
..setExitCode = json['setExitCode'] as String?
..showPrint = json['showPrint'] as bool?
..token = json['token'] as String
..channel = json['channel'] as String
..filePath = json['filePath'] as String
..title = json['title'] as String?
..initialComment = json['initialComment'] as String?
..fileName = json['fileName'] as String?
..mimeType = json['mimeType'] as String?;
Map<String, dynamic> _$DataSlackFileToJson(DataSlackFile instance) =>
<String, dynamic>{
'workspace': instance.workspace,
'passExitCodes': instance.passExitCodes,
'setResult': instance.setResult,
'setExitCode': instance.setExitCode,
'showPrint': instance.showPrint,
'token': instance.token,
'channel': instance.channel,
'filePath': instance.filePath,
'title': instance.title,
'initialComment': instance.initialComment,
'fileName': instance.fileName,
'mimeType': instance.mimeType,
};
DataSlackBuild _$DataSlackBuildFromJson(Map<String, dynamic> json) =>
DataSlackBuild()
..workspace = json['workspace'] as String?