This commit is contained in:
Sacha Arbonel
2022-08-25 17:36:27 +02:00
committed by Salvatore Giordano
parent c9281e0c89
commit 570e6e05cf
11 changed files with 72 additions and 54 deletions
+2 -2
View File
@@ -54,11 +54,11 @@ scripts:
description: Build all generated files for Dart & Flutter packages in this project. description: Build all generated files for Dart & Flutter packages in this project.
generate:dart: generate:dart:
run: melos exec -c 1 --depends-on="build_runner" --no-flutter -- "dart pub run build_runner build --delete-conflicting-outputs --enable-experiment=super-parameters,enhanced-enums" run: melos exec -c 1 --depends-on="build_runner" --no-flutter -- "dart run build_runner build --delete-conflicting-outputs --enable-experiment=super-parameters,enhanced-enums"
description: Build all generated files for Dart packages in this project. description: Build all generated files for Dart packages in this project.
generate:flutter: generate:flutter:
run: melos exec -c 1 --depends-on="build_runner" --flutter -- "flutter pub run build_runner build --delete-conflicting-outputs --enable-experiment=super-parameters,enhanced-enums" run: melos exec -c 1 --depends-on="build_runner" --flutter -- "flutter run build_runner build --delete-conflicting-outputs --enable-experiment=super-parameters,enhanced-enums"
description: Build all generated files for Flutter packages in this project. description: Build all generated files for Flutter packages in this project.
test:all: test:all:
@@ -590,12 +590,20 @@ class StreamChatClient {
Future<CallTokenPayload> getCallToken(String callId) async => Future<CallTokenPayload> getCallToken(String callId) async =>
_chatApi.call.getCallToken(callId); _chatApi.call.getCallToken(callId);
Future<CreateCallPayload> createCall( Future<CreateCallPayload> createCall({
String callId, required String callId,
String callType, required String callType,
required String channelType,
required String channelId,
Map<String, Object?>? options, Map<String, Object?>? options,
) async { }) async {
return _chatApi.call.createCall(callId, callType, options); return _chatApi.call.createCall(
callId: callId,
callType: callType,
options: options,
channelType: channelType,
channelId: channelId,
);
} }
/// Requests channels with a given query from the API. /// Requests channels with a given query from the API.
@@ -11,18 +11,28 @@ class CallApi {
Future<CallTokenPayload> getCallToken(String callId) async { Future<CallTokenPayload> getCallToken(String callId) async {
final response = await _client.post( final response = await _client.post(
'/calls/$callId', '/calls/$callId',
data: {},
); );
// return response.data;
return CallTokenPayload.fromJson(response.data); return CallTokenPayload.fromJson(response.data);
} }
Future<CreateCallPayload> createCall( Future<CreateCallPayload> createCall({
String callId, required String callId,
String callType, required String callType,
required String channelType,
required String channelId,
Map<String, Object?>? options, Map<String, Object?>? options,
) async { }) async {
final response = await _client.post( final response =
'/channels/$callType/$callId/call', await _client.post(_getChannelUrl(channelId, channelType), data: {
); 'id': '$callId',
'type': '$callType',
});
// return response.data;
return CreateCallPayload.fromJson(response.data); return CreateCallPayload.fromJson(response.data);
} }
String _getChannelUrl(String channelId, String channelType) =>
'/channels/$channelType/$channelId/call';
} }
@@ -3,11 +3,13 @@ import 'package:json_annotation/json_annotation.dart';
part 'agora_payload.g.dart'; part 'agora_payload.g.dart';
@JsonSerializable(includeIfNull: false) @JsonSerializable()
class AgoraPayload { class AgoraPayload {
final String channel; final String channel;
const AgoraPayload({required this.channel}); const AgoraPayload({required this.channel});
factory AgoraPayload.fromJson(Map<String, dynamic> json) => factory AgoraPayload.fromJson(Map<String, dynamic> json) =>
_$AgoraPayloadFromJson(json); _$AgoraPayloadFromJson(json);
Map<String, dynamic> toJson() => _$AgoraPayloadToJson(this);
} }
@@ -5,18 +5,21 @@ import 'package:json_annotation/json_annotation.dart';
part 'call_payload.g.dart'; part 'call_payload.g.dart';
@JsonSerializable(includeIfNull: false) @JsonSerializable()
class CallPayload extends Equatable { class CallPayload extends Equatable {
final String id; final String id;
final String provider; final String provider;
final AgoraPayload? agora; final AgoraPayload? agora;
final HMSPayload? hms; final HMSPayload? hms;
const CallPayload({required this.id, required this.provider, this.agora, this.hms}); const CallPayload(
{required this.id, required this.provider, this.agora, this.hms});
factory CallPayload.fromJson(Map<String, dynamic> json) => factory CallPayload.fromJson(Map<String, dynamic> json) =>
_$CallPayloadFromJson(json); _$CallPayloadFromJson(json);
Map<String, dynamic> toJson() => _$CallPayloadToJson(this);
@override @override
List<Object?> get props => [id, provider, agora, hms]; List<Object?> get props => [id, provider, agora, hms];
} }
@@ -17,19 +17,10 @@ CallPayload _$CallPayloadFromJson(Map<String, dynamic> json) => CallPayload(
: HMSPayload.fromJson(json['hms'] as Map<String, dynamic>), : HMSPayload.fromJson(json['hms'] as Map<String, dynamic>),
); );
Map<String, dynamic> _$CallPayloadToJson(CallPayload instance) { Map<String, dynamic> _$CallPayloadToJson(CallPayload instance) =>
final val = <String, dynamic>{ <String, dynamic>{
'id': instance.id, 'id': instance.id,
'provider': instance.provider, 'provider': instance.provider,
}; 'agora': instance.agora?.toJson(),
'hms': instance.hms?.toJson(),
void writeNotNull(String key, dynamic value) { };
if (value != null) {
val[key] = value;
}
}
writeNotNull('agora', instance.agora?.toJson());
writeNotNull('hms', instance.hms?.toJson());
return val;
}
@@ -5,7 +5,7 @@ import 'package:json_annotation/json_annotation.dart';
part 'call_token_payload.g.dart'; part 'call_token_payload.g.dart';
@JsonSerializable(includeIfNull: false) @JsonSerializable()
class CallTokenPayload extends Equatable { class CallTokenPayload extends Equatable {
final String token; final String token;
final int? agoraUid; final int? agoraUid;
@@ -15,6 +15,9 @@ class CallTokenPayload extends Equatable {
factory CallTokenPayload.fromJson(Map<String, dynamic> json) => factory CallTokenPayload.fromJson(Map<String, dynamic> json) =>
_$CallTokenPayloadFromJson(json); _$CallTokenPayloadFromJson(json);
Map<String, dynamic> toJson() => _$CallTokenPayloadToJson(this);
@override @override
List<Object?> get props => [token, agoraAppId, agoraUid]; List<Object?> get props => [token, agoraAppId, agoraUid];
} }
@@ -13,18 +13,9 @@ CallTokenPayload _$CallTokenPayloadFromJson(Map<String, dynamic> json) =>
agoraAppId: json['agora_app_id'] as String?, agoraAppId: json['agora_app_id'] as String?,
); );
Map<String, dynamic> _$CallTokenPayloadToJson(CallTokenPayload instance) { Map<String, dynamic> _$CallTokenPayloadToJson(CallTokenPayload instance) =>
final val = <String, dynamic>{ <String, dynamic>{
'token': instance.token, 'token': instance.token,
}; 'agora_uid': instance.agoraUid,
'agora_app_id': instance.agoraAppId,
void writeNotNull(String key, dynamic value) { };
if (value != null) {
val[key] = value;
}
}
writeNotNull('agora_uid', instance.agoraUid);
writeNotNull('agora_app_id', instance.agoraAppId);
return val;
}
@@ -3,9 +3,9 @@ import 'package:stream_chat/src/core/models/call_payload.dart';
import 'package:equatable/equatable.dart'; import 'package:equatable/equatable.dart';
import 'package:json_annotation/json_annotation.dart'; import 'package:json_annotation/json_annotation.dart';
part 'create_call_payload.g.dart'; part 'create_call_payload.g.dart';
@JsonSerializable(includeIfNull: false)
@JsonSerializable()
class CreateCallPayload extends Equatable { class CreateCallPayload extends Equatable {
final CallPayload call; final CallPayload call;
const CreateCallPayload({required this.call}); const CreateCallPayload({required this.call});
@@ -13,6 +13,8 @@ class CreateCallPayload extends Equatable {
factory CreateCallPayload.fromJson(Map<String, dynamic> json) => factory CreateCallPayload.fromJson(Map<String, dynamic> json) =>
_$CreateCallPayloadFromJson(json); _$CreateCallPayloadFromJson(json);
Map<String, dynamic> toJson() => _$CreateCallPayloadToJson(this);
@override @override
List<Object?> get props => [call]; List<Object?> get props => [call];
} }
@@ -3,7 +3,7 @@ import 'package:json_annotation/json_annotation.dart';
part 'hms_payload.g.dart'; part 'hms_payload.g.dart';
@JsonSerializable(includeIfNull: false) @JsonSerializable()
class HMSPayload extends Equatable { class HMSPayload extends Equatable {
final String roomId; final String roomId;
final String roomName; final String roomName;
@@ -12,6 +12,8 @@ class HMSPayload extends Equatable {
factory HMSPayload.fromJson(Map<String, dynamic> json) => factory HMSPayload.fromJson(Map<String, dynamic> json) =>
_$HMSPayloadFromJson(json); _$HMSPayloadFromJson(json);
Map<String, dynamic> toJson() => _$HMSPayloadToJson(this);
@override @override
List<Object?> get props => [roomId, roomName]; List<Object?> get props => [roomId, roomName];
} }
@@ -15,15 +15,21 @@ export './src/core/api/responses.dart';
export './src/core/api/stream_chat_api.dart' show PushProvider; export './src/core/api/stream_chat_api.dart' show PushProvider;
export './src/core/error/error.dart'; export './src/core/error/error.dart';
export './src/core/models/action.dart'; export './src/core/models/action.dart';
export './src/core/models/agora_payload.dart';
export './src/core/models/attachment.dart'; export './src/core/models/attachment.dart';
export './src/core/models/attachment_file.dart'; export './src/core/models/attachment_file.dart';
export './src/core/models/call_payload.dart';
export './src/core/models/call_token_payload.dart';
export './src/core/models/channel_config.dart'; export './src/core/models/channel_config.dart';
export './src/core/models/channel_model.dart'; export './src/core/models/channel_model.dart';
export './src/core/models/channel_state.dart'; export './src/core/models/channel_state.dart';
export './src/core/models/command.dart'; export './src/core/models/command.dart';
export './src/core/models/create_call_payload.dart';
export './src/core/models/device.dart'; export './src/core/models/device.dart';
export './src/core/models/event.dart'; export './src/core/models/event.dart';
export './src/core/models/filter.dart' show Filter; export './src/core/models/filter.dart' show Filter;
export './src/core/models/hms_payload.dart';
export './src/core/models/hms_payload.dart';
export './src/core/models/member.dart'; export './src/core/models/member.dart';
export './src/core/models/message.dart'; export './src/core/models/message.dart';
export './src/core/models/mute.dart'; export './src/core/models/mute.dart';