Skip to content
Snippets Groups Projects
calendar_event.dart 1.36 KiB
import 'package:api/model/request/calendar_event.dart';
import 'package:api/model/response/calendar_event.dart';
import 'package:lib/lib.dart';

class CalendarEventDbConverter {
  static const userIdDbFieldName = "userId";
  static const teamIdDbFieldName = "teamId";
  static const titleDbFieldName = "title";
  static const descriptionDbFieldName = "description";
  static const startDbFieldName = "start";
  static const endDbFieldName = "end";

  static Map<String, dynamic> toDbData(CalendarEventRequest request) {
    return {
      userIdDbFieldName: request.userId,
      teamIdDbFieldName: request.teamId,
      titleDbFieldName: request.title,
      descriptionDbFieldName: request.description,
      startDbFieldName: request.start.toIso8601String(),
      endDbFieldName: request.end.toIso8601String(),
    };
  }

  static CalendarEventResponse fromDbData(Map<String, dynamic> map) {
    return CalendarEventResponse(
      id: getRequiredMapItem(RequestResponseVariables.idFieldName, map),
      userId: getRequiredMapItem(userIdDbFieldName, map),
      teamId: getRequiredMapItem(teamIdDbFieldName, map),
      title: getRequiredMapItem(titleDbFieldName, map),
      description: getOptionalMapItem(descriptionDbFieldName, map),
      start: DateTime.parse(getRequiredMapItem(startDbFieldName, map)),
      end: DateTime.parse(getRequiredMapItem(endDbFieldName, map)),
    );
  }
}