Files
Client/lib/api/marianumcloud/nextcloud_ocs.dart
T

31 lines
1018 B
Dart

import 'dart:convert';
import '../../model/account_data.dart';
import '../../model/endpoint_data.dart';
/// Shared headers and URI builder for Nextcloud OCS v2 endpoints. Used by
/// TalkApi, AutocompleteApi, FileSharingApi.
class NextcloudOcs {
NextcloudOcs._();
/// Decodes an OCS v2 JSON envelope and returns its `ocs` object (the wrapper
/// every response nests its `meta`/`data` under).
static Map<String, dynamic> decode(String raw) =>
(jsonDecode(raw) as Map<String, dynamic>)['ocs'] as Map<String, dynamic>;
static Map<String, String> headers() => {
'Accept': 'application/json',
'OCS-APIRequest': 'true',
'Authorization': AccountData().getBasicAuthHeader(),
};
static Uri uri(String pathSuffix, {Map<String, dynamic>? queryParameters}) {
final endpoint = EndpointData().nextcloud();
return Uri.https(
endpoint.domain,
'${endpoint.path}/ocs/v2.php/$pathSuffix',
queryParameters?.map((key, value) => MapEntry(key, value.toString())),
);
}
}