Files
flutter-samples/chatty/lib/domain/usecases/create_group_usecase.dart
T
Diego Velásquez López bd6bb66279 Stream Chatty added as example (#21)
* app updated

* readme updated

* rename base folder

* update chatty's readme

Co-authored-by: Neevash Ramdial <mail@neevash.dev>
2021-03-10 14:53:20 -04:00

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;
}
}