31 lines
867 B
Dart
31 lines
867 B
Dart
import 'package:flutter/foundation.dart';
|
||
import 'package:http/http.dart' as http;
|
||
|
||
import '../../nextcloud_ocs.dart';
|
||
import '../talk_api.dart';
|
||
import 'get_room_params.dart';
|
||
import 'get_room_response.dart';
|
||
|
||
class GetRoom extends TalkApi<GetRoomResponse> {
|
||
GetRoomParams params;
|
||
GetRoom(this.params) : super('v4/room', null, getParameters: params.toJson());
|
||
|
||
@override
|
||
GetRoomResponse assemble(String raw) => _parseRooms(raw);
|
||
|
||
// The room list with status is 100–250 KB and polled every 15–60 s.
|
||
@override
|
||
Future<GetRoomResponse> assembleAsync(String raw) =>
|
||
compute(_parseRooms, raw);
|
||
|
||
@override
|
||
Future<http.Response> request(
|
||
Uri uri,
|
||
Object? body,
|
||
Map<String, String>? headers,
|
||
) => http.get(uri, headers: headers);
|
||
}
|
||
|
||
GetRoomResponse _parseRooms(String raw) =>
|
||
GetRoomResponse.fromJson(NextcloudOcs.decode(raw));
|