TIF_E41211115_Genso_quiz_app/lib/data/services/session_service.dart

39 lines
1.2 KiB
Dart

import 'package:dio/dio.dart';
import 'package:get/get.dart';
import 'package:quiz_app/core/endpoint/api_endpoint.dart';
import 'package:quiz_app/data/models/base/base_model.dart';
import 'package:quiz_app/data/models/session/session_request_model.dart';
import 'package:quiz_app/data/models/session/session_response_model.dart';
import 'package:quiz_app/data/providers/dio_client.dart';
class SessionService extends GetxService {
late final Dio _dio;
@override
void onInit() {
_dio = Get.find<ApiClient>().dio;
super.onInit();
}
Future<BaseResponseModel<SessionResponseModel>?> createSession(SessionRequestModel data) async {
try {
final response = await _dio.post(APIEndpoint.session, data: {
'quiz_id': data.quizId,
'host_id': data.hostId,
'limit_participan': data.limitParticipan,
});
if (response.statusCode != 201) {
return null;
}
return BaseResponseModel.fromJson(response.data, (e) => SessionResponseModel.fromJson(e));
} on DioException catch (e) {
print('Error creating session: ${e.response?.data ?? e.message}');
return null;
} catch (e) {
print('Unexpected error: $e');
return null;
}
}
}