refactor: clean up and add docs
This commit is contained in:
@@ -17,10 +17,8 @@ import 'package:stream_chat/src/core/http/stream_http_client.dart';
|
||||
import 'package:stream_chat/src/core/http/token.dart';
|
||||
import 'package:stream_chat/src/core/http/token_manager.dart';
|
||||
import 'package:stream_chat/src/core/models/attachment_file.dart';
|
||||
import 'package:stream_chat/src/core/models/call_token_payload.dart';
|
||||
import 'package:stream_chat/src/core/models/channel_model.dart';
|
||||
import 'package:stream_chat/src/core/models/channel_state.dart';
|
||||
import 'package:stream_chat/src/core/models/create_call_payload.dart';
|
||||
import 'package:stream_chat/src/core/models/event.dart';
|
||||
import 'package:stream_chat/src/core/models/filter.dart';
|
||||
import 'package:stream_chat/src/core/models/member.dart';
|
||||
@@ -587,9 +585,11 @@ class StreamChatClient {
|
||||
}
|
||||
}
|
||||
|
||||
/// Returns a token associated with the [callId].
|
||||
Future<CallTokenPayload> getCallToken(String callId) async =>
|
||||
_chatApi.call.getCallToken(callId);
|
||||
|
||||
/// Creates a new call.
|
||||
Future<CreateCallPayload> createCall({
|
||||
required String callId,
|
||||
required String callType,
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
import 'package:stream_chat/src/core/api/responses.dart';
|
||||
import 'package:stream_chat/src/core/http/stream_http_client.dart';
|
||||
import 'package:stream_chat/src/core/models/call_token_payload.dart';
|
||||
import 'package:stream_chat/src/core/models/create_call_payload.dart';
|
||||
|
||||
/// Defines the api dedicated to video call operations
|
||||
class CallApi {
|
||||
/// Initialize a new call api
|
||||
CallApi(this._client);
|
||||
|
||||
final StreamHttpClient _client;
|
||||
|
||||
/// Returns a token dedicated to the [callId]
|
||||
Future<CallTokenPayload> getCallToken(String callId) async {
|
||||
final response = await _client.post(
|
||||
'/calls/$callId',
|
||||
@@ -17,6 +18,7 @@ class CallApi {
|
||||
return CallTokenPayload.fromJson(response.data);
|
||||
}
|
||||
|
||||
/// Creates a new call
|
||||
Future<CreateCallPayload> createCall({
|
||||
required String callId,
|
||||
required String callType,
|
||||
@@ -26,8 +28,8 @@ class CallApi {
|
||||
}) async {
|
||||
final response =
|
||||
await _client.post(_getChannelUrl(channelId, channelType), data: {
|
||||
'id': '$callId',
|
||||
'type': '$callType',
|
||||
'id': callId,
|
||||
'type': callType,
|
||||
});
|
||||
// return response.data;
|
||||
return CreateCallPayload.fromJson(response.data);
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
import 'package:stream_chat/src/client/client.dart';
|
||||
import 'package:stream_chat/src/core/api/call_api.dart';
|
||||
import 'package:stream_chat/src/core/error/error.dart';
|
||||
import 'package:stream_chat/src/core/models/banned_user.dart';
|
||||
import 'package:stream_chat/src/core/models/channel_model.dart';
|
||||
@@ -495,3 +497,123 @@ class OGAttachmentResponse extends _BaseResponse {
|
||||
static OGAttachmentResponse fromJson(Map<String, dynamic> json) =>
|
||||
_$OGAttachmentResponseFromJson(json);
|
||||
}
|
||||
|
||||
/// Payload for Agora call.
|
||||
@JsonSerializable()
|
||||
class AgoraPayload {
|
||||
/// Create a new instance.
|
||||
const AgoraPayload({required this.channel});
|
||||
|
||||
/// Create a new instance from a [json].
|
||||
factory AgoraPayload.fromJson(Map<String, dynamic> json) =>
|
||||
_$AgoraPayloadFromJson(json);
|
||||
|
||||
/// The Agora channel.
|
||||
final String channel;
|
||||
|
||||
/// Convert this object to a json.
|
||||
Map<String, dynamic> toJson() => _$AgoraPayloadToJson(this);
|
||||
}
|
||||
|
||||
/// Model containing the information about a call.
|
||||
@JsonSerializable()
|
||||
class CallPayload extends Equatable {
|
||||
/// Create a new instance.
|
||||
const CallPayload({
|
||||
required this.id,
|
||||
required this.provider,
|
||||
this.agora,
|
||||
this.hms,
|
||||
});
|
||||
|
||||
/// Create a new instance from a [json].
|
||||
factory CallPayload.fromJson(Map<String, dynamic> json) =>
|
||||
_$CallPayloadFromJson(json);
|
||||
|
||||
/// The call id.
|
||||
final String id;
|
||||
|
||||
/// The call provider.
|
||||
final String provider;
|
||||
|
||||
/// The payload specific to Agora.
|
||||
final AgoraPayload? agora;
|
||||
|
||||
/// The payload specific to 100ms.
|
||||
final HMSPayload? hms;
|
||||
|
||||
/// Convert this object to a json.
|
||||
Map<String, dynamic> toJson() => _$CallPayloadToJson(this);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [id, provider, agora, hms];
|
||||
}
|
||||
|
||||
/// The response to [CallApi.getCallToken]
|
||||
@JsonSerializable()
|
||||
class CallTokenPayload extends Equatable {
|
||||
/// Create a new instance.
|
||||
const CallTokenPayload({required this.token, this.agoraUid, this.agoraAppId});
|
||||
|
||||
/// Create a new instance from a [json].
|
||||
factory CallTokenPayload.fromJson(Map<String, dynamic> json) =>
|
||||
_$CallTokenPayloadFromJson(json);
|
||||
|
||||
/// The token to use for the call.
|
||||
final String token;
|
||||
|
||||
/// The uid specific to Agora.
|
||||
final int? agoraUid;
|
||||
|
||||
/// The appId specific to 100ms.
|
||||
final String? agoraAppId;
|
||||
|
||||
/// Convert this object to a json.
|
||||
Map<String, dynamic> toJson() => _$CallTokenPayloadToJson(this);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [token, agoraAppId, agoraUid];
|
||||
}
|
||||
|
||||
/// The response to [CallApi.createCall]
|
||||
@JsonSerializable()
|
||||
class CreateCallPayload extends Equatable {
|
||||
/// Creates a new instance.
|
||||
const CreateCallPayload({required this.call});
|
||||
|
||||
/// Create a new instance from a [json].
|
||||
factory CreateCallPayload.fromJson(Map<String, dynamic> json) =>
|
||||
_$CreateCallPayloadFromJson(json);
|
||||
|
||||
/// The call object.
|
||||
final CallPayload call;
|
||||
|
||||
/// Convert this object to a json.
|
||||
Map<String, dynamic> toJson() => _$CreateCallPayloadToJson(this);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [call];
|
||||
}
|
||||
|
||||
/// Payload for 100ms call.
|
||||
@JsonSerializable()
|
||||
class HMSPayload extends Equatable {
|
||||
/// Create a new instance.
|
||||
const HMSPayload({required this.roomId, required this.roomName});
|
||||
|
||||
/// Create a new instance from a [json].
|
||||
factory HMSPayload.fromJson(Map<String, dynamic> json) =>
|
||||
_$HMSPayloadFromJson(json);
|
||||
|
||||
/// The id of the 100ms room.
|
||||
final String roomId;
|
||||
|
||||
/// The name of the 100ms room.
|
||||
final String roomName;
|
||||
|
||||
/// Convert this object to a json.
|
||||
Map<String, dynamic> toJson() => _$HMSPayloadToJson(this);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [roomId, roomName];
|
||||
}
|
||||
|
||||
@@ -297,3 +297,66 @@ OGAttachmentResponse _$OGAttachmentResponseFromJson(
|
||||
..title = json['title'] as String?
|
||||
..titleLink = json['title_link'] as String?
|
||||
..type = json['type'] as String?;
|
||||
|
||||
AgoraPayload _$AgoraPayloadFromJson(Map<String, dynamic> json) => AgoraPayload(
|
||||
channel: json['channel'] as String,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$AgoraPayloadToJson(AgoraPayload instance) =>
|
||||
<String, dynamic>{
|
||||
'channel': instance.channel,
|
||||
};
|
||||
|
||||
CallPayload _$CallPayloadFromJson(Map<String, dynamic> json) => CallPayload(
|
||||
id: json['id'] as String,
|
||||
provider: json['provider'] as String,
|
||||
agora: json['agora'] == null
|
||||
? null
|
||||
: AgoraPayload.fromJson(json['agora'] as Map<String, dynamic>),
|
||||
hms: json['hms'] == null
|
||||
? null
|
||||
: HMSPayload.fromJson(json['hms'] as Map<String, dynamic>),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$CallPayloadToJson(CallPayload instance) =>
|
||||
<String, dynamic>{
|
||||
'id': instance.id,
|
||||
'provider': instance.provider,
|
||||
'agora': instance.agora?.toJson(),
|
||||
'hms': instance.hms?.toJson(),
|
||||
};
|
||||
|
||||
CallTokenPayload _$CallTokenPayloadFromJson(Map<String, dynamic> json) =>
|
||||
CallTokenPayload(
|
||||
token: json['token'] as String,
|
||||
agoraUid: json['agora_uid'] as int?,
|
||||
agoraAppId: json['agora_app_id'] as String?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$CallTokenPayloadToJson(CallTokenPayload instance) =>
|
||||
<String, dynamic>{
|
||||
'token': instance.token,
|
||||
'agora_uid': instance.agoraUid,
|
||||
'agora_app_id': instance.agoraAppId,
|
||||
};
|
||||
|
||||
CreateCallPayload _$CreateCallPayloadFromJson(Map<String, dynamic> json) =>
|
||||
CreateCallPayload(
|
||||
call: CallPayload.fromJson(json['call'] as Map<String, dynamic>),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$CreateCallPayloadToJson(CreateCallPayload instance) =>
|
||||
<String, dynamic>{
|
||||
'call': instance.call.toJson(),
|
||||
};
|
||||
|
||||
HMSPayload _$HMSPayloadFromJson(Map<String, dynamic> json) => HMSPayload(
|
||||
roomId: json['room_id'] as String,
|
||||
roomName: json['room_name'] as String,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$HMSPayloadToJson(HMSPayload instance) =>
|
||||
<String, dynamic>{
|
||||
'room_id': instance.roomId,
|
||||
'room_name': instance.roomName,
|
||||
};
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'agora_payload.g.dart';
|
||||
|
||||
@JsonSerializable()
|
||||
class AgoraPayload {
|
||||
final String channel;
|
||||
const AgoraPayload({required this.channel});
|
||||
|
||||
factory AgoraPayload.fromJson(Map<String, dynamic> json) =>
|
||||
_$AgoraPayloadFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$AgoraPayloadToJson(this);
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'agora_payload.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
AgoraPayload _$AgoraPayloadFromJson(Map<String, dynamic> json) => AgoraPayload(
|
||||
channel: json['channel'] as String,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$AgoraPayloadToJson(AgoraPayload instance) =>
|
||||
<String, dynamic>{
|
||||
'channel': instance.channel,
|
||||
};
|
||||
@@ -1,25 +0,0 @@
|
||||
import 'package:stream_chat/src/core/models/agora_payload.dart';
|
||||
import 'package:stream_chat/src/core/models/hms_payload.dart';
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'call_payload.g.dart';
|
||||
|
||||
@JsonSerializable()
|
||||
class CallPayload extends Equatable {
|
||||
final String id;
|
||||
final String provider;
|
||||
final AgoraPayload? agora;
|
||||
final HMSPayload? hms;
|
||||
|
||||
const CallPayload(
|
||||
{required this.id, required this.provider, this.agora, this.hms});
|
||||
|
||||
factory CallPayload.fromJson(Map<String, dynamic> json) =>
|
||||
_$CallPayloadFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$CallPayloadToJson(this);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [id, provider, agora, hms];
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'call_payload.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
CallPayload _$CallPayloadFromJson(Map<String, dynamic> json) => CallPayload(
|
||||
id: json['id'] as String,
|
||||
provider: json['provider'] as String,
|
||||
agora: json['agora'] == null
|
||||
? null
|
||||
: AgoraPayload.fromJson(json['agora'] as Map<String, dynamic>),
|
||||
hms: json['hms'] == null
|
||||
? null
|
||||
: HMSPayload.fromJson(json['hms'] as Map<String, dynamic>),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$CallPayloadToJson(CallPayload instance) =>
|
||||
<String, dynamic>{
|
||||
'id': instance.id,
|
||||
'provider': instance.provider,
|
||||
'agora': instance.agora?.toJson(),
|
||||
'hms': instance.hms?.toJson(),
|
||||
};
|
||||
@@ -1,23 +0,0 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
|
||||
|
||||
part 'call_token_payload.g.dart';
|
||||
|
||||
@JsonSerializable()
|
||||
class CallTokenPayload extends Equatable {
|
||||
final String token;
|
||||
final int? agoraUid;
|
||||
final String? agoraAppId;
|
||||
const CallTokenPayload({required this.token, this.agoraUid, this.agoraAppId});
|
||||
|
||||
factory CallTokenPayload.fromJson(Map<String, dynamic> json) =>
|
||||
_$CallTokenPayloadFromJson(json);
|
||||
|
||||
|
||||
Map<String, dynamic> toJson() => _$CallTokenPayloadToJson(this);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [token, agoraAppId, agoraUid];
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'call_token_payload.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
CallTokenPayload _$CallTokenPayloadFromJson(Map<String, dynamic> json) =>
|
||||
CallTokenPayload(
|
||||
token: json['token'] as String,
|
||||
agoraUid: json['agora_uid'] as int?,
|
||||
agoraAppId: json['agora_app_id'] as String?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$CallTokenPayloadToJson(CallTokenPayload instance) =>
|
||||
<String, dynamic>{
|
||||
'token': instance.token,
|
||||
'agora_uid': instance.agoraUid,
|
||||
'agora_app_id': instance.agoraAppId,
|
||||
};
|
||||
@@ -1,20 +0,0 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:stream_chat/src/core/models/call_payload.dart';
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'create_call_payload.g.dart';
|
||||
|
||||
@JsonSerializable()
|
||||
class CreateCallPayload extends Equatable {
|
||||
final CallPayload call;
|
||||
const CreateCallPayload({required this.call});
|
||||
|
||||
factory CreateCallPayload.fromJson(Map<String, dynamic> json) =>
|
||||
_$CreateCallPayloadFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$CreateCallPayloadToJson(this);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [call];
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'create_call_payload.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
CreateCallPayload _$CreateCallPayloadFromJson(Map<String, dynamic> json) =>
|
||||
CreateCallPayload(
|
||||
call: CallPayload.fromJson(json['call'] as Map<String, dynamic>),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$CreateCallPayloadToJson(CreateCallPayload instance) =>
|
||||
<String, dynamic>{
|
||||
'call': instance.call.toJson(),
|
||||
};
|
||||
@@ -1,19 +0,0 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'hms_payload.g.dart';
|
||||
|
||||
@JsonSerializable()
|
||||
class HMSPayload extends Equatable {
|
||||
final String roomId;
|
||||
final String roomName;
|
||||
const HMSPayload({required this.roomId, required this.roomName});
|
||||
|
||||
factory HMSPayload.fromJson(Map<String, dynamic> json) =>
|
||||
_$HMSPayloadFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$HMSPayloadToJson(this);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [roomId, roomName];
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'hms_payload.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
HMSPayload _$HMSPayloadFromJson(Map<String, dynamic> json) => HMSPayload(
|
||||
roomId: json['room_id'] as String,
|
||||
roomName: json['room_name'] as String,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$HMSPayloadToJson(HMSPayload instance) =>
|
||||
<String, dynamic>{
|
||||
'room_id': instance.roomId,
|
||||
'room_name': instance.roomName,
|
||||
};
|
||||
@@ -15,21 +15,15 @@ export './src/core/api/responses.dart';
|
||||
export './src/core/api/stream_chat_api.dart' show PushProvider;
|
||||
export './src/core/error/error.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_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_model.dart';
|
||||
export './src/core/models/channel_state.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/event.dart';
|
||||
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/message.dart';
|
||||
export './src/core/models/mute.dart';
|
||||
|
||||
Reference in New Issue
Block a user