// ignore_for_file: camel_case_types // ignore_for_file: discarded_futures // ignore_for_file: public_member_api_docs // ignore_for_file: unreachable_switch_case import 'dart:typed_data'; import 'package:built_collection/built_collection.dart'; import 'package:built_value/built_value.dart'; import 'package:built_value/serializer.dart'; import 'package:built_value/standard_json_plugin.dart'; import 'package:collection/collection.dart'; import 'package:dynamite_runtime/built_value.dart'; import 'package:dynamite_runtime/http_client.dart'; import 'package:meta/meta.dart'; import 'package:universal_io/io.dart'; part 'updatenotification.openapi.g.dart'; class Client extends DynamiteClient { Client( super.baseURL, { super.baseHeaders, super.userAgent, super.httpClient, super.cookieJar, super.authentications, }); Client.fromClient(final DynamiteClient client) : super( client.baseURL, baseHeaders: client.baseHeaders, httpClient: client.httpClient, cookieJar: client.cookieJar, authentications: client.authentications, ); ApiClient get api => ApiClient(this); } class ApiClient { ApiClient(this._rootClient); final Client _rootClient; /// List available updates for apps. /// /// This endpoint requires admin access. /// /// Returns a [Future] containing a [DynamiteResponse] with the status code, deserialized body and headers. /// Throws a [DynamiteApiException] if the API call does not return an expected status code. /// /// Parameters: /// * [apiVersion] Defaults to `v1`. /// * [newVersion] Server version to check updates for. /// * [oCSAPIRequest] Required to be true for the API request to pass. Defaults to `true`. /// /// Status codes: /// * 200: Apps returned /// * 404: New versions not found /// /// See: /// * [getAppListRaw] for an experimental operation that returns a [DynamiteRawResponse] that can be serialized. Future> getAppList({ required final String newVersion, final ApiGetAppListApiVersion apiVersion = ApiGetAppListApiVersion.v1, final bool oCSAPIRequest = true, }) async { final rawResponse = getAppListRaw( newVersion: newVersion, apiVersion: apiVersion, oCSAPIRequest: oCSAPIRequest, ); return rawResponse.future; } /// List available updates for apps. /// /// This endpoint requires admin access. /// /// This method and the response it returns is experimental. The API might change without a major version bump. /// /// Returns a [Future] containing a [DynamiteRawResponse] with the raw [HttpClientResponse] and serialization helpers. /// Throws a [DynamiteApiException] if the API call does not return an expected status code. /// /// Parameters: /// * [apiVersion] Defaults to `v1`. /// * [newVersion] Server version to check updates for. /// * [oCSAPIRequest] Required to be true for the API request to pass. Defaults to `true`. /// /// Status codes: /// * 200: Apps returned /// * 404: New versions not found /// /// See: /// * [getAppList] for an operation that returns a [DynamiteResponse] with a stable API. @experimental DynamiteRawResponse getAppListRaw({ required final String newVersion, final ApiGetAppListApiVersion apiVersion = ApiGetAppListApiVersion.v1, final bool oCSAPIRequest = true, }) { final queryParameters = {}; final headers = { 'Accept': 'application/json', }; Uint8List? body; // coverage:ignore-start final authentication = _rootClient.authentications.firstWhereOrNull( (final auth) => switch (auth) { DynamiteHttpBearerAuthentication() || DynamiteHttpBasicAuthentication() => true, _ => false, }, ); if (authentication != null) { headers.addAll( authentication.headers, ); } else { throw Exception('Missing authentication for bearer_auth or basic_auth'); } // coverage:ignore-end final newVersion0 = Uri.encodeQueryComponent(newVersion); final apiVersion0 = Uri.encodeQueryComponent(apiVersion.name); headers['OCS-APIRequest'] = oCSAPIRequest.toString(); final path = '/ocs/v2.php/apps/updatenotification/api/$apiVersion0/applist/$newVersion0'; final uri = Uri(path: path, queryParameters: queryParameters.isNotEmpty ? queryParameters : null); return DynamiteRawResponse( response: _rootClient.executeRequest( 'get', uri, headers, body, const {200}, ), bodyType: const FullType(ApiGetAppListResponseApplicationJson), headersType: null, serializers: _jsonSerializers, ); } } class ApiGetAppListApiVersion extends EnumClass { const ApiGetAppListApiVersion._(super.name); static const ApiGetAppListApiVersion v1 = _$apiGetAppListApiVersionV1; // coverage:ignore-start static BuiltSet get values => _$apiGetAppListApiVersionValues; // coverage:ignore-end static ApiGetAppListApiVersion valueOf(final String name) => _$valueOfApiGetAppListApiVersion(name); static Serializer get serializer => _$apiGetAppListApiVersionSerializer; } @BuiltValue(instantiable: false) abstract interface class OCSMetaInterface { String get status; int get statuscode; String? get message; String? get totalitems; String? get itemsperpage; } abstract class OCSMeta implements OCSMetaInterface, Built { factory OCSMeta([final void Function(OCSMetaBuilder)? b]) = _$OCSMeta; // coverage:ignore-start const OCSMeta._(); // coverage:ignore-end // coverage:ignore-start factory OCSMeta.fromJson(final Map json) => _jsonSerializers.deserializeWith(serializer, json)!; // coverage:ignore-end // coverage:ignore-start Map toJson() => _jsonSerializers.serializeWith(serializer, this)! as Map; // coverage:ignore-end static Serializer get serializer => _$oCSMetaSerializer; } @BuiltValue(instantiable: false) abstract interface class AppInterface { String get appId; String get appName; } abstract class App implements AppInterface, Built { factory App([final void Function(AppBuilder)? b]) = _$App; // coverage:ignore-start const App._(); // coverage:ignore-end // coverage:ignore-start factory App.fromJson(final Map json) => _jsonSerializers.deserializeWith(serializer, json)!; // coverage:ignore-end // coverage:ignore-start Map toJson() => _jsonSerializers.serializeWith(serializer, this)! as Map; // coverage:ignore-end static Serializer get serializer => _$appSerializer; } @BuiltValue(instantiable: false) abstract interface class ApiGetAppListResponseApplicationJson_Ocs_DataInterface { BuiltList get missing; BuiltList get available; } abstract class ApiGetAppListResponseApplicationJson_Ocs_Data implements ApiGetAppListResponseApplicationJson_Ocs_DataInterface, Built { factory ApiGetAppListResponseApplicationJson_Ocs_Data([ final void Function(ApiGetAppListResponseApplicationJson_Ocs_DataBuilder)? b, ]) = _$ApiGetAppListResponseApplicationJson_Ocs_Data; // coverage:ignore-start const ApiGetAppListResponseApplicationJson_Ocs_Data._(); // coverage:ignore-end // coverage:ignore-start factory ApiGetAppListResponseApplicationJson_Ocs_Data.fromJson(final Map json) => _jsonSerializers.deserializeWith(serializer, json)!; // coverage:ignore-end // coverage:ignore-start Map toJson() => _jsonSerializers.serializeWith(serializer, this)! as Map; // coverage:ignore-end static Serializer get serializer => _$apiGetAppListResponseApplicationJsonOcsDataSerializer; } @BuiltValue(instantiable: false) abstract interface class ApiGetAppListResponseApplicationJson_OcsInterface { OCSMeta get meta; ApiGetAppListResponseApplicationJson_Ocs_Data get data; } abstract class ApiGetAppListResponseApplicationJson_Ocs implements ApiGetAppListResponseApplicationJson_OcsInterface, Built { factory ApiGetAppListResponseApplicationJson_Ocs([ final void Function(ApiGetAppListResponseApplicationJson_OcsBuilder)? b, ]) = _$ApiGetAppListResponseApplicationJson_Ocs; // coverage:ignore-start const ApiGetAppListResponseApplicationJson_Ocs._(); // coverage:ignore-end // coverage:ignore-start factory ApiGetAppListResponseApplicationJson_Ocs.fromJson(final Map json) => _jsonSerializers.deserializeWith(serializer, json)!; // coverage:ignore-end // coverage:ignore-start Map toJson() => _jsonSerializers.serializeWith(serializer, this)! as Map; // coverage:ignore-end static Serializer get serializer => _$apiGetAppListResponseApplicationJsonOcsSerializer; } @BuiltValue(instantiable: false) abstract interface class ApiGetAppListResponseApplicationJsonInterface { ApiGetAppListResponseApplicationJson_Ocs get ocs; } abstract class ApiGetAppListResponseApplicationJson implements ApiGetAppListResponseApplicationJsonInterface, Built { factory ApiGetAppListResponseApplicationJson([final void Function(ApiGetAppListResponseApplicationJsonBuilder)? b]) = _$ApiGetAppListResponseApplicationJson; // coverage:ignore-start const ApiGetAppListResponseApplicationJson._(); // coverage:ignore-end // coverage:ignore-start factory ApiGetAppListResponseApplicationJson.fromJson(final Map json) => _jsonSerializers.deserializeWith(serializer, json)!; // coverage:ignore-end // coverage:ignore-start Map toJson() => _jsonSerializers.serializeWith(serializer, this)! as Map; // coverage:ignore-end static Serializer get serializer => _$apiGetAppListResponseApplicationJsonSerializer; } // coverage:ignore-start final Serializers _serializers = (Serializers().toBuilder() ..add(ApiGetAppListApiVersion.serializer) ..addBuilderFactory( const FullType(ApiGetAppListResponseApplicationJson), ApiGetAppListResponseApplicationJson.new, ) ..add(ApiGetAppListResponseApplicationJson.serializer) ..addBuilderFactory( const FullType(ApiGetAppListResponseApplicationJson_Ocs), ApiGetAppListResponseApplicationJson_Ocs.new, ) ..add(ApiGetAppListResponseApplicationJson_Ocs.serializer) ..addBuilderFactory(const FullType(OCSMeta), OCSMeta.new) ..add(OCSMeta.serializer) ..addBuilderFactory( const FullType(ApiGetAppListResponseApplicationJson_Ocs_Data), ApiGetAppListResponseApplicationJson_Ocs_Data.new, ) ..add(ApiGetAppListResponseApplicationJson_Ocs_Data.serializer) ..addBuilderFactory(const FullType(App), App.new) ..add(App.serializer) ..addBuilderFactory(const FullType(BuiltList, [FullType(App)]), ListBuilder.new)) .build(); final Serializers _jsonSerializers = (_serializers.toBuilder() ..add(DynamiteDoubleSerializer()) ..addPlugin(StandardJsonPlugin()) ..addPlugin(const ContentStringPlugin())) .build(); // coverage:ignore-end