spotube/lib/provider/server/routes/plugin_apis/form.dart
Kingkor Roy Tirtho 6da7fb7ac3 feat: add form api
2025-12-07 17:00:27 +06:00

31 lines
947 B
Dart

import 'dart:convert';
import 'package:auto_route/auto_route.dart';
import 'package:riverpod/riverpod.dart';
import 'package:shelf/shelf.dart';
import 'package:spotube/collections/routes.dart';
import 'package:spotube/collections/routes.gr.dart';
import 'package:spotube/models/metadata/metadata.dart';
class ServerFormRoutes {
Future<Response> showForm(Request request) async {
final body = jsonDecode(await request.readAsString());
final res = await rootNavigatorKey.currentContext!.router
.push<List<Map<String, dynamic>>?>(
SettingsMetadataProviderFormRoute(
title: body["title"],
fields: (body["fields"] as List)
.map((e) => MetadataFormFieldObject.fromJson(e))
.toList(),
),
);
return Response.ok(
jsonEncode(res),
headers: {'Content-Type': 'application/json'},
);
}
}
final serverFormRoutesProvider = Provider((ref) => ServerFormRoutes());