develop #1
|
@ -1,3 +1,4 @@
|
|||
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:quiz_app/core/endpoint/api_endpoint.dart';
|
||||
|
@ -33,6 +34,7 @@ class AuthService extends GetxService {
|
|||
final response = await _dio.post(APIEndpoint.login, data: data);
|
||||
|
||||
if (response.statusCode == 200) {
|
||||
print(response.data);
|
||||
final baseResponse = BaseResponseModel<LoginResponseModel>.fromJson(
|
||||
response.data,
|
||||
(json) => LoginResponseModel.fromJson(json),
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import 'package:get/get.dart';
|
||||
import 'package:quiz_app/data/controllers/user_controller.dart';
|
||||
import 'package:quiz_app/data/services/quiz_service.dart';
|
||||
import 'package:quiz_app/data/services/session_service.dart';
|
||||
import 'package:quiz_app/data/services/socket_service.dart';
|
||||
import 'package:quiz_app/feature/room_maker/controller/room_maker_controller.dart';
|
||||
|
@ -8,11 +9,13 @@ class RoomMakerBinding extends Bindings {
|
|||
@override
|
||||
void dependencies() {
|
||||
Get.lazyPut(() => SessionService());
|
||||
Get.lazyPut(() => QuizService());
|
||||
Get.put(SocketService());
|
||||
Get.lazyPut(() => RoomMakerController(
|
||||
Get.find<SessionService>(),
|
||||
Get.find<UserController>(),
|
||||
Get.find<SocketService>(),
|
||||
Get.find<QuizService>(),
|
||||
));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,8 +3,10 @@ import 'package:get/get.dart';
|
|||
import 'package:quiz_app/app/routes/app_pages.dart';
|
||||
import 'package:quiz_app/data/controllers/user_controller.dart';
|
||||
import 'package:quiz_app/data/dto/waiting_room_dto.dart';
|
||||
import 'package:quiz_app/data/models/base/base_model.dart';
|
||||
import 'package:quiz_app/data/models/quiz/quiz_listing_model.dart';
|
||||
import 'package:quiz_app/data/models/session/session_request_model.dart';
|
||||
import 'package:quiz_app/data/services/quiz_service.dart';
|
||||
import 'package:quiz_app/data/services/session_service.dart';
|
||||
import 'package:quiz_app/data/services/socket_service.dart';
|
||||
|
||||
|
@ -12,11 +14,13 @@ class RoomMakerController extends GetxController {
|
|||
final SessionService _sessionService;
|
||||
final UserController _userController;
|
||||
final SocketService _socketService;
|
||||
final QuizService _quizService;
|
||||
|
||||
RoomMakerController(
|
||||
this._sessionService,
|
||||
this._userController,
|
||||
this._socketService,
|
||||
this._quizService,
|
||||
);
|
||||
|
||||
// final roomName = ''.obs;
|
||||
|
@ -27,28 +31,20 @@ class RoomMakerController extends GetxController {
|
|||
final TextEditingController nameTC = TextEditingController();
|
||||
final TextEditingController maxPlayerTC = TextEditingController();
|
||||
|
||||
final availableQuizzes = <QuizListingModel>[
|
||||
QuizListingModel(
|
||||
quizId: '1',
|
||||
authorId: 'u1',
|
||||
authorName: 'Admin',
|
||||
title: 'Sejarah Indonesia',
|
||||
description: 'Kuis tentang kerajaan dan sejarah nusantara.',
|
||||
date: '2025-05-01',
|
||||
totalQuiz: 10,
|
||||
duration: 600,
|
||||
),
|
||||
QuizListingModel(
|
||||
quizId: '2',
|
||||
authorId: 'u2',
|
||||
authorName: 'Guru IPA',
|
||||
title: 'Ilmu Pengetahuan Alam',
|
||||
description: 'Kuis IPA untuk kelas 8.',
|
||||
date: '2025-04-28',
|
||||
totalQuiz: 15,
|
||||
duration: 900,
|
||||
),
|
||||
].obs;
|
||||
final availableQuizzes = <QuizListingModel>[].obs;
|
||||
|
||||
@override
|
||||
void onInit() {
|
||||
loadQuiz();
|
||||
super.onInit();
|
||||
}
|
||||
|
||||
loadQuiz() async {
|
||||
BaseResponseModel<List<QuizListingModel>>? response = await _quizService.userQuiz(_userController.userData!.id, 1);
|
||||
if (response != null) {
|
||||
availableQuizzes.assignAll(response.data!);
|
||||
}
|
||||
}
|
||||
|
||||
void onCreateRoom() async {
|
||||
if (nameTC.text.trim().isEmpty || selectedQuiz.value == null) {
|
||||
|
@ -74,8 +70,19 @@ class RoomMakerController extends GetxController {
|
|||
}
|
||||
}
|
||||
|
||||
void onQuizSourceChange(bool base) {
|
||||
void onQuizSourceChange(bool base) async {
|
||||
isOnwQuiz.value = base;
|
||||
if (base) {
|
||||
BaseResponseModel<List<QuizListingModel>>? response = await _quizService.userQuiz(_userController.userData!.id, 1);
|
||||
if (response != null) {
|
||||
availableQuizzes.assignAll(response.data!);
|
||||
}
|
||||
return;
|
||||
}
|
||||
BaseResponseModel<List<QuizListingModel>>? response = await _quizService.recomendationQuiz(page: 1, amount: 4);
|
||||
if (response != null) {
|
||||
availableQuizzes.assignAll(response.data!);
|
||||
}
|
||||
}
|
||||
|
||||
void onQuizChoosen(String quizId) {
|
||||
|
|
Loading…
Reference in New Issue