Team,Member, Entryの登録まで完了
This commit is contained in:
@ -11,6 +11,8 @@ import 'package:rogapp/model/category.dart';
|
||||
import 'package:rogapp/model/user.dart';
|
||||
import 'package:rogapp/pages/index/index_controller.dart';
|
||||
import '../utils/const.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
|
||||
|
||||
|
||||
class ApiService extends GetxService{
|
||||
@ -19,16 +21,18 @@ class ApiService extends GetxService{
|
||||
String baseUrl = '';
|
||||
String token = 'your-auth-token';
|
||||
|
||||
Future<void> init() async {
|
||||
Future<ApiService> init() async {
|
||||
try {
|
||||
// ここで必要な初期化処理を行う
|
||||
serverUrl = ConstValues.currentServer();
|
||||
baseUrl = '$serverUrl/api';
|
||||
//await Future.delayed(Duration(seconds: 2)); // 仮の遅延(実際の初期化処理に置き換えてください)
|
||||
print('ApiService initialized successfully');
|
||||
return this;
|
||||
} catch(e) {
|
||||
print('Error in ApiService initialization: $e');
|
||||
rethrow; // エラーを再スローして、呼び出し元で処理できるようにする
|
||||
//return this;
|
||||
}
|
||||
}
|
||||
|
||||
@ -232,7 +236,8 @@ class ApiService extends GetxService{
|
||||
);
|
||||
|
||||
if (response.statusCode == 201) {
|
||||
return Team.fromJson(json.decode(response.body));
|
||||
final decodedResponse = utf8.decode(response.bodyBytes);
|
||||
return Team.fromJson(json.decode(decodedResponse));
|
||||
} else {
|
||||
throw Exception('Failed to create team');
|
||||
}
|
||||
@ -255,7 +260,9 @@ class ApiService extends GetxService{
|
||||
);
|
||||
|
||||
if (response.statusCode == 200) {
|
||||
return Team.fromJson(json.decode(response.body));
|
||||
final decodedResponse = utf8.decode(response.bodyBytes);
|
||||
|
||||
return Team.fromJson(json.decode(decodedResponse));
|
||||
} else {
|
||||
throw Exception('Failed to update team');
|
||||
}
|
||||
@ -295,10 +302,15 @@ class ApiService extends GetxService{
|
||||
}
|
||||
}
|
||||
|
||||
Future<User> createTeamMember(int teamId, String email, String firstname, String lastname, DateTime? dateOfBirth) async {
|
||||
Future<User> createTeamMember(int teamId, String? email, String firstname, String lastname, DateTime? dateOfBirth,bool? female) async {
|
||||
init();
|
||||
getToken();
|
||||
|
||||
String? formattedDateOfBirth;
|
||||
if (dateOfBirth != null) {
|
||||
formattedDateOfBirth = DateFormat('yyyy-MM-dd').format(dateOfBirth);
|
||||
}
|
||||
|
||||
final response = await http.post(
|
||||
Uri.parse('$baseUrl/teams/$teamId/members/'),
|
||||
headers: {
|
||||
@ -309,21 +321,28 @@ class ApiService extends GetxService{
|
||||
'email': email,
|
||||
'firstname': firstname,
|
||||
'lastname': lastname,
|
||||
'date_of_birth': dateOfBirth?.toIso8601String(),
|
||||
'date_of_birth': formattedDateOfBirth,
|
||||
'female': female,
|
||||
}),
|
||||
);
|
||||
|
||||
if (response.statusCode == 201) {
|
||||
return User.fromJson(json.decode(response.body));
|
||||
final decodedResponse = utf8.decode(response.bodyBytes);
|
||||
return User.fromJson(json.decode(decodedResponse));
|
||||
} else {
|
||||
throw Exception('Failed to create team member');
|
||||
}
|
||||
}
|
||||
|
||||
Future<User> updateTeamMember(int teamId,int memberId, String firstname, String lastname, DateTime? dateOfBirth) async {
|
||||
Future<User> updateTeamMember(int teamId,int? memberId, String firstname, String lastname, DateTime? dateOfBirth,bool? female) async {
|
||||
init();
|
||||
getToken();
|
||||
|
||||
String? formattedDateOfBirth;
|
||||
if (dateOfBirth != null) {
|
||||
formattedDateOfBirth = DateFormat('yyyy-MM-dd').format(dateOfBirth);
|
||||
}
|
||||
|
||||
final response = await http.put(
|
||||
Uri.parse('$baseUrl/teams/$teamId/members/$memberId/'),
|
||||
headers: {
|
||||
@ -333,12 +352,14 @@ class ApiService extends GetxService{
|
||||
body: json.encode({
|
||||
'firstname': firstname,
|
||||
'lastname': lastname,
|
||||
'date_of_birth': dateOfBirth?.toIso8601String(),
|
||||
'date_of_birth': formattedDateOfBirth,
|
||||
'female': female,
|
||||
}),
|
||||
);
|
||||
|
||||
if (response.statusCode == 200) {
|
||||
return User.fromJson(json.decode(response.body));
|
||||
final decodedResponse = utf8.decode(response.bodyBytes);
|
||||
return User.fromJson(json.decode(decodedResponse));
|
||||
} else {
|
||||
throw Exception('Failed to update team member');
|
||||
}
|
||||
@ -378,13 +399,14 @@ class ApiService extends GetxService{
|
||||
getToken();
|
||||
|
||||
final response = await http.get(
|
||||
Uri.parse('$baseUrl/entries/'),
|
||||
Uri.parse('$baseUrl/entry/'),
|
||||
headers: {'Authorization': 'Token $token', 'Content-Type': 'application/json; charset=UTF-8',
|
||||
},
|
||||
);
|
||||
|
||||
if (response.statusCode == 200) {
|
||||
List<dynamic> entriesJson = json.decode(response.body);
|
||||
final decodedResponse = utf8.decode(response.bodyBytes);
|
||||
List<dynamic> entriesJson = json.decode(decodedResponse);
|
||||
return entriesJson.map((json) => Entry.fromJson(json)).toList();
|
||||
} else {
|
||||
throw Exception('Failed to load entries');
|
||||
@ -416,6 +438,11 @@ class ApiService extends GetxService{
|
||||
init();
|
||||
getToken();
|
||||
|
||||
String? formattedDate;
|
||||
if (date != null) {
|
||||
formattedDate = DateFormat('yyyy-MM-dd').format(date);
|
||||
}
|
||||
|
||||
final response = await http.post(
|
||||
Uri.parse('$baseUrl/entry/'),
|
||||
headers: {
|
||||
@ -426,12 +453,14 @@ class ApiService extends GetxService{
|
||||
'team': teamId,
|
||||
'event': eventId,
|
||||
'category': categoryId,
|
||||
'date': date.toIso8601String(),
|
||||
'date': formattedDate,
|
||||
}),
|
||||
);
|
||||
|
||||
if (response.statusCode == 201) {
|
||||
return Entry.fromJson(json.decode(response.body));
|
||||
final decodedResponse = utf8.decode(response.bodyBytes);
|
||||
|
||||
return Entry.fromJson(json.decode(decodedResponse));
|
||||
} else {
|
||||
throw Exception('Failed to create entry');
|
||||
}
|
||||
@ -441,6 +470,11 @@ class ApiService extends GetxService{
|
||||
init();
|
||||
getToken();
|
||||
|
||||
String? formattedDate;
|
||||
if (date != null) {
|
||||
formattedDate = DateFormat('yyyy-MM-dd').format(date);
|
||||
}
|
||||
|
||||
final response = await http.put(
|
||||
Uri.parse('$baseUrl/entry/$entryId/'),
|
||||
headers: {
|
||||
@ -450,12 +484,14 @@ class ApiService extends GetxService{
|
||||
body: json.encode({
|
||||
'event': eventId,
|
||||
'category': categoryId,
|
||||
'date': date.toIso8601String(),
|
||||
'date': formattedDate,
|
||||
}),
|
||||
);
|
||||
|
||||
if (response.statusCode == 200) {
|
||||
return Entry.fromJson(json.decode(response.body));
|
||||
final decodedResponse = utf8.decode(response.bodyBytes);
|
||||
|
||||
return Entry.fromJson(json.decode(decodedResponse));
|
||||
} else {
|
||||
throw Exception('Failed to update entry');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user