createSession method

Future<Session> createSession({
  1. String? googleIdToken,
  2. String? appleIdToken,
  3. String? firstName,
  4. String? lastName,
})

Implementation

Future<Session> createSession({
  String? googleIdToken,
  String? appleIdToken,
  String? firstName,
  String? lastName,
}) async {
  final body = <String, dynamic>{};

  if (googleIdToken != null) {
    body['googleIdToken'] = googleIdToken;
  }

  if (appleIdToken != null) {
    body['appleIdToken'] = appleIdToken;
  }

  if (firstName != null) {
    body['firstName'] = firstName;
  }

  if (lastName != null) {
    body['lastName'] = lastName;
  }

  final response = await _post(
    path: '/sessions',
    body: body,
  );

  final json = jsonDecode(response.body);

  if (response.statusCode >= 400) {
    return Future.error(ApiError.fromJson(json));
  }

  return Session.fromJson(json);
}