import 'dart:convert'; import 'dart:io'; import 'package:dart_frog/dart_frog.dart'; import 'package:new_backend/shrink_ray.dart'; import 'package:path/path.dart' as path; Future onRequest(RequestContext context) async { switch (context.request.method) { case HttpMethod.put: case HttpMethod.delete: case HttpMethod.head: case HttpMethod.options: case HttpMethod.patch: return Response(statusCode: 404); case HttpMethod.post: try { final reqJson = await context.request.body(); final data = jsonDecode(reqJson) as Map; final url = data['url'] as String?; if (url == null) { return Response(statusCode: 401, body: 'Missing url'); } final res = ShrinkRay.shrinkUrl(url); switch (res.status) { case Status.ok: shrunkUrls[res.content] = url; return Response( body: jsonEncode( {'url': 'http://localhost:8080/u/${res.content}'}, ), ); case Status.error: return Response(statusCode: 401, body: res.content); } } catch (err, st) { print(st); print(err); return Response(statusCode: 500, body: 'Unexpected error occurred'); } case HttpMethod.get: // final maybeUrl = shrunkUrls[urlPath]; // switch (maybeUrl) { // case null: // return Response(statusCode: 404); // default: // return Response(statusCode: 308, headers: {'Location': maybeUrl}); // } final file = File(path.join(Directory.current.path, 'public', 'index.html')); if (!file.existsSync()) { return Response(body: 'Index Not found'); } final indexHtml = file.readAsStringSync(); return Response(body: indexHtml, headers: {'Content-Type': 'text/html'}); } }