claude refactorings, flutter best practices, platform dependent changes, general cleanup

This commit is contained in:
2026-05-06 11:58:50 +02:00
parent 4b1d4379a0
commit 72ebe6f7e7
278 changed files with 1804 additions and 1041 deletions
@@ -0,0 +1,19 @@
import 'dart:io';
import 'package:http/http.dart' as http;
import '../nextcloud_ocs.dart';
import 'file_sharing_api_params.dart';
class FileSharingApi {
Future<void> share(FileSharingApiParams query) async {
final endpoint = NextcloudOcs.uri(
'apps/files_sharing/api/v1/shares',
queryParameters: query.toJson(),
);
final response = await http.post(endpoint, headers: NextcloudOcs.headers());
if (response.statusCode != HttpStatus.ok) {
throw Exception('Api call failed with ${response.statusCode}: ${response.body}');
}
}
}
@@ -0,0 +1,23 @@
import 'package:json_annotation/json_annotation.dart';
part 'file_sharing_api_params.g.dart';
@JsonSerializable()
class FileSharingApiParams {
int shareType;
String shareWith;
String path;
String? referenceId;
String? talkMetaData;
FileSharingApiParams({
required this.shareType,
required this.shareWith,
required this.path,
this.referenceId,
this.talkMetaData
});
factory FileSharingApiParams.fromJson(Map<String, dynamic> json) => _$FileSharingApiParamsFromJson(json);
Map<String, dynamic> toJson() => _$FileSharingApiParamsToJson(this);
}
@@ -0,0 +1,27 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'file_sharing_api_params.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
FileSharingApiParams _$FileSharingApiParamsFromJson(
Map<String, dynamic> json,
) => FileSharingApiParams(
shareType: (json['shareType'] as num).toInt(),
shareWith: json['shareWith'] as String,
path: json['path'] as String,
referenceId: json['referenceId'] as String?,
talkMetaData: json['talkMetaData'] as String?,
);
Map<String, dynamic> _$FileSharingApiParamsToJson(
FileSharingApiParams instance,
) => <String, dynamic>{
'shareType': instance.shareType,
'shareWith': instance.shareWith,
'path': instance.path,
'referenceId': instance.referenceId,
'talkMetaData': instance.talkMetaData,
};