bd6bb66279
* app updated * readme updated * rename base folder * update chatty's readme Co-authored-by: Neevash Ramdial <mail@neevash.dev>
39 lines
1.0 KiB
Dart
39 lines
1.0 KiB
Dart
import 'dart:io';
|
|
|
|
import 'package:stream_chatter/data/stream_api_repository.dart';
|
|
import 'package:stream_chatter/data/upload_storage_repository.dart';
|
|
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
|
|
import 'package:uuid/uuid.dart';
|
|
|
|
class CreateGroupInput {
|
|
CreateGroupInput({this.imageFile, this.name, this.members});
|
|
final File imageFile;
|
|
final String name;
|
|
final List<String> members;
|
|
}
|
|
|
|
class CreateGroupUseCase {
|
|
CreateGroupUseCase(
|
|
this._streamApiRepository,
|
|
this._uploadStorageRepository,
|
|
);
|
|
|
|
final UploadStorageRepository _uploadStorageRepository;
|
|
final StreamApiRepository _streamApiRepository;
|
|
|
|
Future<Channel> createGroup(CreateGroupInput input) async {
|
|
final channelId = Uuid().v4();
|
|
String image;
|
|
if (input.imageFile != null) {
|
|
image = await _uploadStorageRepository.uploadPhoto(input.imageFile, 'channels/$channelId');
|
|
}
|
|
final channel = await _streamApiRepository.createGroupChat(
|
|
channelId,
|
|
input.name,
|
|
input.members,
|
|
image: image,
|
|
);
|
|
return channel;
|
|
}
|
|
}
|