チームまでは表示できた。表示と更新及びメンバー編集不可。エントリー以降も表示不可。
This commit is contained in:
117
lib/pages/team/team_controller.dart
Normal file
117
lib/pages/team/team_controller.dart
Normal file
@ -0,0 +1,117 @@
|
||||
// lib/controllers/team_controller.dart
|
||||
|
||||
import 'package:get/get.dart';
|
||||
import 'package:rogapp/model/team.dart';
|
||||
import 'package:rogapp/model/category.dart';
|
||||
import 'package:rogapp/model/user.dart';
|
||||
import 'package:rogapp/services/api_service.dart';
|
||||
|
||||
class TeamController extends GetxController {
|
||||
late final ApiService _apiService;
|
||||
|
||||
|
||||
final teams = <Team>[].obs;
|
||||
final categories = <NewCategory>[].obs;
|
||||
final teamMembers = <User>[].obs;
|
||||
|
||||
final selectedCategory = Rx<NewCategory?>(null);
|
||||
final currentUser = Rx<User?>(null);
|
||||
|
||||
final isLoading = true.obs;
|
||||
final error = RxString('');
|
||||
|
||||
@override
|
||||
void onInit() async{
|
||||
super.onInit();
|
||||
try {
|
||||
//await Get.putAsync(() => ApiService().init());
|
||||
_apiService = Get.find<ApiService>();
|
||||
|
||||
await Future.wait([
|
||||
fetchTeams(),
|
||||
fetchCategories(),
|
||||
getCurrentUser(),
|
||||
]);
|
||||
|
||||
}catch(e){
|
||||
print("Team Controller error: $e");
|
||||
}finally{
|
||||
isLoading.value = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Future<void> fetchTeams() async {
|
||||
try {
|
||||
final fetchedTeams = await _apiService.getTeams();
|
||||
teams.assignAll(fetchedTeams);
|
||||
} catch (e) {
|
||||
print('Error fetching teams: $e');
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> fetchCategories() async {
|
||||
try {
|
||||
final fetchedCategories = await _apiService.getCategories();
|
||||
categories.assignAll(fetchedCategories);
|
||||
} catch (e) {
|
||||
print('Error fetching categories: $e');
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> getCurrentUser() async {
|
||||
try {
|
||||
final user = await _apiService.getCurrentUser();
|
||||
currentUser.value = user;
|
||||
} catch (e) {
|
||||
print('Error getting current user: $e');
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> createTeam(String teamName, int categoryId) async {
|
||||
try {
|
||||
final newTeam = await _apiService.createTeam(teamName, categoryId);
|
||||
teams.add(newTeam);
|
||||
} catch (e) {
|
||||
print('Error creating team: $e');
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> updateTeam(int teamId, String teamName, int categoryId) async {
|
||||
try {
|
||||
final updatedTeam = await _apiService.updateTeam(teamId, teamName, categoryId);
|
||||
final index = teams.indexWhere((team) => team.id == teamId);
|
||||
if (index != -1) {
|
||||
teams[index] = updatedTeam;
|
||||
}
|
||||
} catch (e) {
|
||||
print('Error updating team: $e');
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> deleteTeam(int teamId) async {
|
||||
try {
|
||||
await _apiService.deleteTeam(teamId);
|
||||
teams.removeWhere((team) => team.id == teamId);
|
||||
} catch (e) {
|
||||
print('Error deleting team: $e');
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> fetchTeamMembers(int teamId) async {
|
||||
try {
|
||||
final members = await _apiService.getTeamMembers(teamId);
|
||||
teamMembers.assignAll(members);
|
||||
} catch (e) {
|
||||
print('Error fetching team members: $e');
|
||||
}
|
||||
}
|
||||
|
||||
void updateTeamName(String value) {
|
||||
// Update local state
|
||||
}
|
||||
|
||||
void updateCategory(NewCategory? value) {
|
||||
selectedCategory.value = value;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user