passo_mobile_app/lib/sevices/profile/non_academic_services.dart

144 lines
4.9 KiB
Dart
Raw Normal View History

import 'dart:convert';
import 'package:http/http.dart' as http;
import 'package:unit2/bloc/profile/other_information/non_academic_recognition.dart/non_academic_recognition_bloc.dart';
import 'package:unit2/utils/request.dart';
import '../../model/profile/other_information/non_acedimic_recognition.dart';
import '../../utils/urls.dart';
class NonAcademicRecognitionServices {
static final NonAcademicRecognitionServices _instance =
NonAcademicRecognitionServices();
static NonAcademicRecognitionServices get instance => _instance;
////GET
Future<List<NonAcademicRecognition>> getNonAcademicRecognition(
int profileId, String token) async {
List<NonAcademicRecognition> nonAcademicRecognitions = [];
String authToken = "Token $token";
String path = "${Url.instance.getNonAcademicRecognition()}$profileId/";
Map<String, String> headers = {
'Content-Type': 'application/json; charset=UTF-8',
'Authorization': authToken
};
try {
http.Response response = await Request.instance
.getRequest(path: path, param: {}, headers: headers);
if (response.statusCode == 200) {
Map data = jsonDecode(response.body);
if (data['data'] != null) {
data['data'].forEach((var recognition) {
NonAcademicRecognition nonAcademicRecognition =
NonAcademicRecognition.fromJson(recognition);
nonAcademicRecognitions.add(nonAcademicRecognition);
});
}
}
} catch (e) {
throw e.toString();
}
return nonAcademicRecognitions;
}
////ADD
Future<Map<dynamic, dynamic>> add(
{required String token,
required int profileId,
required NonAcademicRecognition nonAcademicRecognition}) async {
String authToken = "Token $token";
String path = "${Url.instance.getNonAcademicRecognition()}$profileId/";
Map<String, String> headers = {
'Content-Type': 'application/json; charset=UTF-8',
'Authorization': authToken
};
Map body = {
"title": nonAcademicRecognition.title,
"presenter_id": nonAcademicRecognition.presenter?.id,
"_presenterName": nonAcademicRecognition.presenter!.name,
"_presenterCatId": nonAcademicRecognition.presenter!.category!.id,
"_privateEntity": nonAcademicRecognition.presenter!.privateEntity,
};
Map<dynamic, dynamic> statusResponse = {};
try {
http.Response response = await Request.instance
.postRequest(path: path, body: body, param: {}, headers: headers);
if (response.statusCode == 201) {
Map data = jsonDecode(response.body);
statusResponse = data;
} else {
statusResponse.addAll({"success": false});
}
} catch (e) {
throw e.toString();
}
return statusResponse;
}
////UPDATE
Future<Map<dynamic, dynamic>> update(
{required NonAcademicRecognition nonAcademicRecognition,
required int profileId,
required String token}) async {
String authToken = "Token $token";
String path = "${Url.instance.getNonAcademicRecognition()}$profileId/";
Map<String, String> headers = {
'Content-Type': 'application/json; charset=UTF-8',
'Authorization': authToken
};
Map<dynamic, dynamic> statusResponse = {};
Map body = {
"id": nonAcademicRecognition.id,
"title": nonAcademicRecognition.title,
"presenter_id": nonAcademicRecognition.presenter?.id,
"_presenterName": nonAcademicRecognition.presenter!.name,
"_presenterCatId": nonAcademicRecognition.presenter!.category!.id,
"_privateEntity": nonAcademicRecognition.presenter!.privateEntity
};
try {
http.Response response = await Request.instance
.putRequest(path: path, headers: headers, body: body, param: {});
if (response.statusCode == 200) {
Map data = jsonDecode(response.body);
statusResponse = data;
} else {
statusResponse.addAll({'success': false});
}
} catch (e) {
throw e.toString();
}
return statusResponse;
}
////DELETE
Future<bool> delete(
{required String title,
required int id,
required String token,
required int profileId}) async {
String authToken = "Token $token";
Map<String, dynamic> params = {"force_mode": "true"};
String path = "${Url.instance.getNonAcademicRecognition()}$profileId/";
Map<String, String> headers = {
'Content-Type': 'application/json; charset=UTF-8',
'Authorization': authToken
};
bool success = false;
Map body = {
"id": id,
"title": title,
};
try {
http.Response response = await Request.instance.deleteRequest(
path: path, headers: headers, body: body, param: params);
if (response.statusCode == 200) {
Map data = jsonDecode(response.body);
success = data['success'];
}
} catch (e) {
throw e.toString();
}
return success;
}
}