Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • car-app/appwrite-functions
1 result
Show changes
Commits on Source (3)
Showing
with 125 additions and 88 deletions
import 'package:api/converter/request_response/calendar_event.dart';
import 'package:api/model/interface/calendar_event.dart'; import 'package:api/model/interface/calendar_event.dart';
import 'package:api/model/request/calendar_event.dart'; import 'package:api/model/request/calendar_event.dart';
import 'package:api/model/response/calendar_event.dart'; import 'package:api/model/response/calendar_event.dart';
...@@ -23,10 +24,10 @@ class CalendarEventApiEndpoint extends CheckedDbApiEndpoint<CalendarEventRequest ...@@ -23,10 +24,10 @@ class CalendarEventApiEndpoint extends CheckedDbApiEndpoint<CalendarEventRequest
CalendarEventApiEndpoint({ CalendarEventApiEndpoint({
required super.database, required super.database,
required super.itemFromRequest,
required super.itemToResponse,
required this.requestingUser, required this.requestingUser,
required this.requestingUserTeams, required this.requestingUserTeams,
super.itemFromRequest = CalendarEventRequestResponseConverter.fromRequest,
super.itemToResponse = CalendarEventRequestResponseConverter.toResponseData,
}); });
Future<bool> _createItemAllowed(CalendarEventRequest item) { Future<bool> _createItemAllowed(CalendarEventRequest item) {
......
import 'package:api/converter/request_response/debt.dart';
import 'package:api/model/debt.dart'; import 'package:api/model/debt.dart';
import 'package:api/model/user.dart'; import 'package:api/model/user.dart';
import 'package:api/service/debt.dart'; import 'package:api/service/debt.dart';
...@@ -6,9 +7,9 @@ import 'package:lib/lib.dart'; ...@@ -6,9 +7,9 @@ import 'package:lib/lib.dart';
class DebtApiEndpoint extends ApiEndpoint { class DebtApiEndpoint extends ApiEndpoint {
final User requestingUser; final User requestingUser;
final DebtService debtService; final DebtService debtService;
final Map<String, dynamic> Function(Debt) itemToResponse; final Map<String, dynamic> Function(Debt) itemToResponse = DebtRequestResponseConverter.toResponseData;
DebtApiEndpoint({required this.requestingUser, required this.debtService, required this.itemToResponse}); DebtApiEndpoint({required this.requestingUser, required this.debtService});
@override @override
Future<Map<String, dynamic>> handleDelete(context) { Future<Map<String, dynamic>> handleDelete(context) {
......
import 'package:api/converter/request_response/membership.dart';
import 'package:api/model/membership.dart';
import 'package:api/model/user.dart';
import 'package:lib/lib.dart';
class MembershipApiEndpoint extends ApiEndpoint {
static const String teamIdFieldName = "teamId";
static const String userIdFieldName = "userId";
final User requestingUser;
final Stream<Membership> Function(String) getMembershipsByUserId;
final Stream<Membership> Function(String) getMembershipsByTeamId;
final Map<String, dynamic> Function(Membership) itemToResponse = MembershipRequestResponseConverter.toResponseData;
MembershipApiEndpoint({
required this.requestingUser,
required this.getMembershipsByUserId,
required this.getMembershipsByTeamId,
});
@override
Future<Map<String, dynamic>> handleDelete(context) {
throw ApiActionForbiddenException("delete", "membership");
}
@override
Future<Map<String, dynamic>> handleGet(context) async {
Stream<Membership> memberships;
if(ApiHelper.hasBodyField(context, teamIdFieldName)) {
var requestingUserTeamIds = await getMembershipsByUserId(requestingUser.id).map((e) => e.team.id).toList();
var teamId = ApiHelper.fieldFromRequestBody<String>(context, teamIdFieldName);
memberships = getMembershipsByTeamId(teamId).where((e) => requestingUserTeamIds.contains(e.team.id));
}
else {
var userId = ApiHelper.fieldFromRequestBody<String>(context, userIdFieldName);
if(userId != requestingUser.id) {
throw UnauthorizedException();
}
memberships = getMembershipsByUserId(userId);
}
return listResponse(context, await memberships.toList(), itemToResponse);
}
@override
Future<Map<String, dynamic>> handlePost(context) {
throw ApiActionForbiddenException("post", "membership");
}
@override
Future<Map<String, dynamic>> handlePut(context) {
throw ApiActionForbiddenException("put", "membership");
}
}
import 'dart:async'; import 'dart:async';
import 'package:api/converter/request_response/payment/driven_distance_distributed.dart';
import 'package:api/model/interface/payment/driven_distance_distributed.dart'; import 'package:api/model/interface/payment/driven_distance_distributed.dart';
import 'package:api/model/request/payment/driven_distance_distributed.dart'; import 'package:api/model/request/payment/driven_distance_distributed.dart';
import 'package:api/model/response/payment/driven_distance_distributed.dart'; import 'package:api/model/response/payment/driven_distance_distributed.dart';
...@@ -27,11 +28,11 @@ class DrivenDistanceDistributedPaymentApiEndpoint extends CheckedDbApiEndpoint<D ...@@ -27,11 +28,11 @@ class DrivenDistanceDistributedPaymentApiEndpoint extends CheckedDbApiEndpoint<D
DrivenDistanceDistributedPaymentApiEndpoint({ DrivenDistanceDistributedPaymentApiEndpoint({
required super.database, required super.database,
required super.itemFromRequest,
required super.itemToResponse,
required this.requestingUser, required this.requestingUser,
required this.requestingUserTeams, required this.requestingUserTeams,
required this.getRouteFromId, required this.getRouteFromId,
super.itemFromRequest = DrivenDistanceDistributedPaymentRequestResponseConverter.fromRequest,
super.itemToResponse = DrivenDistanceDistributedPaymentRequestResponseConverter.toResponseData,
}); });
Future<bool> _createItemAllowed(DrivenDistanceDistributedPaymentRequest item) async { Future<bool> _createItemAllowed(DrivenDistanceDistributedPaymentRequest item) async {
......
import 'dart:async'; import 'dart:async';
import 'package:api/converter/request_response/payment/equally_distributed.dart';
import 'package:api/model/interface/payment/equally_distributed.dart'; import 'package:api/model/interface/payment/equally_distributed.dart';
import 'package:api/model/request/payment/equally_distributed.dart'; import 'package:api/model/request/payment/equally_distributed.dart';
import 'package:api/model/response/payment/equally_distributed.dart'; import 'package:api/model/response/payment/equally_distributed.dart';
...@@ -25,10 +26,10 @@ class EquallyDistributedApiEndpoint extends CheckedDbApiEndpoint<EquallyDistribu ...@@ -25,10 +26,10 @@ class EquallyDistributedApiEndpoint extends CheckedDbApiEndpoint<EquallyDistribu
EquallyDistributedApiEndpoint({ EquallyDistributedApiEndpoint({
required super.database, required super.database,
required super.itemFromRequest,
required super.itemToResponse,
required this.requestingUser, required this.requestingUser,
required this.requestingUserTeams, required this.requestingUserTeams,
super.itemFromRequest = EquallyDistributedPaymentRequestResponseConverter.fromRequest,
super.itemToResponse = EquallyDistributedPaymentRequestResponseConverter.toResponseData,
}); });
Future<bool> _createItemAllowed(EquallyDistributedPaymentRequest item) { Future<bool> _createItemAllowed(EquallyDistributedPaymentRequest item) {
......
import 'package:api/converter/request_response/payment/user_to_user.dart';
import 'package:api/model/interface/payment/user_to_user.dart'; import 'package:api/model/interface/payment/user_to_user.dart';
import 'package:api/model/request/payment/user_to_user.dart'; import 'package:api/model/request/payment/user_to_user.dart';
import 'package:api/model/response/payment/user_to_user.dart'; import 'package:api/model/response/payment/user_to_user.dart';
...@@ -21,9 +22,9 @@ class UserToUserPaymentApiEndpoint extends CheckedDbApiEndpoint<UserToUserPaymen ...@@ -21,9 +22,9 @@ class UserToUserPaymentApiEndpoint extends CheckedDbApiEndpoint<UserToUserPaymen
UserToUserPaymentApiEndpoint({ UserToUserPaymentApiEndpoint({
required super.database, required super.database,
required super.itemFromRequest,
required super.itemToResponse,
required this.requestingUser, required this.requestingUser,
super.itemFromRequest = UserToUserPaymentRequestResponseConverter.fromRequest,
super.itemToResponse = UserToUserPaymentRequestResponseConverter.toResponseData,
}); });
Future<bool> _createItemAllowed(UserToUserPaymentRequest item) { Future<bool> _createItemAllowed(UserToUserPaymentRequest item) {
......
import 'package:api/converter/request_response/point.dart';
import 'package:api/model/request/point.dart'; import 'package:api/model/request/point.dart';
import 'package:api/model/response/point.dart'; import 'package:api/model/response/point.dart';
import 'package:lib/lib.dart'; import 'package:lib/lib.dart';
...@@ -5,8 +6,8 @@ import 'package:lib/lib.dart'; ...@@ -5,8 +6,8 @@ import 'package:lib/lib.dart';
class PointApiEndpoint extends DbApiEndpoint<PointRequest, PointResponse> { class PointApiEndpoint extends DbApiEndpoint<PointRequest, PointResponse> {
PointApiEndpoint({ PointApiEndpoint({
required super.database, required super.database,
required super.itemFromRequest, super.itemFromRequest = PointRequestResponseConverter.fromRequest,
required super.itemToResponse, super.itemToResponse = PointRequestResponseConverter.toResponseData,
}); });
@override @override
......
import 'package:api/converter/request_response/route.dart';
import 'package:api/model/interface/route.dart'; import 'package:api/model/interface/route.dart';
import 'package:api/model/request/route.dart'; import 'package:api/model/request/route.dart';
import 'package:api/model/response/route.dart'; import 'package:api/model/response/route.dart';
...@@ -23,10 +24,10 @@ class RouteApiEndpoint extends CheckedDbApiEndpoint<RouteRequest, RouteResponse> ...@@ -23,10 +24,10 @@ class RouteApiEndpoint extends CheckedDbApiEndpoint<RouteRequest, RouteResponse>
RouteApiEndpoint({ RouteApiEndpoint({
required super.database, required super.database,
required super.itemFromRequest,
required super.itemToResponse,
required this.requestingUser, required this.requestingUser,
required this.requestingUserTeams, required this.requestingUserTeams,
super.itemFromRequest = RouteRequestResponseConverter.fromRequest,
super.itemToResponse = RouteRequestResponseConverter.toResponseData,
}); });
Future<bool> _createItemAllowed(RouteRequest item) { Future<bool> _createItemAllowed(RouteRequest item) {
......
import 'package:api/converter/request_response/team.dart';
import 'package:api/model/team.dart'; import 'package:api/model/team.dart';
import 'package:api/model/user.dart'; import 'package:api/model/user.dart';
import 'package:lib/lib.dart'; import 'package:lib/lib.dart';
...@@ -6,9 +7,9 @@ class TeamApiEndpoint extends ApiEndpoint { ...@@ -6,9 +7,9 @@ class TeamApiEndpoint extends ApiEndpoint {
final User requestingUser; final User requestingUser;
final Future<Team> Function(String) getTeamById; final Future<Team> Function(String) getTeamById;
final Future<bool> Function(User, Team) isUserInTeam; final Future<bool> Function(User, Team) isUserInTeam;
final Map<String, dynamic> Function(Team) itemToResponse; final Map<String, dynamic> Function(Team) itemToResponse = TeamRequestResponseConverter.toResponseData;
TeamApiEndpoint({required this.requestingUser, required this.getTeamById, required this.isUserInTeam, required this.itemToResponse}); TeamApiEndpoint({required this.requestingUser, required this.getTeamById, required this.isUserInTeam});
@override @override
Future<Map<String, dynamic>> handleDelete(context) { Future<Map<String, dynamic>> handleDelete(context) {
......
import 'package:api/converter/request_response/user.dart';
import 'package:api/model/team.dart'; import 'package:api/model/team.dart';
import 'package:api/model/user.dart'; import 'package:api/model/user.dart';
import 'package:lib/lib.dart'; import 'package:lib/lib.dart';
...@@ -6,9 +7,9 @@ class UserApiEndpoint extends ApiEndpoint { ...@@ -6,9 +7,9 @@ class UserApiEndpoint extends ApiEndpoint {
final User requestingUser; final User requestingUser;
final Future<User> Function(String) getUserFromId; final Future<User> Function(String) getUserFromId;
final Stream<Team> Function(User) getTeamsOfUser; final Stream<Team> Function(User) getTeamsOfUser;
final Map<String, dynamic> Function(User) itemToResponse; final Map<String, dynamic> Function(User) itemToResponse = UserRequestResponseConverter.toResponseData;
UserApiEndpoint({required this.requestingUser, required this.getUserFromId, required this.getTeamsOfUser, required this.itemToResponse}); UserApiEndpoint({required this.requestingUser, required this.getUserFromId, required this.getTeamsOfUser});
@override @override
Future<Map<String, dynamic>> handleDelete(context) { Future<Map<String, dynamic>> handleDelete(context) {
......
import 'package:api/model/membership.dart';
class MembershipRequestResponseConverter {
static const String userIdRequestResponseFieldName = "userId";
static const String teamIdRequestResponseFieldName = "teamId";
static Map<String, dynamic> toResponseData(Membership response) {
return {
userIdRequestResponseFieldName: response.user.id,
teamIdRequestResponseFieldName: response.team.id,
};
}
}
...@@ -2,13 +2,11 @@ import 'package:lib/lib.dart'; ...@@ -2,13 +2,11 @@ import 'package:lib/lib.dart';
import 'package:api/model/user.dart'; import 'package:api/model/user.dart';
class UserRequestResponseConverter { class UserRequestResponseConverter {
static const String emailRequestResponseFieldName = "email";
static const String nameRequestResponseFieldName = "name"; static const String nameRequestResponseFieldName = "name";
static Map<String, dynamic> toResponseData(User response) { static Map<String, dynamic> toResponseData(User response) {
return { return {
RequestResponseVariables.idFieldName: response.id, RequestResponseVariables.idFieldName: response.id,
emailRequestResponseFieldName: response.email,
nameRequestResponseFieldName: response.name, nameRequestResponseFieldName: response.name,
}; };
} }
......
import 'package:api/converter/db_converter/calendar_event.dart';
import 'package:api/model/request/calendar_event.dart'; import 'package:api/model/request/calendar_event.dart';
import 'package:api/model/response/calendar_event.dart'; import 'package:api/model/response/calendar_event.dart';
import 'package:lib/lib.dart'; import 'package:lib/lib.dart';
...@@ -14,7 +15,7 @@ class CalendarEventDatabase extends BaseDatabase<CalendarEventRequest, CalendarE ...@@ -14,7 +15,7 @@ class CalendarEventDatabase extends BaseDatabase<CalendarEventRequest, CalendarE
required super.host, required super.host,
required super.projectId, required super.projectId,
required super.apiKey, required super.apiKey,
required super.itemToDbMap, super.itemToDbMap = CalendarEventDbConverter.toDbData,
required super.itemFromDbMap, super.itemFromDbMap = CalendarEventDbConverter.fromDbData,
}); });
} }
import 'package:api/converter/db_converter/payment/driven_distance_distributed.dart';
import 'package:api/model/request/payment/driven_distance_distributed.dart'; import 'package:api/model/request/payment/driven_distance_distributed.dart';
import 'package:api/model/response/payment/driven_distance_distributed.dart'; import 'package:api/model/response/payment/driven_distance_distributed.dart';
import 'package:lib/lib.dart'; import 'package:lib/lib.dart';
...@@ -14,7 +15,7 @@ class DrivenDistanceDistributedPaymentDatabase extends BaseDatabase<DrivenDistan ...@@ -14,7 +15,7 @@ class DrivenDistanceDistributedPaymentDatabase extends BaseDatabase<DrivenDistan
required super.host, required super.host,
required super.projectId, required super.projectId,
required super.apiKey, required super.apiKey,
required super.itemFromDbMap, super.itemFromDbMap = DrivenDistanceDistributedPaymentDbConverter.fromDbData,
required super.itemToDbMap, super.itemToDbMap = DrivenDistanceDistributedPaymentDbConverter.toDbData,
}); });
} }
import 'package:api/converter/db_converter/payment/equally_distributed.dart';
import 'package:api/model/request/payment/equally_distributed.dart'; import 'package:api/model/request/payment/equally_distributed.dart';
import 'package:api/model/response/payment/equally_distributed.dart'; import 'package:api/model/response/payment/equally_distributed.dart';
import 'package:lib/lib.dart'; import 'package:lib/lib.dart';
...@@ -13,7 +14,7 @@ class EquallyDistributedPaymentDatabase extends BaseDatabase<EquallyDistributedP ...@@ -13,7 +14,7 @@ class EquallyDistributedPaymentDatabase extends BaseDatabase<EquallyDistributedP
required super.host, required super.host,
required super.projectId, required super.projectId,
required super.apiKey, required super.apiKey,
required super.itemFromDbMap, super.itemFromDbMap = EquallyDistributedPaymentDbConverter.fromDbData,
required super.itemToDbMap, super.itemToDbMap = EquallyDistributedPaymentDbConverter.toDbData,
}); });
} }
import 'package:api/converter/db_converter/payment/user_to_user.dart';
import 'package:api/model/request/payment/user_to_user.dart'; import 'package:api/model/request/payment/user_to_user.dart';
import 'package:api/model/response/payment/user_to_user.dart'; import 'package:api/model/response/payment/user_to_user.dart';
import 'package:lib/lib.dart'; import 'package:lib/lib.dart';
...@@ -13,7 +14,7 @@ class UserToUserPaymentDatabase extends BaseDatabase<UserToUserPaymentRequest, U ...@@ -13,7 +14,7 @@ class UserToUserPaymentDatabase extends BaseDatabase<UserToUserPaymentRequest, U
required super.host, required super.host,
required super.projectId, required super.projectId,
required super.apiKey, required super.apiKey,
required super.itemFromDbMap, super.itemFromDbMap = UserToUserPaymentDbConverter.fromDbData,
required super.itemToDbMap, super.itemToDbMap = UserToUserPaymentDbConverter.toDbData,
}); });
} }
import 'package:api/converter/db_converter/point.dart';
import 'package:api/model/request/point.dart'; import 'package:api/model/request/point.dart';
import 'package:api/model/response/point.dart'; import 'package:api/model/response/point.dart';
import 'package:dart_appwrite/dart_appwrite.dart'; import 'package:dart_appwrite/dart_appwrite.dart';
import 'package:lib/lib.dart'; import 'package:lib/lib.dart';
class PointDatabase extends BaseDatabase<PointRequest, PointResponse> { class PointDatabase extends BaseDatabase<PointRequest, PointResponse> {
final String latitudeDbFieldName;
final String longitudeDbFieldName;
@override @override
final String databaseId = "65fddef523b653ce0952"; final String databaseId = "65fddef523b653ce0952";
...@@ -17,17 +15,15 @@ class PointDatabase extends BaseDatabase<PointRequest, PointResponse> { ...@@ -17,17 +15,15 @@ class PointDatabase extends BaseDatabase<PointRequest, PointResponse> {
required super.host, required super.host,
required super.projectId, required super.projectId,
required super.apiKey, required super.apiKey,
required super.itemToDbMap, super.itemToDbMap = PointDbConverter.toDbData,
required super.itemFromDbMap, super.itemFromDbMap = PointDbConverter.fromDbData,
required this.latitudeDbFieldName,
required this.longitudeDbFieldName,
}); });
@override @override
Future<PointResponse> create(PointRequest item) async { Future<PointResponse> create(PointRequest item) async {
var queries = List.of([ var queries = List.of([
Query.equal(latitudeDbFieldName, item.latitude), Query.equal(PointDbConverter.latitudeDbFieldName, item.latitude),
Query.equal(longitudeDbFieldName, item.longitude), Query.equal(PointDbConverter.longitudeDbFieldName, item.longitude),
]); ]);
var equalItems = await getFromQueries(queries).toList(); var equalItems = await getFromQueries(queries).toList();
......
import 'package:api/converter/db_converter/route.dart';
import 'package:api/model/request/route.dart'; import 'package:api/model/request/route.dart';
import 'package:api/model/response/route.dart'; import 'package:api/model/response/route.dart';
import 'package:lib/lib.dart'; import 'package:lib/lib.dart';
import 'package:api/database/point.dart';
class RouteDatabase extends BaseDatabase<RouteRequest, RouteResponse> { class RouteDatabase extends BaseDatabase<RouteRequest, RouteResponse> {
final PointDatabase pointDatabase;
@override @override
String get collectionId => "6600a7f577154a949b4c"; String get collectionId => "6600a7f577154a949b4c";
...@@ -16,8 +14,7 @@ class RouteDatabase extends BaseDatabase<RouteRequest, RouteResponse> { ...@@ -16,8 +14,7 @@ class RouteDatabase extends BaseDatabase<RouteRequest, RouteResponse> {
required super.host, required super.host,
required super.projectId, required super.projectId,
required super.apiKey, required super.apiKey,
required this.pointDatabase, super.itemToDbMap = RouteDbConverter.toDbData,
required super.itemToDbMap, super.itemFromDbMap = RouteDbConverter.fromDbData,
required super.itemFromDbMap,
}); });
} }
import 'dart:async'; import 'dart:async';
import 'dart:io'; import 'dart:io';
import 'package:api/api_endpoint/calendar_event.dart'; import 'package:api/api_endpoint/calendar_event.dart';
import 'package:api/api_endpoint/membership.dart';
import 'package:api/api_endpoint/payment/driven_distance_distributed.dart'; import 'package:api/api_endpoint/payment/driven_distance_distributed.dart';
import 'package:api/api_endpoint/payment/equally_distributed.dart'; import 'package:api/api_endpoint/payment/equally_distributed.dart';
import 'package:api/api_endpoint/payment/user_to_user.dart'; import 'package:api/api_endpoint/payment/user_to_user.dart';
import 'package:api/converter/db_converter/calendar_event.dart';
import 'package:api/converter/db_converter/payment/equally_distributed.dart';
import 'package:api/converter/db_converter/payment/user_to_user.dart';
import 'package:api/converter/db_converter/point.dart';
import 'package:api/converter/db_converter/route.dart';
import 'package:api/converter/request_response/calendar_event.dart';
import 'package:api/converter/request_response/debt.dart';
import 'package:api/converter/request_response/payment/driven_distance_distributed.dart';
import 'package:api/converter/request_response/payment/equally_distributed.dart';
import 'package:api/converter/request_response/payment/user_to_user.dart';
import 'package:api/converter/request_response/point.dart';
import 'package:api/converter/request_response/user.dart';
import 'package:api/converter/request_response/route.dart';
import 'package:api/converter/request_response/team.dart';
import 'package:api/database/calendar_event.dart'; import 'package:api/database/calendar_event.dart';
import 'package:api/converter/db_converter/payment/driven_distance_distributed.dart';
import 'package:api/api_endpoint/debt.dart'; import 'package:api/api_endpoint/debt.dart';
import 'package:api/model/response/payment/driven_distance_distributed.dart'; import 'package:api/model/response/payment/driven_distance_distributed.dart';
import 'package:api/model/response/payment/equally_distributed.dart'; import 'package:api/model/response/payment/equally_distributed.dart';
...@@ -53,6 +39,7 @@ const String drivenDistanceDistributedPaymentApiEndpoint = "/payment/team/driven ...@@ -53,6 +39,7 @@ const String drivenDistanceDistributedPaymentApiEndpoint = "/payment/team/driven
const String equallyDistributedPaymentApiEndpoint = "/payment/team/equal"; const String equallyDistributedPaymentApiEndpoint = "/payment/team/equal";
const String userToUserPaymentApiEndpoint = "/payment/user"; const String userToUserPaymentApiEndpoint = "/payment/user";
const String debtApiEndpoint = "/debt"; const String debtApiEndpoint = "/debt";
const String membershipApiEndpoint = "/membership";
Future<dynamic> main(final context) async { Future<dynamic> main(final context) async {
final host = "https://${context.req.host}/v1"; final host = "https://${context.req.host}/v1";
...@@ -64,27 +51,18 @@ Future<dynamic> main(final context) async { ...@@ -64,27 +51,18 @@ Future<dynamic> main(final context) async {
host: host, host: host,
projectId: projectId, projectId: projectId,
apiKey: apiKey, apiKey: apiKey,
itemToDbMap: PointDbConverter.toDbData,
itemFromDbMap: PointDbConverter.fromDbData,
latitudeDbFieldName: PointDbConverter.latitudeDbFieldName,
longitudeDbFieldName: PointDbConverter.longitudeDbFieldName,
); );
var routeDatabase = RouteDatabase( var routeDatabase = RouteDatabase(
host: host, host: host,
projectId: projectId, projectId: projectId,
apiKey: apiKey, apiKey: apiKey,
pointDatabase: pointDatabase,
itemToDbMap: RouteDbConverter.toDbData,
itemFromDbMap: RouteDbConverter.fromDbData,
); );
var calendarEventDatabase = CalendarEventDatabase( var calendarEventDatabase = CalendarEventDatabase(
host: host, host: host,
projectId: projectId, projectId: projectId,
apiKey: apiKey, apiKey: apiKey,
itemToDbMap: CalendarEventDbConverter.toDbData,
itemFromDbMap: CalendarEventDbConverter.fromDbData,
); );
var drivenDistanceDistributedPaymentDatabase = DrivenDistanceDistributedPaymentDatabase( var drivenDistanceDistributedPaymentDatabase = DrivenDistanceDistributedPaymentDatabase(
...@@ -92,24 +70,18 @@ Future<dynamic> main(final context) async { ...@@ -92,24 +70,18 @@ Future<dynamic> main(final context) async {
projectId: projectId:
projectId, projectId,
apiKey: apiKey, apiKey: apiKey,
itemToDbMap: DrivenDistanceDistributedPaymentDbConverter.toDbData,
itemFromDbMap: DrivenDistanceDistributedPaymentDbConverter.fromDbData,
); );
var equallyDistributedPaymentDatabase = EquallyDistributedPaymentDatabase( var equallyDistributedPaymentDatabase = EquallyDistributedPaymentDatabase(
host: host, host: host,
projectId: projectId, projectId: projectId,
apiKey: apiKey, apiKey: apiKey,
itemToDbMap: EquallyDistributedPaymentDbConverter.toDbData,
itemFromDbMap: EquallyDistributedPaymentDbConverter.fromDbData,
); );
var userToUserPaymentDatabase = UserToUserPaymentDatabase( var userToUserPaymentDatabase = UserToUserPaymentDatabase(
host: host, host: host,
projectId: projectId, projectId: projectId,
apiKey: apiKey, apiKey: apiKey,
itemToDbMap: UserToUserPaymentDbConverter.toDbData,
itemFromDbMap: UserToUserPaymentDbConverter.fromDbData,
); );
var teamService = TeamService(host: host, projectId: projectId, apiKey: apiKey); var teamService = TeamService(host: host, projectId: projectId, apiKey: apiKey);
...@@ -135,8 +107,6 @@ Future<dynamic> main(final context) async { ...@@ -135,8 +107,6 @@ Future<dynamic> main(final context) async {
case pointApiPath: case pointApiPath:
apiEndpoint = PointApiEndpoint( apiEndpoint = PointApiEndpoint(
database: pointDatabase, database: pointDatabase,
itemFromRequest: PointRequestResponseConverter.fromRequest,
itemToResponse: PointRequestResponseConverter.toResponseData,
); );
break; break;
...@@ -148,8 +118,6 @@ Future<dynamic> main(final context) async { ...@@ -148,8 +118,6 @@ Future<dynamic> main(final context) async {
database: routeDatabase, database: routeDatabase,
requestingUser: requestingUser, requestingUser: requestingUser,
requestingUserTeams: requestingUserTeams, requestingUserTeams: requestingUserTeams,
itemFromRequest: RouteRequestResponseConverter.fromRequest,
itemToResponse: RouteRequestResponseConverter.toResponseData,
); );
break; break;
...@@ -160,7 +128,6 @@ Future<dynamic> main(final context) async { ...@@ -160,7 +128,6 @@ Future<dynamic> main(final context) async {
requestingUser: requestingUser, requestingUser: requestingUser,
getTeamById: teamService.getTeam, getTeamById: teamService.getTeam,
isUserInTeam: (user, team) => isUserInTeam(user, team, membershipService), isUserInTeam: (user, team) => isUserInTeam(user, team, membershipService),
itemToResponse: TeamRequestResponseConverter.toResponseData,
); );
break; break;
...@@ -172,8 +139,6 @@ Future<dynamic> main(final context) async { ...@@ -172,8 +139,6 @@ Future<dynamic> main(final context) async {
database: calendarEventDatabase, database: calendarEventDatabase,
requestingUser: requestingUser, requestingUser: requestingUser,
requestingUserTeams: requestingUserTeams, requestingUserTeams: requestingUserTeams,
itemFromRequest: CalendarEventRequestResponseConverter.fromRequest,
itemToResponse: CalendarEventRequestResponseConverter.toResponseData,
); );
break; break;
...@@ -183,7 +148,6 @@ Future<dynamic> main(final context) async { ...@@ -183,7 +148,6 @@ Future<dynamic> main(final context) async {
requestingUser: requestingUser, requestingUser: requestingUser,
getTeamsOfUser: (user) => getUserTeams(user.id, membershipService), getTeamsOfUser: (user) => getUserTeams(user.id, membershipService),
getUserFromId: userService.getUser, getUserFromId: userService.getUser,
itemToResponse: UserRequestResponseConverter.toResponseData,
); );
break; break;
...@@ -194,8 +158,6 @@ Future<dynamic> main(final context) async { ...@@ -194,8 +158,6 @@ Future<dynamic> main(final context) async {
requestingUser: requestingUser, requestingUser: requestingUser,
requestingUserTeams: await getUserTeams(requestingUser.id, membershipService).toList(), requestingUserTeams: await getUserTeams(requestingUser.id, membershipService).toList(),
getRouteFromId: routeDatabase.get, getRouteFromId: routeDatabase.get,
itemFromRequest: DrivenDistanceDistributedPaymentRequestResponseConverter.fromRequest,
itemToResponse: DrivenDistanceDistributedPaymentRequestResponseConverter.toResponseData,
); );
break; break;
...@@ -205,8 +167,6 @@ Future<dynamic> main(final context) async { ...@@ -205,8 +167,6 @@ Future<dynamic> main(final context) async {
database: equallyDistributedPaymentDatabase, database: equallyDistributedPaymentDatabase,
requestingUser: requestingUser, requestingUser: requestingUser,
requestingUserTeams: await getUserTeams(requestingUser.id, membershipService).toList(), requestingUserTeams: await getUserTeams(requestingUser.id, membershipService).toList(),
itemFromRequest: EquallyDistributedPaymentRequestResponseConverter.fromRequest,
itemToResponse: EquallyDistributedPaymentRequestResponseConverter.toResponseData,
); );
break; break;
...@@ -215,8 +175,6 @@ Future<dynamic> main(final context) async { ...@@ -215,8 +175,6 @@ Future<dynamic> main(final context) async {
apiEndpoint = UserToUserPaymentApiEndpoint( apiEndpoint = UserToUserPaymentApiEndpoint(
database: userToUserPaymentDatabase, database: userToUserPaymentDatabase,
requestingUser: requestingUser, requestingUser: requestingUser,
itemFromRequest: UserToUserPaymentRequestResponseConverter.fromRequest,
itemToResponse: UserToUserPaymentRequestResponseConverter.toResponseData,
); );
break; break;
...@@ -225,10 +183,17 @@ Future<dynamic> main(final context) async { ...@@ -225,10 +183,17 @@ Future<dynamic> main(final context) async {
apiEndpoint = DebtApiEndpoint( apiEndpoint = DebtApiEndpoint(
debtService: debtService, debtService: debtService,
requestingUser: requestingUser, requestingUser: requestingUser,
itemToResponse: DebtRequestResponseConverter.toResponseData,
); );
break; break;
case membershipApiEndpoint:
var requestingUser = await getRequestingUser(context, userService);
apiEndpoint = MembershipApiEndpoint(
requestingUser: requestingUser,
getMembershipsByTeamId: membershipService.getTeamMemberships,
getMembershipsByUserId: membershipService.getUserMemberships,
);
default: default:
throw HttpException("Path $requestPath not found", uri: Uri.parse(context.req.url)); throw HttpException("Path $requestPath not found", uri: Uri.parse(context.req.url));
} }
......