Added Ads Repo
After Width: | Height: | Size: 6.4 KiB |
After Width: | Height: | Size: 4.9 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 44 KiB |
After Width: | Height: | Size: 45 KiB |
After Width: | Height: | Size: 16 KiB |
@ -1 +0,0 @@
|
||||
|
@ -0,0 +1,337 @@
|
||||
import 'package:mc_common_app/api/api_client.dart';
|
||||
import 'package:mc_common_app/classes/app_state.dart';
|
||||
import 'package:mc_common_app/classes/consts.dart';
|
||||
import 'package:mc_common_app/config/dependencies.dart';
|
||||
import 'package:mc_common_app/models/advertisment_models/ad_details_model.dart';
|
||||
import 'package:mc_common_app/models/advertisment_models/ads_duration_model.dart';
|
||||
import 'package:mc_common_app/models/advertisment_models/special_service_model.dart';
|
||||
import 'package:mc_common_app/models/advertisment_models/vehicle_details_models.dart';
|
||||
import 'package:mc_common_app/models/generic_resp_model.dart';
|
||||
|
||||
abstract class AdsRepo {
|
||||
Future<List<VehicleTypeModel>> getVehicleTypes();
|
||||
|
||||
Future<List<VehicleModel>> getVehicleModels({required int vehicleTypeId});
|
||||
|
||||
Future<List<VehicleYearModel>> getVehicleModelYears({required int vehicleTypeId});
|
||||
|
||||
Future<List<VehicleColorModel>> getVehicleColors({required int vehicleTypeId});
|
||||
|
||||
Future<List<VehicleConditionModel>> getVehicleConditions({required int vehicleTypeId});
|
||||
|
||||
Future<List<VehicleCategoryModel>> getVehicleCategories({required int vehicleTypeId});
|
||||
|
||||
Future<List<VehicleMileageModel>> getVehicleMileages({required int vehicleTypeId});
|
||||
|
||||
Future<List<VehicleTransmissionModel>> getVehicleTransmission({required int vehicleTypeId});
|
||||
|
||||
Future<List<VehicleSellerTypeModel>> getVehicleSellerTypes({required int vehicleTypeId});
|
||||
|
||||
Future<List<VehicleCountryModel>> getVehicleCountries();
|
||||
|
||||
Future<List<VehicleCityModel>> getVehicleCities({required int countryId});
|
||||
|
||||
Future<List<VehiclePartModel>> getVehicleDamageParts();
|
||||
|
||||
Future<VehicleDetailsModel> getVehicleDetails({required int vehicleTypeId});
|
||||
|
||||
Future<List<AdsDurationModel>> getAdsDuration();
|
||||
|
||||
Future<List<SpecialServiceModel>> getSpecialServices({required int specialServiceId});
|
||||
|
||||
Future<GenericRespModel> createNewAd({required AdsCreationPayloadModel adsCreationPayloadModel});
|
||||
|
||||
Future<List<AdDetailsModel>> getAllAds({required bool isMyAds});
|
||||
|
||||
Future<List<AdDetailsModel>> getMyAds();
|
||||
}
|
||||
|
||||
class AdsRepoImp implements AdsRepo {
|
||||
ApiClient apiClient = injector.get<ApiClient>();
|
||||
AppState appState = injector.get<AppState>();
|
||||
|
||||
@override
|
||||
Future<List<VehicleTypeModel>> getVehicleTypes() async {
|
||||
GenericRespModel adsGenericModel = await apiClient.getJsonForObject(token: appState.getUser.data!.accessToken, (json) => GenericRespModel.fromJson(json), ApiConsts.vehicleTypeGet);
|
||||
List<VehicleTypeModel> vehicleTypes = List.generate(adsGenericModel.data.length, (index) => VehicleTypeModel.fromJson(adsGenericModel.data[index]));
|
||||
return vehicleTypes;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<VehicleCategoryModel>> getVehicleCategories({required int vehicleTypeId}) async {
|
||||
var postParams = {
|
||||
"VehicleType": vehicleTypeId.toString(),
|
||||
};
|
||||
GenericRespModel adsGenericModel =
|
||||
await apiClient.getJsonForObject(token: appState.getUser.data!.accessToken, (json) => GenericRespModel.fromJson(json), ApiConsts.vehicleCategoryGet, queryParameters: postParams);
|
||||
List<VehicleCategoryModel> vehicleCategories = List.generate(adsGenericModel.data.length, (index) => VehicleCategoryModel.fromJson(adsGenericModel.data[index]));
|
||||
return vehicleCategories;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<VehicleCityModel>> getVehicleCities({required int countryId}) async {
|
||||
var postParams = {
|
||||
"CountryID": countryId.toString(),
|
||||
};
|
||||
GenericRespModel adsGenericModel =
|
||||
await apiClient.getJsonForObject(token: appState.getUser.data!.accessToken, (json) => GenericRespModel.fromJson(json), ApiConsts.vehicleCityGet, queryParameters: postParams);
|
||||
List<VehicleCityModel> vehicleCities = List.generate(adsGenericModel.data.length, (index) => VehicleCityModel.fromJson(adsGenericModel.data[index]));
|
||||
return vehicleCities;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<VehicleColorModel>> getVehicleColors({required int vehicleTypeId}) async {
|
||||
var postParams = {
|
||||
"VehicleType": vehicleTypeId.toString(),
|
||||
};
|
||||
GenericRespModel adsGenericModel =
|
||||
await apiClient.getJsonForObject(token: appState.getUser.data!.accessToken, (json) => GenericRespModel.fromJson(json), ApiConsts.vehicleColorGet, queryParameters: postParams);
|
||||
List<VehicleColorModel> vehicleColors = List.generate(adsGenericModel.data.length, (index) => VehicleColorModel.fromJson(adsGenericModel.data[index]));
|
||||
return vehicleColors;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<VehicleConditionModel>> getVehicleConditions({required int vehicleTypeId}) async {
|
||||
var postParams = {
|
||||
"VehicleType": vehicleTypeId.toString(),
|
||||
};
|
||||
GenericRespModel adsGenericModel =
|
||||
await apiClient.getJsonForObject(token: appState.getUser.data!.accessToken, (json) => GenericRespModel.fromJson(json), ApiConsts.vehicleConditionGet, queryParameters: postParams);
|
||||
List<VehicleConditionModel> vehicleConditions = List.generate(adsGenericModel.data.length, (index) => VehicleConditionModel.fromJson(adsGenericModel.data[index]));
|
||||
return vehicleConditions;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<VehicleCountryModel>> getVehicleCountries() async {
|
||||
GenericRespModel adsGenericModel = await apiClient.getJsonForObject(
|
||||
token: appState.getUser.data!.accessToken,
|
||||
(json) => GenericRespModel.fromJson(json),
|
||||
ApiConsts.vehicleCountryGet,
|
||||
);
|
||||
List<VehicleCountryModel> vehicleConditions = List.generate(adsGenericModel.data.length, (index) => VehicleCountryModel.fromJson(adsGenericModel.data[index]));
|
||||
return vehicleConditions;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<VehicleMileageModel>> getVehicleMileages({required int vehicleTypeId}) async {
|
||||
var postParams = {
|
||||
"VehicleType": vehicleTypeId.toString(),
|
||||
};
|
||||
GenericRespModel adsGenericModel =
|
||||
await apiClient.getJsonForObject(token: appState.getUser.data!.accessToken, (json) => GenericRespModel.fromJson(json), ApiConsts.vehicleMileageGet, queryParameters: postParams);
|
||||
List<VehicleMileageModel> vehicleMileages = List.generate(adsGenericModel.data.length, (index) => VehicleMileageModel.fromJson(adsGenericModel.data[index]));
|
||||
return vehicleMileages;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<VehicleYearModel>> getVehicleModelYears({required int vehicleTypeId}) async {
|
||||
var postParams = {
|
||||
"VehicleType": vehicleTypeId.toString(),
|
||||
};
|
||||
GenericRespModel adsGenericModel =
|
||||
await apiClient.getJsonForObject(token: appState.getUser.data!.accessToken, (json) => GenericRespModel.fromJson(json), ApiConsts.vehicleModelYearGet, queryParameters: postParams);
|
||||
List<VehicleYearModel> vehicleModelYears = List.generate(adsGenericModel.data.length, (index) => VehicleYearModel.fromJson(adsGenericModel.data[index]));
|
||||
return vehicleModelYears;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<VehicleModel>> getVehicleModels({required int vehicleTypeId}) async {
|
||||
var postParams = {
|
||||
"VehicleType": vehicleTypeId.toString(),
|
||||
};
|
||||
GenericRespModel adsGenericModel =
|
||||
await apiClient.getJsonForObject(token: appState.getUser.data!.accessToken, (json) => GenericRespModel.fromJson(json), ApiConsts.vehicleModelGet, queryParameters: postParams);
|
||||
List<VehicleModel> vehicleModels = List.generate(adsGenericModel.data.length, (index) => VehicleModel.fromJson(adsGenericModel.data[index]));
|
||||
return vehicleModels;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<VehicleSellerTypeModel>> getVehicleSellerTypes({required int vehicleTypeId}) async {
|
||||
var postParams = {
|
||||
"VehicleType": vehicleTypeId.toString(),
|
||||
};
|
||||
GenericRespModel adsGenericModel =
|
||||
await apiClient.getJsonForObject(token: appState.getUser.data!.accessToken, (json) => GenericRespModel.fromJson(json), ApiConsts.vehicleSellerTypeGet, queryParameters: postParams);
|
||||
List<VehicleSellerTypeModel> vehicleSellerTypes = List.generate(adsGenericModel.data.length, (index) => VehicleSellerTypeModel.fromJson(adsGenericModel.data[index]));
|
||||
return vehicleSellerTypes;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<VehicleTransmissionModel>> getVehicleTransmission({required int vehicleTypeId}) async {
|
||||
var postParams = {
|
||||
"VehicleType": vehicleTypeId.toString(),
|
||||
};
|
||||
GenericRespModel adsGenericModel =
|
||||
await apiClient.getJsonForObject(token: appState.getUser.data!.accessToken, (json) => GenericRespModel.fromJson(json), ApiConsts.vehicleTransmissionGet, queryParameters: postParams);
|
||||
List<VehicleTransmissionModel> vehicleTransmissions = List.generate(adsGenericModel.data.length, (index) => VehicleTransmissionModel.fromJson(adsGenericModel.data[index]));
|
||||
return vehicleTransmissions;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<VehicleDetailsModel> getVehicleDetails({required int vehicleTypeId}) async {
|
||||
var postParams = {
|
||||
"vehicleType": vehicleTypeId.toString(),
|
||||
"isVehicleBrand": "true",
|
||||
"vehicleBrand": "0",
|
||||
"isVehicleCategory": "true",
|
||||
"isVehicleColor": "true",
|
||||
"isVehicleCondition": "true",
|
||||
"isVehicleMileage": "true",
|
||||
"isVehicleModel": "true",
|
||||
"isVehicleModelYear": "true",
|
||||
"isVehiclePriceRange": "true",
|
||||
"isVehiclePricingMethod": "true",
|
||||
"isVehcileSellerType": "true",
|
||||
"isVehicleTransmission": "true",
|
||||
"isCountry": "true"
|
||||
};
|
||||
|
||||
String token = appState.getUser.data!.accessToken ?? "";
|
||||
GenericRespModel adsGenericModel = await apiClient.postJsonForObject(
|
||||
(json) => GenericRespModel.fromJson(json),
|
||||
ApiConsts.vehicleDetailsMaster,
|
||||
postParams,
|
||||
token: token,
|
||||
);
|
||||
VehicleDetailsModel vehicleDetails = VehicleDetailsModel.fromJson(adsGenericModel.data);
|
||||
return vehicleDetails;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<VehiclePartModel>> getVehicleDamageParts() async {
|
||||
GenericRespModel adsGenericModel = await apiClient.getJsonForObject(
|
||||
token: appState.getUser.data!.accessToken,
|
||||
(json) => GenericRespModel.fromJson(json),
|
||||
ApiConsts.vehicleDamagePartGet,
|
||||
);
|
||||
List<VehiclePartModel> vehicleParts = List.generate(adsGenericModel.data.length, (index) => VehiclePartModel.fromJson(adsGenericModel.data[index]));
|
||||
return vehicleParts;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<AdsDurationModel>> getAdsDuration() async {
|
||||
GenericRespModel adsGenericModel = await apiClient.getJsonForObject(
|
||||
token: appState.getUser.data!.accessToken,
|
||||
(json) => GenericRespModel.fromJson(json),
|
||||
ApiConsts.vehicleAdsDurationGet,
|
||||
);
|
||||
List<AdsDurationModel> vehicleAdsDuration = List.generate(adsGenericModel.data.length, (index) => AdsDurationModel.fromJson(adsGenericModel.data[index]));
|
||||
return vehicleAdsDuration;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<SpecialServiceModel>> getSpecialServices({required int specialServiceId}) async {
|
||||
var params = {
|
||||
"SpecialServiceType": specialServiceId.toString(),
|
||||
};
|
||||
GenericRespModel adsGenericModel =
|
||||
await apiClient.getJsonForObject(token: appState.getUser.data!.accessToken, (json) => GenericRespModel.fromJson(json), ApiConsts.vehicleAdsSpecialServicesGet, queryParameters: params);
|
||||
List<SpecialServiceModel> vehicleAdsDuration = List.generate(adsGenericModel.data.length, (index) => SpecialServiceModel.fromJson(adsGenericModel.data[index]));
|
||||
return vehicleAdsDuration;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<GenericRespModel> createNewAd({required AdsCreationPayloadModel adsCreationPayloadModel}) async {
|
||||
List vehiclePostingImages = [];
|
||||
adsCreationPayloadModel.vehiclePosting!.vehiclePostingImages?.forEach((element) {
|
||||
var imageMap = {
|
||||
"id": 0,
|
||||
"imageName": element.imageName,
|
||||
"imageUrl": element.imageUrl,
|
||||
"imageStr": element.imageStr,
|
||||
"vehiclePostingID": 0,
|
||||
"vehiclePosting": null,
|
||||
};
|
||||
vehiclePostingImages.add(imageMap);
|
||||
});
|
||||
|
||||
List vehiclePostingDamageParts = [];
|
||||
adsCreationPayloadModel.vehiclePosting!.vehiclePostingDamageParts?.forEach((element) {
|
||||
var imageMap = {
|
||||
"id": 0,
|
||||
"comment": element.comment,
|
||||
"vehicleImageBase64": element.vehicleImageBase64,
|
||||
"vehicleDamagePartID": element.vehicleDamagePartID,
|
||||
"vehiclePostingID": 0,
|
||||
"isActive": true
|
||||
};
|
||||
vehiclePostingDamageParts.add(imageMap);
|
||||
});
|
||||
var postParams = {
|
||||
"ads": {
|
||||
"id": 0,
|
||||
"adsDurationID": adsCreationPayloadModel.ads!.adsDurationID,
|
||||
"startDate": adsCreationPayloadModel.ads!.startDate,
|
||||
"countryId": adsCreationPayloadModel.ads!.countryId,
|
||||
"specialServiceIDs": adsCreationPayloadModel.ads!.specialServiceIDs,
|
||||
"isMCHandled": false
|
||||
},
|
||||
"vehiclePosting": {
|
||||
"id": 0,
|
||||
"userID": adsCreationPayloadModel.vehiclePosting!.userID,
|
||||
"vehicleType": adsCreationPayloadModel.vehiclePosting!.vehicleType,
|
||||
"vehicleModelID": adsCreationPayloadModel.vehiclePosting!.vehicleModelID,
|
||||
"vehicleModelYearID": adsCreationPayloadModel.vehiclePosting!.vehicleModelYearID,
|
||||
"vehicleColorID": adsCreationPayloadModel.vehiclePosting!.vehicleColorID,
|
||||
"vehicleCategoryID": adsCreationPayloadModel.vehiclePosting!.vehicleCategoryID,
|
||||
"vehicleConditionID": adsCreationPayloadModel.vehiclePosting!.vehicleConditionID,
|
||||
"vehicleMileageID": adsCreationPayloadModel.vehiclePosting!.vehicleMileageID,
|
||||
"vehicleTransmissionID": adsCreationPayloadModel.vehiclePosting!.vehicleTransmissionID,
|
||||
"vehicleSellerTypeID": adsCreationPayloadModel.vehiclePosting!.vehicleSellerTypeID,
|
||||
"cityID": adsCreationPayloadModel.vehiclePosting!.cityID,
|
||||
"price": adsCreationPayloadModel.vehiclePosting!.price,
|
||||
"vehicleVIN": adsCreationPayloadModel.vehiclePosting!.vehicleVIN,
|
||||
"vehicleDescription": adsCreationPayloadModel.vehiclePosting!.vehicleDescription,
|
||||
"vehicleTitle": adsCreationPayloadModel.vehiclePosting!.vehicleTitle,
|
||||
"vehicleDescriptionN": adsCreationPayloadModel.vehiclePosting!.vehicleDescription,
|
||||
"isFinanceAvailable": adsCreationPayloadModel.vehiclePosting!.isFinanceAvailable,
|
||||
"warantyYears": adsCreationPayloadModel.vehiclePosting!.warantyYears,
|
||||
"demandAmount": adsCreationPayloadModel.vehiclePosting!.demandAmount,
|
||||
// "adStatus": 1,
|
||||
"vehiclePostingImages": vehiclePostingImages,
|
||||
"vehiclePostingDamageParts": vehiclePostingDamageParts
|
||||
}
|
||||
};
|
||||
|
||||
String token = appState.getUser.data!.accessToken ?? "";
|
||||
GenericRespModel adsGenericModel = await apiClient.postJsonForObject(
|
||||
(json) => GenericRespModel.fromJson(json),
|
||||
ApiConsts.vehicleAdsSingleStepCreate,
|
||||
postParams,
|
||||
token: token,
|
||||
);
|
||||
|
||||
return Future.value(adsGenericModel);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<AdDetailsModel>> getAllAds({required isMyAds}) async {
|
||||
var params = {
|
||||
"userID": appState.getUser.data!.userInfo!.userId ?? "",
|
||||
};
|
||||
|
||||
GenericRespModel adsGenericModel = await apiClient.getJsonForObject(
|
||||
token: appState.getUser.data!.accessToken,
|
||||
(json) => GenericRespModel.fromJson(json),
|
||||
ApiConsts.vehicleAdsGet,
|
||||
queryParameters: isMyAds ? params : null,
|
||||
);
|
||||
List<AdDetailsModel> vehicleAdsDetails = List.generate(adsGenericModel.data.length, (index) => AdDetailsModel.fromJson(adsGenericModel.data[index]));
|
||||
return vehicleAdsDetails;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<AdDetailsModel>> getMyAds() async {
|
||||
var params = {
|
||||
"userID": appState.getUser.data!.userInfo!.userId ?? "",
|
||||
};
|
||||
GenericRespModel adsGenericModel = await apiClient.getJsonForObject(
|
||||
token: appState.getUser.data!.accessToken,
|
||||
(json) => GenericRespModel.fromJson(json),
|
||||
queryParameters: params,
|
||||
ApiConsts.vehicleAdsGet,
|
||||
);
|
||||
List<AdDetailsModel> vehicleAdsDetails = List.generate(adsGenericModel.data.length, (index) => AdDetailsModel.fromJson(adsGenericModel.data[index]));
|
||||
return vehicleAdsDetails;
|
||||
}
|
||||
}
|