39 lines
1.2 KiB
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;
|
|
}
|
|
}
|
|
}
|