Initial commit

This commit is contained in:
jahongireshonqulov
2025-10-18 09:40:06 +05:00
commit 1bf3e41abe
352 changed files with 16315 additions and 0 deletions

View File

@@ -0,0 +1,9 @@
import 'package:cargocalculaterapp/features/calculator/data/model/calculate_price_response.dart';
import 'package:cargocalculaterapp/features/calculator/data/model/lead_create_response.dart';
import 'package:cargocalculaterapp/features/calculator/data/model/lead_create_request.dart';
import 'package:cargocalculaterapp/features/calculator/data/model/price_calculate_request.dart';
abstract class CalculatorRemoteDataSource {
Future<CalculatePriceResponse> priceCalculate(PriceCalculateRequest request);
Future<LeadCreateResponse> createLead(LeadCreateRequest request);
}

View File

@@ -0,0 +1,64 @@
import 'package:cargocalculaterapp/features/calculator/data/model/calculate_price_response.dart';
import 'package:cargocalculaterapp/features/calculator/data/model/price_calculate_request.dart';
import 'package:dio/dio.dart';
import '../../../../constants/constants.dart';
import '../../../../core/error/exceptions.dart';
import '../../../../core/local_source/local_source.dart';
import '../../../../injector_container.dart';
import '../model/lead_create_response.dart';
import '../model/lead_create_request.dart';
import 'calculator_remote_data_source.dart';
class CalculatorRemoteDataSourceImpl extends CalculatorRemoteDataSource {
final Dio dio;
CalculatorRemoteDataSourceImpl(this.dio);
@override
Future<CalculatePriceResponse> priceCalculate(
PriceCalculateRequest request,
) async {
try {
final Response response = await dio.post(
Constants.baseUrl + Urls.calculatePrice,
options:
DioConstants.options
..headers = {
"Authorization": "Bearer ${sl<LocalSource>().getAccessToken()}",
},
data: request,
);
if (response.statusCode == 200 || response.statusCode == 201) {
return CalculatePriceResponse.fromJson(response.data);
}
throw ServerException.fromJson(response.data);
} on DioException catch (e) {
throw ServerException.fromJson(e.response?.data);
} on FormatException {
throw ServerException(message: Validations.someThingWentWrong);
}
}
@override
Future<LeadCreateResponse> createLead(LeadCreateRequest request) async {
try {
final Response response = await dio.post(
Constants.baseUrl + Urls.lead,
options:
DioConstants.options
..headers = {
"Authorization": "Bearer ${sl<LocalSource>().getAccessToken()}",
},
data: request,
);
if (response.statusCode == 200 || response.statusCode == 201) {
return LeadCreateResponse.fromJson(response.data);
}
throw ServerException.fromJson(response.data);
} on DioException catch (e) {
throw ServerException.fromJson(e.response?.data);
} on FormatException {
throw ServerException(message: Validations.someThingWentWrong);
}
}
}