handler method

  1. @override
Future<Response> handler()
override

Must be implemented

Implementation

@override
Future<Response> handler() async {
  final bodyStr = await request.readAsString();

  final bodyMap = jsonDecode(bodyStr);
  final locations = bodyMap['locations'] as List;

  final points = <TrackPoint>[];

  for (final location in locations) {
    points.add(TrackPoint.fromJson(location));
  }

  final token = request.headers['Authorization'];
  if (token == null) {
    return Response(401);
  }

  final failureOrResult = await repository.addListPoint(points, token);
  return failureOrResult.fold(
    (failure) {
      if (failure is AuthorizationFailure) {
        return Response(401);
      }

      return Response.internalServerError(
        body: 'error: ${failure.toString()}',
      );
    },
    (r) => Response.ok('{"affected_rows": "${r.toString()}"}'),
  );
}