├── img ├── rent-car-logo-.jpg └── rent-car-logo-professional.jpg ├── .mvn └── wrapper │ ├── maven-wrapper.jar │ └── maven-wrapper.properties ├── src ├── main │ ├── java │ │ ├── com │ │ │ └── kodlamaio │ │ │ │ └── rentAcar │ │ │ │ ├── bussines │ │ │ │ ├── response │ │ │ │ │ ├── invoices │ │ │ │ │ │ ├── GetByIdAdditionalInvoiceResponse.java │ │ │ │ │ │ ├── GetAllAdditionalInvoiceResponse.java │ │ │ │ │ │ ├── GetAllCorporateAdditionalInvoicesResponse.java │ │ │ │ │ │ ├── GetByIdCorporateCustomerAdditionalInvoiceResponse.java │ │ │ │ │ │ ├── GetAllIndividualAdditionalInvoicesResponse.java │ │ │ │ │ │ ├── GetByIdIndividualCustomerAdditionalInvoiceResponse.java │ │ │ │ │ │ ├── GetAllCorporateRentalInvoicesResponse.java │ │ │ │ │ │ ├── GetAllRentalInvoicesResponse.java │ │ │ │ │ │ ├── GetByIdRentalInvoiceResponse.java │ │ │ │ │ │ ├── GetByIdCorporateCustomerRentalInvoiceResponse.java │ │ │ │ │ │ ├── GetAllIndividualRentalInvoicesResponse.java │ │ │ │ │ │ └── GetByIdIndividualCustomerRentalInvoiceResponse.java │ │ │ │ │ ├── brands │ │ │ │ │ │ ├── GetByIdBrandResponse.java │ │ │ │ │ │ └── GetAllBrandsResponse.java │ │ │ │ │ ├── colors │ │ │ │ │ │ ├── GetByIdColorResponse.java │ │ │ │ │ │ └── GetAllColorsResponse.java │ │ │ │ │ ├── additionalItems │ │ │ │ │ │ ├── GetByIdAdditionalItemResponse.java │ │ │ │ │ │ └── GetAllAdditionalItemsResponse.java │ │ │ │ │ ├── address │ │ │ │ │ │ ├── GetAllAddressResponse.java │ │ │ │ │ │ └── GetByIdAddressResponse.java │ │ │ │ │ ├── maintenances │ │ │ │ │ │ ├── GetMaintenanceResponse.java │ │ │ │ │ │ └── GetAllMaintenancesResponse.java │ │ │ │ │ ├── corporateCustomers │ │ │ │ │ │ ├── GetAllCorporateCustomersResponse.java │ │ │ │ │ │ └── GetByIdCorporateCustomerResponse.java │ │ │ │ │ ├── orderedAdditionalItem │ │ │ │ │ │ ├── GetAllOrderedAdditionalItemsResponse.java │ │ │ │ │ │ └── GetByIdOrderedAdditionalItemResponse.java │ │ │ │ │ ├── cars │ │ │ │ │ │ ├── GetByIdCarResponse.java │ │ │ │ │ │ └── GetAllCarsResponse.java │ │ │ │ │ ├── rentals │ │ │ │ │ │ ├── GetRentalResponse.java │ │ │ │ │ │ ├── GetAllRentalsResponse.java │ │ │ │ │ │ ├── GetAllCorporateCustomerRentalsResponse.java │ │ │ │ │ │ ├── GetAllIndividualCustomerRentalsResponse.java │ │ │ │ │ │ ├── GetByIdCorporateCustomerRentalResponse.java │ │ │ │ │ │ └── GetByIdIndividualCustomerRentalResponse.java │ │ │ │ │ └── individualCustomers │ │ │ │ │ │ ├── GetAllIndividualCustomersResponse.java │ │ │ │ │ │ └── GetByIdIndividualCustomerResponse.java │ │ │ │ ├── request │ │ │ │ │ ├── cars │ │ │ │ │ │ ├── DeleteCarRequest.java │ │ │ │ │ │ ├── UpdateCarRequest.java │ │ │ │ │ │ └── CreateCarRequest.java │ │ │ │ │ ├── brands │ │ │ │ │ │ ├── DeleteBrandRequest.java │ │ │ │ │ │ ├── CreateBrandRequest.java │ │ │ │ │ │ └── UpdateBrandRequest.java │ │ │ │ │ ├── colors │ │ │ │ │ │ ├── DeleteColorRequest.java │ │ │ │ │ │ ├── CreateColorRequest.java │ │ │ │ │ │ └── UpdateColorRequest.java │ │ │ │ │ ├── rentals │ │ │ │ │ │ ├── DeleteRentalRequest.java │ │ │ │ │ │ ├── DeleteCorporateCustomerRentalRequest.java │ │ │ │ │ │ ├── DeleteIndividualCustomerRentalRequest.java │ │ │ │ │ │ ├── CreateRentalRequest.java │ │ │ │ │ │ ├── UpdateRentalRequest.java │ │ │ │ │ │ ├── CreateCorporateCustomerRentalRequest.java │ │ │ │ │ │ ├── CreateIndividualCustomerRentalRequest.java │ │ │ │ │ │ ├── UpdateCorporateCustomerRentalRequest.java │ │ │ │ │ │ └── UpdateIndividualCustomerRentalRequest.java │ │ │ │ │ ├── addresses │ │ │ │ │ │ ├── DeleteAddressRequest.java │ │ │ │ │ │ ├── DeleteCorporateCustomerAddressRequest.java │ │ │ │ │ │ ├── DeleteIndividualCustomerAddressRequest.java │ │ │ │ │ │ ├── UpdateBillingAddressRequest.java │ │ │ │ │ │ ├── UpdateContactAddressRequest.java │ │ │ │ │ │ ├── UpdateCorporateCustomerBillingAddressRequest.java │ │ │ │ │ │ ├── UpdateCorporateCustomerContactAddressRequest.java │ │ │ │ │ │ ├── UpdateIndividualCustomerBillingAddressRequest.java │ │ │ │ │ │ ├── UpdateIndividualCustomerContactAddressRequest.java │ │ │ │ │ │ ├── CreateAddressRequest.java │ │ │ │ │ │ ├── CreateCorporateCustomerAddressRequet.java │ │ │ │ │ │ └── CreateIndividualCustomerAddressRequest.java │ │ │ │ │ ├── invoices │ │ │ │ │ │ ├── DeleteInvoiceRequest.java │ │ │ │ │ │ ├── DeleteRentalInvoiceRequest.java │ │ │ │ │ │ ├── DeleteAdditionalInvoiceRequest.java │ │ │ │ │ │ ├── CreateInvoiceRequest.java │ │ │ │ │ │ ├── CreateRentalInvoiceRequest.java │ │ │ │ │ │ └── CreateAdditionalInvoiceRequest.java │ │ │ │ │ ├── maintenances │ │ │ │ │ │ ├── DeleteMaintenanceRequest.java │ │ │ │ │ │ ├── CreateMaintenanceRequest.java │ │ │ │ │ │ └── UpdateMaintenenceRequest.java │ │ │ │ │ ├── additionalItems │ │ │ │ │ │ ├── DeleteAdditionalItemRequest.java │ │ │ │ │ │ ├── CreateAdditionalItemRequest.java │ │ │ │ │ │ └── UpdateAdditionalItemRequest.java │ │ │ │ │ ├── corporateCustomers │ │ │ │ │ │ ├── DeleteCorporateCustomerRequest.java │ │ │ │ │ │ ├── CreateCorporateCustomerRequest.java │ │ │ │ │ │ └── UpdateCorporateCustomerRequest.java │ │ │ │ │ ├── orderedAdditionalItems │ │ │ │ │ │ ├── DeleteOrderedAdditionalItemRequest.java │ │ │ │ │ │ ├── CreateOrderedAdditionalItemRequest.java │ │ │ │ │ │ └── UpdateOrderedAdditionalItemRequest.java │ │ │ │ │ └── individualCustomers │ │ │ │ │ │ ├── DeleteIndividualCustomerRequest.java │ │ │ │ │ │ ├── CreateIndividualCustomerRequest.java │ │ │ │ │ │ └── UpdateIndividualCustomerRequest.java │ │ │ │ ├── abstracts │ │ │ │ │ ├── CarService.java │ │ │ │ │ ├── ColorService.java │ │ │ │ │ ├── BrandService.java │ │ │ │ │ ├── MaintenanceService.java │ │ │ │ │ ├── AdditionalItemService.java │ │ │ │ │ ├── CorporateCustomerService.java │ │ │ │ │ ├── OrderedAdditionalItemService.java │ │ │ │ │ ├── IndividualCustomerService.java │ │ │ │ │ ├── InvoiceService.java │ │ │ │ │ ├── RentalService.java │ │ │ │ │ └── AddressService.java │ │ │ │ └── concretes │ │ │ │ │ ├── ColorManager.java │ │ │ │ │ ├── BrandManager.java │ │ │ │ │ ├── AdditionalItemManager.java │ │ │ │ │ ├── CorporateCustomerManager.java │ │ │ │ │ ├── MaintenanceManager.java │ │ │ │ │ ├── CarManager.java │ │ │ │ │ ├── IndividualCustomerManager.java │ │ │ │ │ └── OrderedAdditionalItemManager.java │ │ │ │ ├── core │ │ │ │ ├── services │ │ │ │ │ └── findex │ │ │ │ │ │ ├── FindexCheckService.java │ │ │ │ │ │ ├── FindexScore.java │ │ │ │ │ │ └── FindexAdapter.java │ │ │ │ └── utilities │ │ │ │ │ ├── mapping │ │ │ │ │ ├── ModelMapperService.java │ │ │ │ │ └── ModelMapperServiceImpl.java │ │ │ │ │ ├── result │ │ │ │ │ ├── ErrorResult.java │ │ │ │ │ ├── SuccessResult.java │ │ │ │ │ ├── DataResult.java │ │ │ │ │ ├── ErrorDataResult.java │ │ │ │ │ ├── SuccessDataResult.java │ │ │ │ │ └── Result.java │ │ │ │ │ ├── exceptions │ │ │ │ │ └── BusinessException.java │ │ │ │ │ ├── mernis │ │ │ │ │ ├── PersonCheckService.java │ │ │ │ │ └── MernisKpsAdapter.java │ │ │ │ │ └── aspects │ │ │ │ │ └── LoggingAspect.java │ │ │ │ ├── dataAccess │ │ │ │ └── abstracts │ │ │ │ │ ├── CityRepository.java │ │ │ │ │ ├── RentalRepository.java │ │ │ │ │ ├── AddressRepository.java │ │ │ │ │ ├── InvoiceRepository.java │ │ │ │ │ ├── MaintenanceRepository.java │ │ │ │ │ ├── BrandRepository.java │ │ │ │ │ ├── AdditionalItemRepository.java │ │ │ │ │ ├── ColorRepository.java │ │ │ │ │ ├── CarRepository.java │ │ │ │ │ ├── OrderedAdditionalItemRepository.java │ │ │ │ │ ├── CorporateCustomerRepository.java │ │ │ │ │ └── IndividualCustomerRepository.java │ │ │ │ ├── entities │ │ │ │ └── concretes │ │ │ │ │ ├── Color.java │ │ │ │ │ ├── City.java │ │ │ │ │ ├── Brand.java │ │ │ │ │ ├── AdditionalItem.java │ │ │ │ │ ├── Address.java │ │ │ │ │ ├── Maintenance.java │ │ │ │ │ ├── CorporateCustomer.java │ │ │ │ │ ├── Invoice.java │ │ │ │ │ ├── Customer.java │ │ │ │ │ ├── OrderedAdditionalItem.java │ │ │ │ │ ├── IndividualCustomer.java │ │ │ │ │ ├── User.java │ │ │ │ │ ├── Car.java │ │ │ │ │ └── Rental.java │ │ │ │ ├── api │ │ │ │ └── controllers │ │ │ │ │ ├── CarsController.java │ │ │ │ │ ├── ColorController.java │ │ │ │ │ ├── BrandsController.java │ │ │ │ │ ├── AdditionalItemsController.java │ │ │ │ │ ├── OrderedAdditionalItemsController.java │ │ │ │ │ ├── MaintenancesController.java │ │ │ │ │ ├── CorporateCustomersController.java │ │ │ │ │ ├── IndividualCustomersController.java │ │ │ │ │ ├── RentalsController.java │ │ │ │ │ ├── AddressesController.java │ │ │ │ │ └── InvoicesController.java │ │ │ │ └── RentACarApplication.java │ │ └── tr │ │ │ └── gov │ │ │ └── nvi │ │ │ └── tckimlik │ │ │ └── WS │ │ │ ├── KPSPublicSoap.java │ │ │ ├── KPSPublic.java │ │ │ ├── KPSPublicSoapProxy.java │ │ │ ├── KPSPublicLocator.java │ │ │ └── KPSPublicSoapStub.java │ └── resources │ │ └── application.properties └── test │ └── java │ └── com │ └── kodlamaio │ └── rentAcar │ └── RentACarApplicationTests.java ├── .gitignore ├── LICENSE ├── README.md ├── pom.xml └── mvnw.cmd /img/rent-car-logo-.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ferhatclk/RentACar/HEAD/img/rent-car-logo-.jpg -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ferhatclk/RentACar/HEAD/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /img/rent-car-logo-professional.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ferhatclk/RentACar/HEAD/img/rent-car-logo-professional.jpg -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/invoices/GetByIdAdditionalInvoiceResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.invoices; 2 | 3 | public class GetByIdAdditionalInvoiceResponse { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/core/services/findex/FindexCheckService.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.core.services.findex; 2 | 3 | public interface FindexCheckService { 4 | int checkFindexScore(String nationalIdentity); 5 | } 6 | -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.4/apache-maven-3.8.4-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/core/utilities/mapping/ModelMapperService.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.core.utilities.mapping; 2 | 3 | import org.modelmapper.ModelMapper; 4 | 5 | public interface ModelMapperService { 6 | ModelMapper forResponse(); 7 | ModelMapper forRequest(); 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/core/utilities/result/ErrorResult.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.core.utilities.result; 2 | 3 | public class ErrorResult extends Result{ 4 | public ErrorResult() { 5 | super(false); 6 | } 7 | 8 | public ErrorResult(String message) { 9 | super(false,message); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/core/utilities/result/SuccessResult.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.core.utilities.result; 2 | 3 | public class SuccessResult extends Result{ 4 | public SuccessResult() { 5 | super(true); 6 | } 7 | 8 | public SuccessResult(String message) { 9 | super(true,message); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/test/java/com/kodlamaio/rentAcar/RentACarApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class RentACarApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/dataAccess/abstracts/CityRepository.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.dataAccess.abstracts; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | import com.kodlamaio.rentAcar.entities.concretes.City; 6 | 7 | public interface CityRepository extends JpaRepository{ 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/cars/DeleteCarRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.cars; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class DeleteCarRequest { 11 | private int id; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/brands/DeleteBrandRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.brands; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class DeleteBrandRequest { 11 | private int id; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/colors/DeleteColorRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.colors; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class DeleteColorRequest { 11 | private int id; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/brands/CreateBrandRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.brands; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class CreateBrandRequest { 11 | private String name; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/rentals/DeleteRentalRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.rentals; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class DeleteRentalRequest { 11 | private int id; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/addresses/DeleteAddressRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.addresses; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class DeleteAddressRequest { 11 | private int id; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/invoices/DeleteInvoiceRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.invoices; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class DeleteInvoiceRequest { 11 | private int id; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/brands/GetByIdBrandResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.brands; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class GetByIdBrandResponse { 11 | private int id; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/colors/GetByIdColorResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.colors; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class GetByIdColorResponse { 11 | private int id; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/colors/CreateColorRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.colors; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class CreateColorRequest { 11 | private String name; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/dataAccess/abstracts/RentalRepository.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.dataAccess.abstracts; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | import com.kodlamaio.rentAcar.entities.concretes.Rental; 6 | 7 | public interface RentalRepository extends JpaRepository{ 8 | Rental findById(int id); 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/invoices/DeleteRentalInvoiceRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.invoices; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class DeleteRentalInvoiceRequest { 11 | private int id; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/dataAccess/abstracts/AddressRepository.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.dataAccess.abstracts; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | import com.kodlamaio.rentAcar.entities.concretes.Address; 6 | 7 | public interface AddressRepository extends JpaRepository{ 8 | Address findById(int id); 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/dataAccess/abstracts/InvoiceRepository.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.dataAccess.abstracts; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | import com.kodlamaio.rentAcar.entities.concretes.Invoice; 6 | 7 | public interface InvoiceRepository extends JpaRepository{ 8 | Invoice findById(int id); 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/maintenances/DeleteMaintenanceRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.maintenances; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class DeleteMaintenanceRequest { 11 | private int id; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/core/utilities/exceptions/BusinessException.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.core.utilities.exceptions; 2 | 3 | public class BusinessException extends RuntimeException{ 4 | 5 | /** 6 | * 7 | */ 8 | private static final long serialVersionUID = 1L; 9 | 10 | public BusinessException(String message) { 11 | super(message); 12 | 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/brands/UpdateBrandRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.brands; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class UpdateBrandRequest { 11 | private int id; 12 | private String name; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/colors/UpdateColorRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.colors; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class UpdateColorRequest { 11 | private int id; 12 | private String name; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/invoices/DeleteAdditionalInvoiceRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.invoices; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class DeleteAdditionalInvoiceRequest { 11 | private int id; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/brands/GetAllBrandsResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.brands; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class GetAllBrandsResponse { 11 | private int id; 12 | private String name; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/colors/GetAllColorsResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.colors; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class GetAllColorsResponse { 11 | private int id; 12 | private String name; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect 2 | spring.jpa.hibernate.ddl-auto=update 3 | spring.jpa.hibernate.show-sql=true 4 | spring.datasource.url=jdbc:postgresql://localhost:5432/rentacardbcasgem 5 | spring.datasource.username=postgres 6 | spring.datasource.password=ferhat 7 | spring.jpa.properties.javax.persistence.validation.mode = none -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/additionalItems/DeleteAdditionalItemRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.additionalItems; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class DeleteAdditionalItemRequest { 11 | private int id; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/rentals/DeleteCorporateCustomerRentalRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.rentals; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class DeleteCorporateCustomerRentalRequest { 11 | private int id; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/rentals/DeleteIndividualCustomerRentalRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.rentals; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class DeleteIndividualCustomerRentalRequest { 11 | private int id; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/dataAccess/abstracts/MaintenanceRepository.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.dataAccess.abstracts; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | import com.kodlamaio.rentAcar.entities.concretes.Maintenance; 6 | 7 | public interface MaintenanceRepository extends JpaRepository{ 8 | Maintenance findById(int id); 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/addresses/DeleteCorporateCustomerAddressRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.addresses; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class DeleteCorporateCustomerAddressRequest { 11 | private int id; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/core/services/findex/FindexScore.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.core.services.findex; 2 | 3 | import java.util.Random; 4 | 5 | public class FindexScore { 6 | 7 | public int findexScore(String nationalIdantity) { 8 | Random random = new Random(); 9 | int score = random.nextInt(1900) ; 10 | System.out.println(score); 11 | return score; 12 | } 13 | 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/addresses/DeleteIndividualCustomerAddressRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.addresses; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class DeleteIndividualCustomerAddressRequest { 11 | private int id; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/invoices/CreateInvoiceRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.invoices; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class CreateInvoiceRequest { 11 | private String invoiceNumber; 12 | private int rentalId; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/dataAccess/abstracts/BrandRepository.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.dataAccess.abstracts; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | import com.kodlamaio.rentAcar.entities.concretes.Brand; 6 | 7 | public interface BrandRepository extends JpaRepository{ 8 | Brand findById(int id); 9 | Brand findByName(String name); 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/dataAccess/abstracts/AdditionalItemRepository.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.dataAccess.abstracts; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | import com.kodlamaio.rentAcar.entities.concretes.AdditionalItem; 6 | 7 | public interface AdditionalItemRepository extends JpaRepository{ 8 | AdditionalItem findById(int id); 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/dataAccess/abstracts/ColorRepository.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.dataAccess.abstracts; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | 6 | import com.kodlamaio.rentAcar.entities.concretes.Color; 7 | 8 | public interface ColorRepository extends JpaRepository{ 9 | Color findById(int id); 10 | Color findByName(String name); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/addresses/UpdateBillingAddressRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.addresses; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class UpdateBillingAddressRequest { 11 | private int id; 12 | private String billingAddress; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/addresses/UpdateContactAddressRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.addresses; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class UpdateContactAddressRequest { 11 | private int id; 12 | private String contactAddress; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/corporateCustomers/DeleteCorporateCustomerRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.corporateCustomers; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class DeleteCorporateCustomerRequest { 11 | private int corporateCustomerId; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/invoices/CreateRentalInvoiceRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.invoices; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class CreateRentalInvoiceRequest { 11 | private String invoiceNumber; 12 | private int rentalId; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/orderedAdditionalItems/DeleteOrderedAdditionalItemRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.orderedAdditionalItems; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class DeleteOrderedAdditionalItemRequest { 11 | private int id; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/additionalItems/CreateAdditionalItemRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.additionalItems; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class CreateAdditionalItemRequest { 11 | private String name; 12 | private double price; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/individualCustomers/DeleteIndividualCustomerRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.individualCustomers; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class DeleteIndividualCustomerRequest { 11 | private int individualCustomerId; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/additionalItems/GetByIdAdditionalItemResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.additionalItems; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class GetByIdAdditionalItemResponse { 11 | private String name; 12 | private double price; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/dataAccess/abstracts/CarRepository.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.dataAccess.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | 7 | import com.kodlamaio.rentAcar.entities.concretes.Car; 8 | 9 | public interface CarRepository extends JpaRepository{ 10 | List findByBrandId(int brandId); 11 | Car findById(int id); 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/invoices/CreateAdditionalInvoiceRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.invoices; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class CreateAdditionalInvoiceRequest { 11 | private String invoiceNumber; 12 | private int orderedAdditionalItemId; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/dataAccess/abstracts/OrderedAdditionalItemRepository.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.dataAccess.abstracts; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | import com.kodlamaio.rentAcar.entities.concretes.OrderedAdditionalItem; 6 | 7 | public interface OrderedAdditionalItemRepository extends JpaRepository{ 8 | OrderedAdditionalItem findById(int id); 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/additionalItems/UpdateAdditionalItemRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.additionalItems; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class UpdateAdditionalItemRequest { 11 | private int id; 12 | private String name; 13 | private double price; 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/addresses/UpdateCorporateCustomerBillingAddressRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.addresses; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class UpdateCorporateCustomerBillingAddressRequest { 11 | private int id; 12 | private String billingAddress; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/addresses/UpdateCorporateCustomerContactAddressRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.addresses; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class UpdateCorporateCustomerContactAddressRequest { 11 | private int id; 12 | private String contactAddress; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/core/utilities/mernis/PersonCheckService.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.core.utilities.mernis; 2 | 3 | import java.rmi.RemoteException; 4 | 5 | import com.kodlamaio.rentAcar.entities.concretes.IndividualCustomer; 6 | import com.kodlamaio.rentAcar.entities.concretes.User; 7 | 8 | public interface PersonCheckService { 9 | boolean checkPerson(IndividualCustomer user) throws NumberFormatException, RemoteException; 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/addresses/UpdateIndividualCustomerBillingAddressRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.addresses; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class UpdateIndividualCustomerBillingAddressRequest { 11 | private int id; 12 | private String billingAddress; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/addresses/UpdateIndividualCustomerContactAddressRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.addresses; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class UpdateIndividualCustomerContactAddressRequest { 11 | private int id; 12 | private String contactAddress; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/additionalItems/GetAllAdditionalItemsResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.additionalItems; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class GetAllAdditionalItemsResponse { 11 | private int id; 12 | private String name; 13 | private double price; 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/orderedAdditionalItems/CreateOrderedAdditionalItemRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.orderedAdditionalItems; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class CreateOrderedAdditionalItemRequest { 11 | private int additionalItemId; 12 | private int rentalId; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/address/GetAllAddressResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.address; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class GetAllAddressResponse { 11 | private int id; 12 | private String contactAddress; 13 | private String billingAddress; 14 | private int customerId; 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/corporateCustomers/CreateCorporateCustomerRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.corporateCustomers; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class CreateCorporateCustomerRequest { 11 | private String corporateCustomerName; 12 | private String corporateCustomerTaxNumber; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/address/GetByIdAddressResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.address; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class GetByIdAddressResponse { 11 | private int id; 12 | private String contactAddress; 13 | private String billingAddress; 14 | private int customerId; 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/tr/gov/nvi/tckimlik/WS/KPSPublicSoap.java: -------------------------------------------------------------------------------- 1 | /** 2 | * KPSPublicSoap.java 3 | * 4 | * This file was auto-generated from WSDL 5 | * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter. 6 | */ 7 | 8 | package tr.gov.nvi.tckimlik.WS; 9 | 10 | public interface KPSPublicSoap extends java.rmi.Remote { 11 | public boolean TCKimlikNoDogrula(long TCKimlikNo, java.lang.String ad, java.lang.String soyad, int dogumYili) throws java.rmi.RemoteException; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/maintenances/CreateMaintenanceRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.maintenances; 2 | 3 | import java.util.Date; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class CreateMaintenanceRequest { 13 | private Date dateSent; 14 | private Date dateReturned; 15 | private int carId; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/orderedAdditionalItems/UpdateOrderedAdditionalItemRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.orderedAdditionalItems; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class UpdateOrderedAdditionalItemRequest { 11 | private int id; 12 | private int additionalItemId; 13 | private int rentalId; 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/core/services/findex/FindexAdapter.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.core.services.findex; 2 | 3 | import org.springframework.stereotype.Service; 4 | 5 | @Service 6 | public class FindexAdapter implements FindexCheckService{ 7 | 8 | @Override 9 | public int checkFindexScore(String nationalIdentity) { 10 | FindexScore findexScore = new FindexScore(); 11 | int result = findexScore.findexScore(nationalIdentity); 12 | return result; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/dataAccess/abstracts/CorporateCustomerRepository.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.dataAccess.abstracts; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | import com.kodlamaio.rentAcar.entities.concretes.CorporateCustomer; 6 | 7 | public interface CorporateCustomerRepository extends JpaRepository{ 8 | CorporateCustomer findById(int id); 9 | CorporateCustomer findByCorporateCustomerName(String name); 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/maintenances/UpdateMaintenenceRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.maintenances; 2 | 3 | import java.util.Date; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class UpdateMaintenenceRequest { 13 | private int id; 14 | private Date dateSent; 15 | private Date dateReturned; 16 | private int carId; 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/maintenances/GetMaintenanceResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.maintenances; 2 | 3 | import java.util.Date; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class GetMaintenanceResponse { 13 | private int id; 14 | private Date dateSent; 15 | private Date dateReturned; 16 | private int carId; 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/dataAccess/abstracts/IndividualCustomerRepository.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.dataAccess.abstracts; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | import com.kodlamaio.rentAcar.entities.concretes.IndividualCustomer; 6 | 7 | public interface IndividualCustomerRepository extends JpaRepository{ 8 | IndividualCustomer findById(int id); 9 | IndividualCustomer findByNationalIdentity(String nationalIdentity); 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/maintenances/GetAllMaintenancesResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.maintenances; 2 | 3 | import java.util.Date; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class GetAllMaintenancesResponse { 13 | private int id; 14 | private Date dateSent; 15 | private Date dateReturned; 16 | private int carId; 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/corporateCustomers/UpdateCorporateCustomerRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.corporateCustomers; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class UpdateCorporateCustomerRequest { 11 | private int corporateCustomerId; 12 | private String corporateCustomerName; 13 | private String corporateCustomerTaxNumber; 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/addresses/CreateAddressRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.addresses; 2 | 3 | import javax.validation.constraints.NotNull; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class CreateAddressRequest { 13 | @NotNull 14 | private String contactAddress; 15 | 16 | private String billingAddress; 17 | private int userId; 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/corporateCustomers/GetAllCorporateCustomersResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.corporateCustomers; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class GetAllCorporateCustomersResponse { 11 | private int corporateCustomerId; 12 | private String corporateCustomerName; 13 | private String corporateCustomerTaxNumber; 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/corporateCustomers/GetByIdCorporateCustomerResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.corporateCustomers; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class GetByIdCorporateCustomerResponse { 11 | private int corporateCustomerId; 12 | private String corporateCustomerName; 13 | private String corporateCustomerTaxNumber; 14 | } 15 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/**/target/ 5 | !**/src/test/**/target/ 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | !**/src/main/**/build/ 30 | !**/src/test/**/build/ 31 | 32 | ### VS Code ### 33 | .vscode/ 34 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/invoices/GetAllAdditionalInvoiceResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.invoices; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class GetAllAdditionalInvoiceResponse { 11 | private int id; 12 | private String invoiceNumber; 13 | private String userFirstName; 14 | private String userLastName; 15 | private String additionalItem; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/core/utilities/result/DataResult.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.core.utilities.result; 2 | 3 | public class DataResult extends Result { 4 | 5 | private T data; 6 | public DataResult(T data, boolean success, String message) { 7 | super(success, message); 8 | this.data = data; 9 | } 10 | 11 | public DataResult(T data, boolean success) { 12 | super(success); 13 | this.data = data; 14 | } 15 | 16 | public T getData() { 17 | return this.data; 18 | } 19 | 20 | 21 | 22 | 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/core/utilities/result/ErrorDataResult.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.core.utilities.result; 2 | 3 | public class ErrorDataResult extends DataResult { 4 | 5 | public ErrorDataResult(T data, String message) { 6 | super(data, false ,message); 7 | } 8 | 9 | public ErrorDataResult(T data) { 10 | super(data,false); 11 | } 12 | 13 | public ErrorDataResult(String message) { 14 | super(null, false ,message); 15 | } 16 | 17 | public ErrorDataResult() { 18 | super(null, false); 19 | } 20 | 21 | } -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/orderedAdditionalItem/GetAllOrderedAdditionalItemsResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.orderedAdditionalItem; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class GetAllOrderedAdditionalItemsResponse { 11 | private int id; 12 | private int rentalId; 13 | private int additionalItemId; 14 | private double totalPrice; 15 | private long days; 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/orderedAdditionalItem/GetByIdOrderedAdditionalItemResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.orderedAdditionalItem; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class GetByIdOrderedAdditionalItemResponse { 11 | private int id; 12 | private int rentalId; 13 | private int additionalItemId; 14 | private double totalPrice; 15 | private long days; 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/cars/UpdateCarRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.cars; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class UpdateCarRequest { 11 | private int id; 12 | private String description; 13 | private double dailyPrice; 14 | private String plate; 15 | private int findexScore; 16 | private int km; 17 | private int brandId; 18 | private int colorId; 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/cars/GetByIdCarResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.cars; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class GetByIdCarResponse { 11 | private int id; 12 | private String description; 13 | private double dailyPrice; 14 | private String plate; 15 | private int km; 16 | private int state; 17 | private int brandId; 18 | private int colorId; 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/rentals/CreateRentalRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.rentals; 2 | 3 | import java.util.Date; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class CreateRentalRequest { 13 | private Date pickupDate; 14 | private Date returnDate; 15 | private int pickUpCityId; 16 | private int returnCityId; 17 | private int carId; 18 | private int customerId; 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/core/utilities/result/SuccessDataResult.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.core.utilities.result; 2 | 3 | public class SuccessDataResult extends DataResult { 4 | 5 | public SuccessDataResult(T data, String message) { 6 | super(data, true ,message); 7 | } 8 | 9 | public SuccessDataResult(T data) { 10 | super(data,true); 11 | } 12 | 13 | public SuccessDataResult(String message) { 14 | super(null, true ,message); 15 | } 16 | 17 | public SuccessDataResult() { 18 | super(null, true); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/addresses/CreateCorporateCustomerAddressRequet.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.addresses; 2 | 3 | import javax.validation.constraints.NotNull; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class CreateCorporateCustomerAddressRequet { 13 | @NotNull 14 | private String contactAddress; 15 | 16 | private String billingAddress; 17 | private int customerId; 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/addresses/CreateIndividualCustomerAddressRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.addresses; 2 | 3 | import javax.validation.constraints.NotNull; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class CreateIndividualCustomerAddressRequest { 13 | @NotNull 14 | private String contactAddress; 15 | 16 | private String billingAddress; 17 | private int customerId; 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/rentals/UpdateRentalRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.rentals; 2 | 3 | import java.util.Date; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class UpdateRentalRequest { 13 | private int id; 14 | private Date pickupDate; 15 | private Date returnDate; 16 | private int pickUpCityId; 17 | private int returnCityId; 18 | private int carId; 19 | private int customerId; 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/cars/GetAllCarsResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.cars; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class GetAllCarsResponse { 11 | private int id; 12 | private String description; 13 | private double dailyPrice; 14 | private String plate; 15 | private int km; 16 | private int findexScore; 17 | private int state; 18 | private int brandId; 19 | private int colorId; 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/invoices/GetAllCorporateAdditionalInvoicesResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.invoices; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class GetAllCorporateAdditionalInvoicesResponse { 11 | private int id; 12 | private String invoiceNumber; 13 | private String customerCorporateCustomerName; 14 | private String additionalItem; 15 | private double additionalItemTotalPrice; 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/rentals/CreateCorporateCustomerRentalRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.rentals; 2 | 3 | import java.util.Date; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class CreateCorporateCustomerRentalRequest { 13 | private Date pickupDate; 14 | private Date returnDate; 15 | private int pickupCityId; 16 | private int returnCityId; 17 | private int carId; 18 | private int customerId; 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/rentals/CreateIndividualCustomerRentalRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.rentals; 2 | 3 | import java.util.Date; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class CreateIndividualCustomerRentalRequest { 13 | private Date pickupDate; 14 | private Date returnDate; 15 | private int pickUpCityId; 16 | private int returnCityId; 17 | private int carId; 18 | private int customerId; 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/invoices/GetByIdCorporateCustomerAdditionalInvoiceResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.invoices; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class GetByIdCorporateCustomerAdditionalInvoiceResponse { 11 | private int id; 12 | private String invoiceNumber; 13 | private String customerCorporateCustomerName; 14 | private String additionalItem; 15 | private double additionalItemTotalPrice; 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/rentals/UpdateCorporateCustomerRentalRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.rentals; 2 | 3 | import java.util.Date; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class UpdateCorporateCustomerRentalRequest { 13 | private int id; 14 | private Date pickupDate; 15 | private Date returnDate; 16 | private int pickUpCityId; 17 | private int returnCityId; 18 | private int carId; 19 | private int customerId; 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/rentals/UpdateIndividualCustomerRentalRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.rentals; 2 | 3 | import java.util.Date; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class UpdateIndividualCustomerRentalRequest { 13 | private int id; 14 | private Date pickupDate; 15 | private Date returnDate; 16 | private int pickUpCityId; 17 | private int returnCityId; 18 | private int carId; 19 | private int customerId; 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/invoices/GetAllIndividualAdditionalInvoicesResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.invoices; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class GetAllIndividualAdditionalInvoicesResponse { 11 | private int id; 12 | private String invoiceNumber; 13 | private String customerFirstName; 14 | private String customerLastName; 15 | private String additionalItem; 16 | private double additionalItemTotalPrice; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/core/utilities/result/Result.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.core.utilities.result; 2 | 3 | public class Result { 4 | private boolean success; 5 | private String message; 6 | 7 | public Result(boolean success) { 8 | this.success = success; 9 | } 10 | 11 | public Result(boolean success,String message) { 12 | this(success); 13 | this.message = message; 14 | } 15 | 16 | public boolean isSuccess() { 17 | return this.success; 18 | } 19 | 20 | public String getMessage() { 21 | return this.message; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/invoices/GetByIdIndividualCustomerAdditionalInvoiceResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.invoices; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class GetByIdIndividualCustomerAdditionalInvoiceResponse { 11 | private int id; 12 | private String invoiceNumber; 13 | private String customerFirstName; 14 | private String customerLastName; 15 | private String additionalItem; 16 | private double additionalItemTotalPrice; 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/rentals/GetRentalResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.rentals; 2 | 3 | import java.util.Date; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class GetRentalResponse { 13 | private int id; 14 | private Date pickupDate; 15 | private Date returnDate; 16 | private long totalDays; 17 | private double totalPrice; 18 | private int pickupCityId; 19 | private int returnCityId; 20 | private int carId; 21 | private int customerId; 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/tr/gov/nvi/tckimlik/WS/KPSPublic.java: -------------------------------------------------------------------------------- 1 | /** 2 | * KPSPublic.java 3 | * 4 | * This file was auto-generated from WSDL 5 | * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter. 6 | */ 7 | 8 | package tr.gov.nvi.tckimlik.WS; 9 | 10 | public interface KPSPublic extends javax.xml.rpc.Service { 11 | public java.lang.String getKPSPublicSoapAddress(); 12 | 13 | public tr.gov.nvi.tckimlik.WS.KPSPublicSoap getKPSPublicSoap() throws javax.xml.rpc.ServiceException; 14 | 15 | public tr.gov.nvi.tckimlik.WS.KPSPublicSoap getKPSPublicSoap(java.net.URL portAddress) throws javax.xml.rpc.ServiceException; 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/rentals/GetAllRentalsResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.rentals; 2 | 3 | import java.util.Date; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class GetAllRentalsResponse { 13 | private int id; 14 | private Date pickupDate; 15 | private Date returnDate; 16 | private long totalDays; 17 | private double totalPrice; 18 | private int pickupCityId; 19 | private int returnCityId; 20 | private int carId; 21 | private int customerId; 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/individualCustomers/GetAllIndividualCustomersResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.individualCustomers; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class GetAllIndividualCustomersResponse { 11 | private int individualCustomerId; 12 | private String firstName; 13 | private String lastName; 14 | private String nationalIdentity; 15 | private int birthDay; 16 | private String email; 17 | private String password; 18 | private String customerNumber; 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/individualCustomers/GetByIdIndividualCustomerResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.individualCustomers; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class GetByIdIndividualCustomerResponse { 11 | private int individualCustomerId; 12 | private String firstName; 13 | private String lastName; 14 | private String nationalIdentity; 15 | private int birthDay; 16 | private String email; 17 | private String password; 18 | private String customerNumber; 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/rentals/GetAllCorporateCustomerRentalsResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.rentals; 2 | 3 | import java.util.Date; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class GetAllCorporateCustomerRentalsResponse { 13 | private int id; 14 | private Date pickupDate; 15 | private Date returnDate; 16 | private long totalDays; 17 | private double totalPrice; 18 | private int pickupCityId; 19 | private int returnCityId; 20 | private int carId; 21 | private int customerId; 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/rentals/GetAllIndividualCustomerRentalsResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.rentals; 2 | 3 | import java.util.Date; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class GetAllIndividualCustomerRentalsResponse { 13 | private int id; 14 | private Date pickupDate; 15 | private Date returnDate; 16 | private long totalDays; 17 | private double totalPrice; 18 | private int pickupCityId; 19 | private int returnCityId; 20 | private int carId; 21 | private int customerId; 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/rentals/GetByIdCorporateCustomerRentalResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.rentals; 2 | 3 | import java.util.Date; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class GetByIdCorporateCustomerRentalResponse { 13 | private int id; 14 | private Date pickupDate; 15 | private Date returnDate; 16 | private long totalDays; 17 | private double totalPrice; 18 | private int pickupCityId; 19 | private int returnCityId; 20 | private int carId; 21 | private int customerId; 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/rentals/GetByIdIndividualCustomerRentalResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.rentals; 2 | 3 | import java.util.Date; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class GetByIdIndividualCustomerRentalResponse { 13 | private int id; 14 | private Date pickupDate; 15 | private Date returnDate; 16 | private long totalDays; 17 | private double totalPrice; 18 | private int pickupCityId; 19 | private int returnCityId; 20 | private int carId; 21 | private int customerId; 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/invoices/GetAllCorporateRentalInvoicesResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.invoices; 2 | 3 | import java.util.Date; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class GetAllCorporateRentalInvoicesResponse { 13 | private int id; 14 | private String invoiceNumber; 15 | private String customerCorporateCustomerName; 16 | private String brandName; 17 | private String carPlate; 18 | private Date rentalReturnDate; 19 | private Date rentalPickupDate; 20 | private double rentalTotalPrice; 21 | private String state; 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/invoices/GetAllRentalInvoicesResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.invoices; 2 | 3 | import java.util.Date; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class GetAllRentalInvoicesResponse { 13 | private int id; 14 | private String invoiceNumber; 15 | private String userFirstName; 16 | private String userLastName; 17 | private String brandName; 18 | private String carPlate; 19 | private Date rentalReturnDate; 20 | private Date rentalPickupDate; 21 | private double rentalTotalPrice; 22 | private String state; 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/invoices/GetByIdRentalInvoiceResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.invoices; 2 | 3 | import java.util.Date; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class GetByIdRentalInvoiceResponse { 13 | private int id; 14 | private String invoiceNumber; 15 | private String userFirstName; 16 | private String userLastName; 17 | private String brandName; 18 | private String carPlate; 19 | private Date rentalReturnDate; 20 | private Date rentalPickupDate; 21 | private double rentalTotalPrice; 22 | private String state; 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/individualCustomers/CreateIndividualCustomerRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.individualCustomers; 2 | 3 | import javax.validation.constraints.Size; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class CreateIndividualCustomerRequest { 13 | @Size(min = 2) 14 | private String firstName; 15 | @Size(min = 2) 16 | private String lastName; 17 | @Size(min = 11,max = 11) 18 | private String nationalIdentity; 19 | private int birthDay; 20 | private String email; 21 | private String password; 22 | private String customerNumber; 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/invoices/GetByIdCorporateCustomerRentalInvoiceResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.invoices; 2 | 3 | import java.util.Date; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class GetByIdCorporateCustomerRentalInvoiceResponse { 13 | private int id; 14 | private String invoiceNumber; 15 | private String customerCorporateCustomerName; 16 | private String brandName; 17 | private String carPlate; 18 | private Date rentalReturnDate; 19 | private Date rentalPickupDate; 20 | private double rentalTotalPrice; 21 | private String state; 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/invoices/GetAllIndividualRentalInvoicesResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.invoices; 2 | 3 | import java.util.Date; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class GetAllIndividualRentalInvoicesResponse { 13 | private int id; 14 | private String invoiceNumber; 15 | private String customerFirstName; 16 | private String customerLastName; 17 | private String brandName; 18 | private String carPlate; 19 | private Date rentalReturnDate; 20 | private Date rentalPickupDate; 21 | private double rentalTotalPrice; 22 | private String state; 23 | } 24 | 25 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/response/invoices/GetByIdIndividualCustomerRentalInvoiceResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.response.invoices; 2 | 3 | import java.util.Date; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class GetByIdIndividualCustomerRentalInvoiceResponse { 13 | private int id; 14 | private String invoiceNumber; 15 | private String userFirstName; 16 | private String userLastName; 17 | private String brandName; 18 | private String carPlate; 19 | private Date rentalReturnDate; 20 | private Date rentalPickupDate; 21 | private double rentalTotalPrice; 22 | private String state; 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/individualCustomers/UpdateIndividualCustomerRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.individualCustomers; 2 | 3 | import javax.validation.constraints.Size; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class UpdateIndividualCustomerRequest { 13 | private int individualCustomerId; 14 | @Size(min = 2) 15 | private String firstName; 16 | @Size(min = 2) 17 | private String lastName; 18 | @Size(min = 11, max = 11) 19 | private String nationalIdentity; 20 | private int birthDay; 21 | private String email; 22 | private String password; 23 | private String customerNumber; 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/request/cars/CreateCarRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.request.cars; 2 | 3 | import javax.validation.constraints.Min; 4 | import javax.validation.constraints.NotBlank; 5 | import javax.validation.constraints.NotNull; 6 | import javax.validation.constraints.Size; 7 | 8 | import lombok.AllArgsConstructor; 9 | import lombok.Data; 10 | import lombok.NoArgsConstructor; 11 | 12 | @Data 13 | @NoArgsConstructor 14 | @AllArgsConstructor 15 | public class CreateCarRequest { 16 | @NotBlank 17 | @Size(min=2) 18 | private String description; 19 | @Min(1000) 20 | @NotNull 21 | private double dailyPrice; 22 | private int findexScore; 23 | private String plate; 24 | private int km; 25 | private int brandId; 26 | private int colorId; 27 | 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/entities/concretes/Color.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.entities.concretes; 2 | 3 | import java.util.List; 4 | 5 | import javax.persistence.Column; 6 | import javax.persistence.Entity; 7 | import javax.persistence.GeneratedValue; 8 | import javax.persistence.GenerationType; 9 | import javax.persistence.Id; 10 | import javax.persistence.OneToMany; 11 | import javax.persistence.Table; 12 | 13 | import lombok.AllArgsConstructor; 14 | import lombok.Data; 15 | import lombok.NoArgsConstructor; 16 | 17 | @Data 18 | @NoArgsConstructor 19 | @AllArgsConstructor 20 | @Entity 21 | @Table(name = "colors") 22 | public class Color { 23 | @Id 24 | @GeneratedValue(strategy = GenerationType.IDENTITY) 25 | @Column(name = "id") 26 | private int id; 27 | 28 | @Column(name = "name") 29 | private String name; 30 | 31 | @OneToMany(mappedBy = "color") 32 | List cars; 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/core/utilities/mernis/MernisKpsAdapter.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.core.utilities.mernis; 2 | 3 | import java.rmi.RemoteException; 4 | 5 | import org.springframework.stereotype.Service; 6 | 7 | import com.kodlamaio.rentAcar.entities.concretes.IndividualCustomer; 8 | import com.kodlamaio.rentAcar.entities.concretes.User; 9 | 10 | import tr.gov.nvi.tckimlik.WS.KPSPublicSoapProxy; 11 | @Service 12 | public class MernisKpsAdapter implements PersonCheckService{ 13 | 14 | @Override 15 | public boolean checkPerson(IndividualCustomer user) throws NumberFormatException, RemoteException { 16 | KPSPublicSoapProxy kpsPublicSoapProxy = new KPSPublicSoapProxy(); 17 | boolean result = kpsPublicSoapProxy.TCKimlikNoDogrula(Long.parseLong(user.getNationalIdentity()), user.getFirstName().toUpperCase(), user.getLastName().toUpperCase(), user.getBirthDay()); 18 | return result; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/entities/concretes/City.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.entities.concretes; 2 | 3 | import java.util.List; 4 | 5 | import javax.persistence.Column; 6 | import javax.persistence.Entity; 7 | import javax.persistence.Id; 8 | import javax.persistence.OneToMany; 9 | import javax.persistence.Table; 10 | 11 | import lombok.AllArgsConstructor; 12 | import lombok.Data; 13 | import lombok.NoArgsConstructor; 14 | 15 | @Data 16 | @NoArgsConstructor 17 | @AllArgsConstructor 18 | @Entity 19 | @Table(name = "cities") 20 | public class City { 21 | @Id 22 | //@GeneratedValue(strategy = GenerationType.IDENTITY) 23 | @Column(name = "city_id") 24 | private int cityId; 25 | 26 | @Column(name = "city_name") 27 | private String cityName; 28 | 29 | @OneToMany(mappedBy = "pickupCity") 30 | private List pickupRentals; 31 | 32 | @OneToMany(mappedBy = "returnCity") 33 | private List returnRentals; 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/core/utilities/mapping/ModelMapperServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.core.utilities.mapping; 2 | 3 | import org.modelmapper.ModelMapper; 4 | import org.modelmapper.convention.MatchingStrategies; 5 | import org.springframework.stereotype.Service; 6 | 7 | @Service 8 | public class ModelMapperServiceImpl implements ModelMapperService{ 9 | private ModelMapper modelMapper; 10 | 11 | public ModelMapperServiceImpl(ModelMapper modelMapper) { 12 | this.modelMapper = modelMapper; 13 | } 14 | 15 | @Override 16 | public ModelMapper forResponse() { 17 | this.modelMapper.getConfiguration() 18 | .setAmbiguityIgnored(true).setMatchingStrategy(MatchingStrategies.LOOSE); 19 | return this.modelMapper; 20 | } 21 | 22 | @Override 23 | public ModelMapper forRequest() { 24 | this.modelMapper.getConfiguration() 25 | .setAmbiguityIgnored(true).setMatchingStrategy(MatchingStrategies.STANDARD); 26 | return this.modelMapper; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/entities/concretes/Brand.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.entities.concretes; 2 | 3 | import java.util.List; 4 | 5 | import javax.persistence.Column; 6 | import javax.persistence.Entity; 7 | import javax.persistence.GeneratedValue; 8 | import javax.persistence.GenerationType; 9 | import javax.persistence.Id; 10 | import javax.persistence.OneToMany; 11 | import javax.persistence.Table; 12 | 13 | import lombok.AllArgsConstructor; 14 | import lombok.Data; 15 | import lombok.NoArgsConstructor; 16 | //@JsonIgnoreProperties({"hibernateLazyInitializer","handler","cars"}) 17 | //eager loading 18 | @Data 19 | @NoArgsConstructor 20 | @AllArgsConstructor 21 | @Entity 22 | @Table(name="brands") 23 | public class Brand { 24 | @Id() 25 | @GeneratedValue(strategy = GenerationType.IDENTITY) 26 | @Column(name = "id") 27 | private int id; 28 | 29 | @Column(name = "name") 30 | private String name; 31 | 32 | @OneToMany(mappedBy = "brand") 33 | List cars; 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/entities/concretes/AdditionalItem.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.entities.concretes; 2 | 3 | import java.util.List; 4 | 5 | import javax.persistence.Column; 6 | import javax.persistence.Entity; 7 | import javax.persistence.GeneratedValue; 8 | import javax.persistence.GenerationType; 9 | import javax.persistence.Id; 10 | import javax.persistence.OneToMany; 11 | import javax.persistence.Table; 12 | 13 | import lombok.AllArgsConstructor; 14 | import lombok.Data; 15 | import lombok.NoArgsConstructor; 16 | 17 | @Data 18 | @NoArgsConstructor 19 | @AllArgsConstructor 20 | @Entity 21 | @Table(name = "additional_items") 22 | public class AdditionalItem { 23 | @Id 24 | @GeneratedValue(strategy = GenerationType.IDENTITY) 25 | @Column(name = "id") 26 | private int id; 27 | 28 | @Column(name = "name") 29 | private String name; 30 | 31 | @Column(name = "price") 32 | private double price; 33 | 34 | @OneToMany(mappedBy = "additionalItem") 35 | List additionals; 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/entities/concretes/Address.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.entities.concretes; 2 | 3 | import javax.persistence.Column; 4 | import javax.persistence.Entity; 5 | import javax.persistence.GeneratedValue; 6 | import javax.persistence.GenerationType; 7 | import javax.persistence.Id; 8 | import javax.persistence.JoinColumn; 9 | import javax.persistence.ManyToOne; 10 | import javax.persistence.Table; 11 | 12 | import lombok.AllArgsConstructor; 13 | import lombok.Data; 14 | import lombok.NoArgsConstructor; 15 | 16 | @Data 17 | @NoArgsConstructor 18 | @AllArgsConstructor 19 | @Entity 20 | @Table(name = "addresses") 21 | public class Address { 22 | @Id 23 | @GeneratedValue(strategy = GenerationType.IDENTITY) 24 | @Column(name = "id") 25 | private int id; 26 | 27 | @Column(name = "contact_address") 28 | private String contactAddress; 29 | 30 | @Column(name = "billing_address") 31 | private String billingAddress; 32 | 33 | @ManyToOne() 34 | @JoinColumn(name = "customer_id") 35 | private Customer customer; 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/entities/concretes/Maintenance.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.entities.concretes; 2 | 3 | import java.util.Date; 4 | 5 | import javax.persistence.Column; 6 | import javax.persistence.Entity; 7 | import javax.persistence.GeneratedValue; 8 | import javax.persistence.GenerationType; 9 | import javax.persistence.Id; 10 | import javax.persistence.JoinColumn; 11 | import javax.persistence.ManyToOne; 12 | import javax.persistence.Table; 13 | 14 | import lombok.AllArgsConstructor; 15 | import lombok.Data; 16 | import lombok.NoArgsConstructor; 17 | 18 | @Data 19 | @NoArgsConstructor 20 | @AllArgsConstructor 21 | @Entity 22 | @Table(name="maintenances") 23 | public class Maintenance { 24 | @Id() 25 | @GeneratedValue(strategy = GenerationType.IDENTITY) 26 | @Column(name = "id") 27 | private int id; 28 | 29 | @Column(name = "return_date") 30 | private Date returnDate; 31 | 32 | @Column(name="send_date") 33 | private Date sendDate; 34 | 35 | @ManyToOne 36 | @JoinColumn(name = "car_id") 37 | private Car car; 38 | 39 | } 40 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/entities/concretes/CorporateCustomer.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.entities.concretes; 2 | 3 | import javax.persistence.Column; 4 | import javax.persistence.Entity; 5 | import javax.persistence.PrimaryKeyJoinColumn; 6 | import javax.persistence.Table; 7 | 8 | import lombok.AllArgsConstructor; 9 | import lombok.Data; 10 | import lombok.EqualsAndHashCode; 11 | import lombok.NoArgsConstructor; 12 | 13 | @Data 14 | @EqualsAndHashCode(callSuper = false) 15 | @NoArgsConstructor 16 | @AllArgsConstructor 17 | @Entity 18 | @PrimaryKeyJoinColumn(name = "corporate_customer_id", referencedColumnName = "customer_id") 19 | @Table(name ="corporate_customers") 20 | public class CorporateCustomer extends Customer{ 21 | 22 | @Column(name = "corporate_customer_id", insertable = false, updatable = false) 23 | private int corporateCustomerId; 24 | 25 | @Column(name = "corporate_customer_name") 26 | private String corporateCustomerName; 27 | 28 | @Column(name = "corporate_customer_tax_number") 29 | private String corporateCustomerTaxNumber; 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/abstracts/CarService.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlamaio.rentAcar.bussines.request.cars.CreateCarRequest; 6 | import com.kodlamaio.rentAcar.bussines.request.cars.DeleteCarRequest; 7 | import com.kodlamaio.rentAcar.bussines.request.cars.UpdateCarRequest; 8 | import com.kodlamaio.rentAcar.bussines.response.cars.GetAllCarsResponse; 9 | import com.kodlamaio.rentAcar.bussines.response.cars.GetByIdCarResponse; 10 | import com.kodlamaio.rentAcar.core.utilities.result.DataResult; 11 | import com.kodlamaio.rentAcar.core.utilities.result.Result; 12 | import com.kodlamaio.rentAcar.entities.concretes.Car; 13 | 14 | public interface CarService { 15 | Result add(CreateCarRequest createCarRequest); 16 | 17 | Result delete(DeleteCarRequest deleteCarRequest); 18 | 19 | Result update(UpdateCarRequest updateCarRequest); 20 | 21 | DataResult> getAll(); 22 | 23 | DataResult getById(int id); 24 | 25 | Car getByCarId(int id); 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/entities/concretes/Invoice.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.entities.concretes; 2 | 3 | import javax.persistence.Column; 4 | import javax.persistence.Entity; 5 | import javax.persistence.GeneratedValue; 6 | import javax.persistence.GenerationType; 7 | import javax.persistence.Id; 8 | import javax.persistence.JoinColumn; 9 | import javax.persistence.OneToOne; 10 | import javax.persistence.Table; 11 | 12 | import lombok.AllArgsConstructor; 13 | import lombok.Data; 14 | import lombok.NoArgsConstructor; 15 | 16 | @Data 17 | @NoArgsConstructor 18 | @AllArgsConstructor 19 | @Entity 20 | @Table(name = "invoices") 21 | public class Invoice { 22 | @Id() 23 | @GeneratedValue(strategy = GenerationType.IDENTITY) 24 | @Column(name="id") 25 | private int id; 26 | 27 | @Column(name ="invoice_number") 28 | private String invoiceNumber; 29 | 30 | 31 | @Column(name = "total_price") 32 | private double totalPrice; 33 | 34 | @Column(name = "state") 35 | private int state; 36 | 37 | @OneToOne() 38 | @JoinColumn(name = "rental_id") 39 | private Rental rental; 40 | 41 | } 42 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/entities/concretes/Customer.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.entities.concretes; 2 | 3 | import java.util.List; 4 | 5 | import javax.persistence.Column; 6 | import javax.persistence.Entity; 7 | import javax.persistence.OneToMany; 8 | import javax.persistence.PrimaryKeyJoinColumn; 9 | import javax.persistence.Table; 10 | 11 | import lombok.AllArgsConstructor; 12 | import lombok.Data; 13 | import lombok.EqualsAndHashCode; 14 | import lombok.NoArgsConstructor; 15 | 16 | @Data 17 | @EqualsAndHashCode(callSuper=false) 18 | @NoArgsConstructor 19 | @AllArgsConstructor 20 | @Entity 21 | @PrimaryKeyJoinColumn(name = "customer_id", referencedColumnName = "id") 22 | @Table(name = "customers") 23 | public class Customer extends User{ 24 | 25 | @Column(name ="customer_id", insertable = false, updatable = false) 26 | private int customerId; 27 | 28 | @Column(name = "customer_number") 29 | private String customerNumber; 30 | 31 | @OneToMany(mappedBy = "customer") 32 | private List
addresses; 33 | 34 | @OneToMany(mappedBy = "customer") 35 | private List rentals; 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/abstracts/ColorService.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlamaio.rentAcar.bussines.request.colors.CreateColorRequest; 6 | import com.kodlamaio.rentAcar.bussines.request.colors.DeleteColorRequest; 7 | import com.kodlamaio.rentAcar.bussines.request.colors.UpdateColorRequest; 8 | import com.kodlamaio.rentAcar.bussines.response.colors.GetAllColorsResponse; 9 | import com.kodlamaio.rentAcar.bussines.response.colors.GetByIdColorResponse; 10 | import com.kodlamaio.rentAcar.core.utilities.result.DataResult; 11 | import com.kodlamaio.rentAcar.core.utilities.result.Result; 12 | import com.kodlamaio.rentAcar.entities.concretes.Color; 13 | 14 | public interface ColorService { 15 | Result add(CreateColorRequest createColorRequest); 16 | 17 | Result delete(DeleteColorRequest deleteColorRequest); 18 | 19 | Result update(UpdateColorRequest updateColorRequest); 20 | 21 | DataResult> getAll(); 22 | 23 | DataResult getById(int id); 24 | 25 | Color getByColorId(int id); 26 | } 27 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Ferhat ÇELİK 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/abstracts/BrandService.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlamaio.rentAcar.bussines.request.brands.CreateBrandRequest; 6 | import com.kodlamaio.rentAcar.bussines.request.brands.DeleteBrandRequest; 7 | import com.kodlamaio.rentAcar.bussines.request.brands.UpdateBrandRequest; 8 | import com.kodlamaio.rentAcar.bussines.response.brands.GetAllBrandsResponse; 9 | import com.kodlamaio.rentAcar.bussines.response.brands.GetByIdBrandResponse; 10 | import com.kodlamaio.rentAcar.core.utilities.result.DataResult; 11 | import com.kodlamaio.rentAcar.core.utilities.result.Result; 12 | import com.kodlamaio.rentAcar.entities.concretes.Brand; 13 | 14 | public interface BrandService { 15 | Result add(CreateBrandRequest createBrandRequest); 16 | 17 | Result delete(DeleteBrandRequest deleteBrandRequest); 18 | 19 | Result update(UpdateBrandRequest updateBrandRequest); 20 | 21 | DataResult> getAll(); 22 | 23 | DataResult getById(int id); 24 | 25 | Brand getByBrandId(int id); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/entities/concretes/OrderedAdditionalItem.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.entities.concretes; 2 | 3 | import javax.persistence.Column; 4 | import javax.persistence.Entity; 5 | import javax.persistence.GeneratedValue; 6 | import javax.persistence.GenerationType; 7 | import javax.persistence.Id; 8 | import javax.persistence.JoinColumn; 9 | import javax.persistence.ManyToOne; 10 | import javax.persistence.Table; 11 | 12 | import lombok.AllArgsConstructor; 13 | import lombok.Data; 14 | import lombok.NoArgsConstructor; 15 | 16 | @Data 17 | @NoArgsConstructor 18 | @AllArgsConstructor 19 | @Entity 20 | @Table(name = "ordered_additional_items") 21 | public class OrderedAdditionalItem { 22 | @Id 23 | @GeneratedValue(strategy = GenerationType.IDENTITY) 24 | @Column(name = "id") 25 | private int id; 26 | 27 | @Column(name = "total_price") 28 | private double totalPrice; 29 | 30 | @Column(name = "days") 31 | private long days; 32 | 33 | @ManyToOne 34 | @JoinColumn(name = "rental_id") 35 | private Rental rental; 36 | 37 | @ManyToOne 38 | @JoinColumn(name = "additional_item_id") 39 | private AdditionalItem additionalItem; 40 | 41 | } 42 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/entities/concretes/IndividualCustomer.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.entities.concretes; 2 | 3 | import javax.persistence.Column; 4 | import javax.persistence.Entity; 5 | import javax.persistence.PrimaryKeyJoinColumn; 6 | import javax.persistence.Table; 7 | 8 | import lombok.AllArgsConstructor; 9 | import lombok.Data; 10 | import lombok.EqualsAndHashCode; 11 | import lombok.NoArgsConstructor; 12 | 13 | @Data 14 | @EqualsAndHashCode(callSuper = false) 15 | @NoArgsConstructor 16 | @AllArgsConstructor 17 | @Entity 18 | @PrimaryKeyJoinColumn(name = "individual_customer_id", referencedColumnName = "customer_id") 19 | @Table(name = "individual_customers") 20 | public class IndividualCustomer extends Customer{ 21 | 22 | @Column(name ="individual_customer_id", insertable = false, updatable = false) 23 | private int individualCustomerId; 24 | 25 | @Column(name = "first_name") 26 | private String firstName; 27 | 28 | @Column(name = "last_name") 29 | private String lastName; 30 | 31 | @Column(name = "national_identity") 32 | private String nationalIdentity; 33 | 34 | @Column(name = "birth_day") 35 | private int birthDay; 36 | 37 | } 38 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/abstracts/MaintenanceService.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlamaio.rentAcar.bussines.request.maintenances.CreateMaintenanceRequest; 6 | import com.kodlamaio.rentAcar.bussines.request.maintenances.DeleteMaintenanceRequest; 7 | import com.kodlamaio.rentAcar.bussines.request.maintenances.UpdateMaintenenceRequest; 8 | import com.kodlamaio.rentAcar.bussines.response.maintenances.GetAllMaintenancesResponse; 9 | import com.kodlamaio.rentAcar.bussines.response.maintenances.GetMaintenanceResponse; 10 | import com.kodlamaio.rentAcar.core.utilities.result.DataResult; 11 | import com.kodlamaio.rentAcar.core.utilities.result.Result; 12 | 13 | public interface MaintenanceService { 14 | Result add(CreateMaintenanceRequest createMaintenanceRequest); 15 | Result delete(DeleteMaintenanceRequest deleteMaintenanceRequest); 16 | Result update(UpdateMaintenenceRequest updateMaintenenceRequest); 17 | //Result updateState(UpdateMaintenenceRequest updateMaintenenceRequest); 18 | DataResult getById(int id); 19 | DataResult> getAll(); 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/abstracts/AdditionalItemService.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlamaio.rentAcar.bussines.request.additionalItems.CreateAdditionalItemRequest; 6 | import com.kodlamaio.rentAcar.bussines.request.additionalItems.DeleteAdditionalItemRequest; 7 | import com.kodlamaio.rentAcar.bussines.request.additionalItems.UpdateAdditionalItemRequest; 8 | import com.kodlamaio.rentAcar.bussines.response.additionalItems.GetAllAdditionalItemsResponse; 9 | import com.kodlamaio.rentAcar.bussines.response.additionalItems.GetByIdAdditionalItemResponse; 10 | import com.kodlamaio.rentAcar.core.utilities.result.DataResult; 11 | import com.kodlamaio.rentAcar.core.utilities.result.Result; 12 | import com.kodlamaio.rentAcar.entities.concretes.AdditionalItem; 13 | 14 | public interface AdditionalItemService { 15 | Result add(CreateAdditionalItemRequest createAdditionalItemRequest); 16 | 17 | Result delete(DeleteAdditionalItemRequest deleteAdditionalItemRequest); 18 | 19 | Result update(UpdateAdditionalItemRequest updateAdditionalItemRequest); 20 | 21 | DataResult> getAll(); 22 | 23 | DataResult getById(int id); 24 | 25 | AdditionalItem getByAdditionalItemId(int id); 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/abstracts/CorporateCustomerService.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlamaio.rentAcar.bussines.request.corporateCustomers.CreateCorporateCustomerRequest; 6 | import com.kodlamaio.rentAcar.bussines.request.corporateCustomers.DeleteCorporateCustomerRequest; 7 | import com.kodlamaio.rentAcar.bussines.request.corporateCustomers.UpdateCorporateCustomerRequest; 8 | import com.kodlamaio.rentAcar.bussines.response.corporateCustomers.GetAllCorporateCustomersResponse; 9 | import com.kodlamaio.rentAcar.bussines.response.corporateCustomers.GetByIdCorporateCustomerResponse; 10 | import com.kodlamaio.rentAcar.core.utilities.result.DataResult; 11 | import com.kodlamaio.rentAcar.core.utilities.result.Result; 12 | import com.kodlamaio.rentAcar.entities.concretes.CorporateCustomer; 13 | 14 | public interface CorporateCustomerService { 15 | 16 | Result add(CreateCorporateCustomerRequest createCorporateCustomerRequet); 17 | Result delete(DeleteCorporateCustomerRequest deleteCorporateCustomerRequest); 18 | Result update(UpdateCorporateCustomerRequest updateCorporateCustomerRequest); 19 | DataResult> getAll(); 20 | DataResult getById(int id); 21 | CorporateCustomer getByCustomerId(int id); 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/abstracts/OrderedAdditionalItemService.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlamaio.rentAcar.bussines.request.orderedAdditionalItems.CreateOrderedAdditionalItemRequest; 6 | import com.kodlamaio.rentAcar.bussines.request.orderedAdditionalItems.DeleteOrderedAdditionalItemRequest; 7 | import com.kodlamaio.rentAcar.bussines.request.orderedAdditionalItems.UpdateOrderedAdditionalItemRequest; 8 | import com.kodlamaio.rentAcar.bussines.response.orderedAdditionalItem.GetAllOrderedAdditionalItemsResponse; 9 | import com.kodlamaio.rentAcar.bussines.response.orderedAdditionalItem.GetByIdOrderedAdditionalItemResponse; 10 | import com.kodlamaio.rentAcar.core.utilities.result.DataResult; 11 | import com.kodlamaio.rentAcar.core.utilities.result.Result; 12 | import com.kodlamaio.rentAcar.entities.concretes.OrderedAdditionalItem; 13 | 14 | public interface OrderedAdditionalItemService { 15 | Result add(CreateOrderedAdditionalItemRequest createAdditionalRequest); 16 | Result delete(DeleteOrderedAdditionalItemRequest deleteAdditionalRequest); 17 | Result update(UpdateOrderedAdditionalItemRequest updateAdditionalRequest); 18 | DataResult> getAll(); 19 | DataResult getById(int id); 20 | OrderedAdditionalItem getByOrderedAdditionalItemId(int id); 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/entities/concretes/User.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.entities.concretes; 2 | 3 | import javax.persistence.Column; 4 | import javax.persistence.Entity; 5 | import javax.persistence.GeneratedValue; 6 | import javax.persistence.GenerationType; 7 | import javax.persistence.Id; 8 | import javax.persistence.Inheritance; 9 | import javax.persistence.InheritanceType; 10 | import javax.persistence.Table; 11 | 12 | import lombok.AllArgsConstructor; 13 | import lombok.Data; 14 | import lombok.NoArgsConstructor; 15 | 16 | @Data 17 | //@EqualsAndHashCode(onlyExplicitlyIncluded = true) 18 | @NoArgsConstructor 19 | @AllArgsConstructor 20 | @Entity 21 | @Inheritance(strategy = InheritanceType.JOINED) 22 | @Table(name = "users") 23 | public class User { 24 | 25 | @Id 26 | @GeneratedValue(strategy = GenerationType.IDENTITY) 27 | @Column(name = "id") 28 | private int id; 29 | 30 | @Column(name = "email") 31 | private String email; 32 | 33 | @Column(name = "password") 34 | private String password; 35 | 36 | 37 | // @Column(name = "first_name") 38 | // private String firstName; 39 | // 40 | // @Column(name = "last_name") 41 | // private String lastName; 42 | // 43 | // @Column(name = "national_identity") 44 | // private String nationalIdentity; 45 | // 46 | // @Column(name = "birth_day") 47 | // private int birthDay; 48 | 49 | 50 | // @OneToMany(mappedBy = "user") 51 | // private List
addresses; 52 | // 53 | // @OneToMany(mappedBy = "user") 54 | // private List rentals; 55 | } 56 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/abstracts/IndividualCustomerService.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.abstracts; 2 | 3 | import java.rmi.RemoteException; 4 | import java.util.List; 5 | 6 | import com.kodlamaio.rentAcar.bussines.request.individualCustomers.CreateIndividualCustomerRequest; 7 | import com.kodlamaio.rentAcar.bussines.request.individualCustomers.DeleteIndividualCustomerRequest; 8 | import com.kodlamaio.rentAcar.bussines.request.individualCustomers.UpdateIndividualCustomerRequest; 9 | import com.kodlamaio.rentAcar.bussines.response.individualCustomers.GetAllIndividualCustomersResponse; 10 | import com.kodlamaio.rentAcar.bussines.response.individualCustomers.GetByIdIndividualCustomerResponse; 11 | import com.kodlamaio.rentAcar.core.utilities.result.DataResult; 12 | import com.kodlamaio.rentAcar.core.utilities.result.Result; 13 | import com.kodlamaio.rentAcar.entities.concretes.IndividualCustomer; 14 | 15 | public interface IndividualCustomerService { 16 | Result add(CreateIndividualCustomerRequest createIndividualCustomerRequest) throws NumberFormatException, RemoteException;; 17 | Result delete(DeleteIndividualCustomerRequest deleteIndividualCustomerRequest); 18 | Result update(UpdateIndividualCustomerRequest updateIndividualCustomerRequest); 19 | DataResult> getAll(); 20 | DataResult> getAll(int pageNo, int pageSize); 21 | DataResult getById(int id); 22 | IndividualCustomer getByCustomerId(int id); 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/entities/concretes/Car.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.entities.concretes; 2 | 3 | import java.util.List; 4 | 5 | import javax.persistence.Column; 6 | import javax.persistence.Entity; 7 | import javax.persistence.GeneratedValue; 8 | import javax.persistence.GenerationType; 9 | import javax.persistence.Id; 10 | import javax.persistence.JoinColumn; 11 | import javax.persistence.ManyToOne; 12 | import javax.persistence.OneToMany; 13 | import javax.persistence.Table; 14 | 15 | import lombok.AllArgsConstructor; 16 | import lombok.Builder; 17 | import lombok.Data; 18 | import lombok.NoArgsConstructor; 19 | 20 | @Data 21 | @AllArgsConstructor 22 | @NoArgsConstructor 23 | @Entity 24 | @Builder 25 | @Table(name = "cars") 26 | public class Car { 27 | @Id() 28 | @GeneratedValue(strategy = GenerationType.IDENTITY) 29 | @Column(name ="id") 30 | private int id; 31 | 32 | @Column(name = "description") 33 | private String description; 34 | 35 | @Column(name = "daily_price") 36 | private double dailyPrice; 37 | 38 | @Column(name = "plate") 39 | private String plate; 40 | 41 | @Column(name = "km") 42 | private int km; 43 | 44 | @Column(name = "min_findex") 45 | private int findexScore; 46 | 47 | @Column(name = "state") 48 | private int state; 49 | 50 | @ManyToOne 51 | @JoinColumn(name = "brand_id") 52 | private Brand brand; 53 | 54 | @ManyToOne 55 | @JoinColumn(name = "color_id") 56 | private Color color; 57 | 58 | @OneToMany(mappedBy = "car") 59 | List maintenances; 60 | 61 | @OneToMany(mappedBy = "car") 62 | List rentals; 63 | 64 | 65 | 66 | } 67 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/entities/concretes/Rental.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.entities.concretes; 2 | 3 | import java.util.Date; 4 | import java.util.List; 5 | 6 | import javax.persistence.CascadeType; 7 | import javax.persistence.Column; 8 | import javax.persistence.Entity; 9 | import javax.persistence.GeneratedValue; 10 | import javax.persistence.GenerationType; 11 | import javax.persistence.Id; 12 | import javax.persistence.JoinColumn; 13 | import javax.persistence.ManyToOne; 14 | import javax.persistence.OneToMany; 15 | import javax.persistence.OneToOne; 16 | import javax.persistence.Table; 17 | 18 | import lombok.AllArgsConstructor; 19 | import lombok.Data; 20 | import lombok.NoArgsConstructor; 21 | 22 | @Data 23 | @NoArgsConstructor 24 | @AllArgsConstructor 25 | @Entity 26 | @Table(name = "rentals") 27 | public class Rental { 28 | @Id 29 | @GeneratedValue(strategy = GenerationType.IDENTITY) 30 | @Column(name = "id") 31 | private int id; 32 | 33 | @Column(name = "pickup_date") 34 | private Date pickupDate; 35 | 36 | @Column(name = "return_date") 37 | private Date returnDate; 38 | 39 | @Column(name = "total_days") 40 | private long totalDays; 41 | 42 | @Column(name = "total_price") 43 | private double totalPrice; 44 | 45 | @ManyToOne 46 | @JoinColumn(name = "pickup_city_id") 47 | private City pickupCity; 48 | 49 | @ManyToOne 50 | @JoinColumn(name = "return_city_id") 51 | private City returnCity; 52 | 53 | @ManyToOne 54 | @JoinColumn(name = "car_id") 55 | private Car car; 56 | 57 | @ManyToOne 58 | @JoinColumn(name = "customer_id") 59 | private Customer customer; 60 | 61 | @OneToMany(mappedBy = "rental", cascade=CascadeType.REMOVE) 62 | List orderedAdditionalItems; 63 | 64 | @OneToOne(mappedBy = "rental") 65 | private Invoice invoice; 66 | 67 | } 68 | -------------------------------------------------------------------------------- /src/main/java/tr/gov/nvi/tckimlik/WS/KPSPublicSoapProxy.java: -------------------------------------------------------------------------------- 1 | package tr.gov.nvi.tckimlik.WS; 2 | 3 | public class KPSPublicSoapProxy implements tr.gov.nvi.tckimlik.WS.KPSPublicSoap { 4 | private String _endpoint = null; 5 | private tr.gov.nvi.tckimlik.WS.KPSPublicSoap kPSPublicSoap = null; 6 | 7 | public KPSPublicSoapProxy() { 8 | _initKPSPublicSoapProxy(); 9 | } 10 | 11 | public KPSPublicSoapProxy(String endpoint) { 12 | _endpoint = endpoint; 13 | _initKPSPublicSoapProxy(); 14 | } 15 | 16 | private void _initKPSPublicSoapProxy() { 17 | try { 18 | kPSPublicSoap = (new tr.gov.nvi.tckimlik.WS.KPSPublicLocator()).getKPSPublicSoap(); 19 | if (kPSPublicSoap != null) { 20 | if (_endpoint != null) 21 | ((javax.xml.rpc.Stub)kPSPublicSoap)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint); 22 | else 23 | _endpoint = (String)((javax.xml.rpc.Stub)kPSPublicSoap)._getProperty("javax.xml.rpc.service.endpoint.address"); 24 | } 25 | 26 | } 27 | catch (javax.xml.rpc.ServiceException serviceException) {} 28 | } 29 | 30 | public String getEndpoint() { 31 | return _endpoint; 32 | } 33 | 34 | public void setEndpoint(String endpoint) { 35 | _endpoint = endpoint; 36 | if (kPSPublicSoap != null) 37 | ((javax.xml.rpc.Stub)kPSPublicSoap)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint); 38 | 39 | } 40 | 41 | public tr.gov.nvi.tckimlik.WS.KPSPublicSoap getKPSPublicSoap() { 42 | if (kPSPublicSoap == null) 43 | _initKPSPublicSoapProxy(); 44 | return kPSPublicSoap; 45 | } 46 | 47 | public boolean TCKimlikNoDogrula(long TCKimlikNo, java.lang.String ad, java.lang.String soyad, int dogumYili) throws java.rmi.RemoteException{ 48 | if (kPSPublicSoap == null) 49 | _initKPSPublicSoapProxy(); 50 | return kPSPublicSoap.TCKimlikNoDogrula(TCKimlikNo, ad, soyad, dogumYili); 51 | } 52 | 53 | 54 | } -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/api/controllers/CarsController.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.api.controllers; 2 | 3 | import java.util.List; 4 | 5 | import javax.validation.Valid; 6 | 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | import org.springframework.web.bind.annotation.GetMapping; 9 | import org.springframework.web.bind.annotation.PostMapping; 10 | import org.springframework.web.bind.annotation.RequestBody; 11 | import org.springframework.web.bind.annotation.RequestMapping; 12 | import org.springframework.web.bind.annotation.RestController; 13 | 14 | import com.kodlamaio.rentAcar.bussines.abstracts.CarService; 15 | import com.kodlamaio.rentAcar.bussines.request.cars.CreateCarRequest; 16 | import com.kodlamaio.rentAcar.bussines.request.cars.DeleteCarRequest; 17 | import com.kodlamaio.rentAcar.bussines.request.cars.UpdateCarRequest; 18 | import com.kodlamaio.rentAcar.bussines.response.cars.GetAllCarsResponse; 19 | import com.kodlamaio.rentAcar.bussines.response.cars.GetByIdCarResponse; 20 | import com.kodlamaio.rentAcar.core.utilities.result.DataResult; 21 | import com.kodlamaio.rentAcar.core.utilities.result.Result; 22 | 23 | @RestController 24 | @RequestMapping("/api/cars") 25 | public class CarsController { 26 | 27 | private CarService carService; 28 | 29 | @Autowired 30 | public CarsController(CarService carService) { 31 | this.carService = carService; 32 | } 33 | 34 | @PostMapping("/add") 35 | public Result add(@RequestBody @Valid CreateCarRequest createcarRequest) { 36 | return this.carService.add(createcarRequest); 37 | } 38 | 39 | @PostMapping("/delete") 40 | public Result delete(DeleteCarRequest deleteCarRequest) { 41 | return carService.delete(deleteCarRequest); 42 | } 43 | 44 | @PostMapping("/update") 45 | public Result update(@RequestBody UpdateCarRequest updateCarRequest) { 46 | return carService.update(updateCarRequest); 47 | } 48 | 49 | @GetMapping("/getall") 50 | public DataResult> getAll(){ 51 | return carService.getAll(); 52 | } 53 | 54 | @GetMapping("/getbyid") 55 | public DataResult getById(int id) { 56 | return carService.getById(id); 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

Rent A Car Project

2 |

3 | 4 |

5 | 6 |

Rent A Car Backend Project is a demo built with Spring Boot.

7 | 8 | ## Features 9 | * Each brand can have a maximum of 5 vehicles, 10 | * The car can be delivered in different cities, 11 | * After the vehicle is delivered in different cities, an additional 750 TL is added to the invoice, 12 | * Additional service can be purchased, 13 | * Users can register to the system, list users with paging, 14 | * Users are authenticated from MERNIS, 15 | * Customers have a credit score, the credit score is withdrawn from findex with National Identity, 16 | * Customers can rent a car based on their credit score. 17 | 18 | ## Build With 19 |

20 | JAVA 21 | SPRINGBOOT 22 |

23 | 24 | 25 | ## Technologies, Tools And Techniques Used 26 | - Java 27 | - Spring Boot 28 | - N-Tier Architecture 29 | - JPA/Hibernate 30 | - Maven 31 | - Lombok 32 | - ModelMapper 33 | - AOP 34 | - Global Exception Handling 35 | - PostgreSQL 36 | 37 | ## Contributing 38 | 1. Fork the Project 39 | 2. Create your Feature Branch -`git checkout -b f/AmazingFeature` 40 | 3. Commit your Changes -`git commit -m 'Add some AmazingFeature'` 41 | 5. Push to the Branch -`git push origin f/AmazingFeature` 42 | 6. Open a Pull Request 43 | 44 | 45 | ## Contact 46 | 47 |

48 | Gmail 49 | LinkedIn 50 |

51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/api/controllers/ColorController.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.api.controllers; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.web.bind.annotation.GetMapping; 7 | import org.springframework.web.bind.annotation.PostMapping; 8 | import org.springframework.web.bind.annotation.RequestBody; 9 | import org.springframework.web.bind.annotation.RequestMapping; 10 | import org.springframework.web.bind.annotation.RestController; 11 | 12 | import com.kodlamaio.rentAcar.bussines.abstracts.ColorService; 13 | import com.kodlamaio.rentAcar.bussines.request.colors.CreateColorRequest; 14 | import com.kodlamaio.rentAcar.bussines.request.colors.DeleteColorRequest; 15 | import com.kodlamaio.rentAcar.bussines.request.colors.UpdateColorRequest; 16 | import com.kodlamaio.rentAcar.bussines.response.colors.GetAllColorsResponse; 17 | import com.kodlamaio.rentAcar.bussines.response.colors.GetByIdColorResponse; 18 | import com.kodlamaio.rentAcar.core.utilities.result.DataResult; 19 | import com.kodlamaio.rentAcar.core.utilities.result.Result; 20 | 21 | @RestController 22 | @RequestMapping("/api/colors") 23 | public class ColorController { 24 | private ColorService colorService; 25 | 26 | @Autowired 27 | public ColorController(ColorService colorService) { 28 | this.colorService = colorService; 29 | } 30 | 31 | @PostMapping("/add") 32 | public Result add(@RequestBody CreateColorRequest createColorRequest) { 33 | return this.colorService.add(createColorRequest); 34 | } 35 | 36 | @PostMapping("/delete") 37 | public Result delete(DeleteColorRequest deleteColorRequest) { 38 | return colorService.delete(deleteColorRequest); 39 | } 40 | 41 | @PostMapping("/update") 42 | public Result update(@RequestBody UpdateColorRequest updateColorRequest) { 43 | return colorService.update(updateColorRequest); 44 | } 45 | 46 | @GetMapping("/getall") // endpoint 47 | public DataResult> getAll() { 48 | return this.colorService.getAll(); 49 | } 50 | 51 | @GetMapping("/getbyid") 52 | public DataResult GetById(int id) { 53 | return colorService.getById(id); 54 | } 55 | 56 | 57 | 58 | } 59 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/api/controllers/BrandsController.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.api.controllers; 2 | 3 | 4 | import java.util.List; 5 | 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.web.bind.annotation.GetMapping; 8 | import org.springframework.web.bind.annotation.PostMapping; 9 | import org.springframework.web.bind.annotation.RequestBody; 10 | import org.springframework.web.bind.annotation.RequestMapping; 11 | import org.springframework.web.bind.annotation.RestController; 12 | 13 | import com.kodlamaio.rentAcar.bussines.abstracts.BrandService; 14 | import com.kodlamaio.rentAcar.bussines.request.brands.CreateBrandRequest; 15 | import com.kodlamaio.rentAcar.bussines.request.brands.DeleteBrandRequest; 16 | import com.kodlamaio.rentAcar.bussines.request.brands.UpdateBrandRequest; 17 | import com.kodlamaio.rentAcar.bussines.response.brands.GetAllBrandsResponse; 18 | import com.kodlamaio.rentAcar.bussines.response.brands.GetByIdBrandResponse; 19 | import com.kodlamaio.rentAcar.core.utilities.result.DataResult; 20 | import com.kodlamaio.rentAcar.core.utilities.result.Result; 21 | 22 | @RestController 23 | @RequestMapping("/api/brands") 24 | public class BrandsController { 25 | 26 | private BrandService brandService; 27 | 28 | @Autowired 29 | public BrandsController(BrandService brandService) { 30 | this.brandService = brandService; 31 | } 32 | 33 | @PostMapping("/add") // endpoint 34 | public Result add(@RequestBody CreateBrandRequest createBrandRequest) { 35 | return this.brandService.add(createBrandRequest); 36 | } 37 | 38 | @PostMapping("/delete") 39 | public Result delete(DeleteBrandRequest deleteBrandRequest) { 40 | return brandService.delete(deleteBrandRequest); 41 | } 42 | 43 | @PostMapping("/update") 44 | public Result update(@RequestBody UpdateBrandRequest updateBrandRequest) { 45 | return brandService.update(updateBrandRequest); 46 | } 47 | 48 | @GetMapping("/getall") 49 | public DataResult> getAll() { 50 | 51 | return brandService.getAll(); 52 | } 53 | 54 | @GetMapping("/getbyid") 55 | public DataResult GetById(int id) { 56 | return brandService.getById(id); 57 | } 58 | 59 | } 60 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/core/utilities/aspects/LoggingAspect.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.core.utilities.aspects; 2 | 3 | import java.io.BufferedWriter; 4 | import java.io.File; 5 | import java.io.FileWriter; 6 | import java.lang.reflect.Field; 7 | import java.time.LocalDate; 8 | import java.util.ArrayList; 9 | import java.util.List; 10 | 11 | import javax.json.Json; 12 | import javax.json.JsonArray; 13 | import javax.json.JsonObject; 14 | 15 | import org.aspectj.lang.JoinPoint; 16 | import org.aspectj.lang.ProceedingJoinPoint; 17 | import org.aspectj.lang.annotation.After; 18 | import org.aspectj.lang.annotation.Around; 19 | import org.aspectj.lang.annotation.Aspect; 20 | import org.aspectj.lang.annotation.Before; 21 | import org.aspectj.lang.annotation.Pointcut; 22 | import org.aspectj.lang.reflect.MethodSignature; 23 | import org.json.simple.JSONArray; 24 | import org.json.simple.JSONObject; 25 | import org.springframework.stereotype.Component; 26 | 27 | import com.fasterxml.jackson.databind.ObjectMapper; 28 | 29 | @Aspect 30 | @Component 31 | public class LoggingAspect { 32 | JSONArray jsonArray = new JSONArray(); 33 | 34 | @Before("execution(* com.kodlamaio.rentAcar.bussines.concretes.*.*(..))") 35 | public void beforeLog(JoinPoint joinPoint) { 36 | 37 | MethodSignature signature = (MethodSignature) joinPoint.getSignature(); 38 | ObjectMapper mapper = new ObjectMapper(); 39 | Object[] parameters = joinPoint.getArgs(); 40 | File file = new File("C:\\logs\\operations.json"); 41 | 42 | try (FileWriter fileWriter = new FileWriter(file,true)){ 43 | 44 | JsonObject jsonObject = Json.createObjectBuilder() 45 | .add("date : " , LocalDate.now().toString()+'\n') // String 46 | .add("className : " , joinPoint.getTarget().getClass().getSimpleName()+"\n") 47 | .add("methodName : " , signature.getMethod().getName()+'\n') 48 | .add("parameters : " , mapper.writeValueAsString(parameters)+"\n") 49 | .build(); 50 | 51 | jsonArray.add(jsonObject); 52 | BufferedWriter bWriter = new BufferedWriter(fileWriter); 53 | bWriter.write(jsonArray.toString()); 54 | bWriter.newLine(); 55 | bWriter.close(); 56 | } catch (Exception e) { 57 | // TODO: handle exception 58 | } 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/RentACarApplication.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar; 2 | 3 | import java.util.HashMap; 4 | import java.util.Map; 5 | 6 | import org.modelmapper.ModelMapper; 7 | import org.springframework.boot.SpringApplication; 8 | import org.springframework.boot.autoconfigure.SpringBootApplication; 9 | import org.springframework.cache.annotation.EnableCaching; 10 | import org.springframework.context.annotation.Bean; 11 | import org.springframework.http.HttpStatus; 12 | import org.springframework.validation.FieldError; 13 | import org.springframework.web.bind.MethodArgumentNotValidException; 14 | import org.springframework.web.bind.annotation.ExceptionHandler; 15 | import org.springframework.web.bind.annotation.ResponseStatus; 16 | import org.springframework.web.bind.annotation.RestControllerAdvice; 17 | 18 | import com.kodlamaio.rentAcar.core.utilities.exceptions.BusinessException; 19 | import com.kodlamaio.rentAcar.core.utilities.result.ErrorDataResult; 20 | @EnableCaching 21 | @SpringBootApplication 22 | @RestControllerAdvice 23 | public class RentACarApplication { 24 | 25 | public static void main(String[] args) { 26 | SpringApplication.run(RentACarApplication.class, args); 27 | } 28 | 29 | @Bean 30 | public ModelMapper getModelMapper() { 31 | return new ModelMapper(); 32 | } 33 | 34 | @ExceptionHandler 35 | @ResponseStatus(code = HttpStatus.BAD_REQUEST) 36 | public ErrorDataResult handleValidationExceptions(MethodArgumentNotValidException methodArgumentNotValidException){ 37 | Map validationErrors = new HashMap(); 38 | for(FieldError fieldError : methodArgumentNotValidException.getBindingResult().getFieldErrors()) { 39 | validationErrors.put(fieldError.getField(), fieldError.getDefaultMessage()); 40 | } 41 | 42 | ErrorDataResult errorDataResult = new ErrorDataResult(validationErrors,"VALIDATION.EXCEPTION"); 43 | return errorDataResult; 44 | } 45 | 46 | @ExceptionHandler 47 | @ResponseStatus(code = HttpStatus.BAD_REQUEST) 48 | public ErrorDataResult handleBusinessExceptions(BusinessException businessException){ 49 | ErrorDataResult errorDataResult = new ErrorDataResult(businessException.getMessage(),"BUSINESS.EXCEPTION"); 50 | return errorDataResult; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/abstracts/InvoiceService.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlamaio.rentAcar.bussines.request.invoices.CreateAdditionalInvoiceRequest; 6 | import com.kodlamaio.rentAcar.bussines.request.invoices.CreateRentalInvoiceRequest; 7 | import com.kodlamaio.rentAcar.bussines.request.invoices.DeleteAdditionalInvoiceRequest; 8 | import com.kodlamaio.rentAcar.bussines.request.invoices.DeleteRentalInvoiceRequest; 9 | import com.kodlamaio.rentAcar.bussines.response.invoices.GetAllCorporateAdditionalInvoicesResponse; 10 | import com.kodlamaio.rentAcar.bussines.response.invoices.GetAllCorporateRentalInvoicesResponse; 11 | import com.kodlamaio.rentAcar.bussines.response.invoices.GetAllIndividualAdditionalInvoicesResponse; 12 | import com.kodlamaio.rentAcar.bussines.response.invoices.GetAllIndividualRentalInvoicesResponse; 13 | import com.kodlamaio.rentAcar.core.utilities.result.DataResult; 14 | import com.kodlamaio.rentAcar.core.utilities.result.Result; 15 | 16 | public interface InvoiceService { 17 | Result addForIndividualCustomerRentalInvoice(CreateRentalInvoiceRequest createRentalInvoiceRequest); 18 | Result addForIndividualCustomerAdditionalInvoice(CreateAdditionalInvoiceRequest createAdditionalInvoiceRequest); 19 | 20 | Result addForCorporateCustomerRentalInvoice(CreateRentalInvoiceRequest createRentalInvoiceRequest); 21 | Result addForCorporateCustomerAdditionalInvoice(CreateAdditionalInvoiceRequest createACreateRentalInvoiceRequest); 22 | 23 | Result deleteForIndividualCustomerRentalInvoice(DeleteRentalInvoiceRequest deleteRentalInvoiceRequest); 24 | Result deleteForIndividualCustomerAdditionalInvoice(DeleteAdditionalInvoiceRequest deleteAdditionalInvoiceRequest); 25 | 26 | Result deleteForCorporateCustomerRentalInvoice(DeleteRentalInvoiceRequest deleteRentalInvoiceRequest); 27 | Result deleteForCorporateCustomerAdditionalInvoice(DeleteAdditionalInvoiceRequest deleteAdditionalInvoiceRequest); 28 | 29 | DataResult> getAllIndividualRentalInvoice(); 30 | DataResult> getAllIndividualAdditionalInvoice(); 31 | 32 | DataResult> getAllCorporateRentalInvoice(); 33 | DataResult> getAllCorporateAdditionalInvoice(); 34 | 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/abstracts/RentalService.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlamaio.rentAcar.bussines.request.rentals.CreateCorporateCustomerRentalRequest; 6 | import com.kodlamaio.rentAcar.bussines.request.rentals.CreateIndividualCustomerRentalRequest; 7 | import com.kodlamaio.rentAcar.bussines.request.rentals.DeleteCorporateCustomerRentalRequest; 8 | import com.kodlamaio.rentAcar.bussines.request.rentals.DeleteIndividualCustomerRentalRequest; 9 | import com.kodlamaio.rentAcar.bussines.request.rentals.UpdateCorporateCustomerRentalRequest; 10 | import com.kodlamaio.rentAcar.bussines.request.rentals.UpdateIndividualCustomerRentalRequest; 11 | import com.kodlamaio.rentAcar.bussines.response.rentals.GetAllCorporateCustomerRentalsResponse; 12 | import com.kodlamaio.rentAcar.bussines.response.rentals.GetAllIndividualCustomerRentalsResponse; 13 | import com.kodlamaio.rentAcar.bussines.response.rentals.GetByIdCorporateCustomerRentalResponse; 14 | import com.kodlamaio.rentAcar.bussines.response.rentals.GetByIdIndividualCustomerRentalResponse; 15 | import com.kodlamaio.rentAcar.core.utilities.result.DataResult; 16 | import com.kodlamaio.rentAcar.core.utilities.result.Result; 17 | import com.kodlamaio.rentAcar.entities.concretes.Rental; 18 | 19 | public interface RentalService { 20 | Result addForIndividual(CreateIndividualCustomerRentalRequest createIndividualCustomerRentalRequest); 21 | Result addForCorporate(CreateCorporateCustomerRentalRequest createCorporateCustomerRentalRequest); 22 | 23 | Result deleteForIndividual(DeleteIndividualCustomerRentalRequest deleteIndividualCustomerRentalRequest); 24 | Result deleteForCorporate(DeleteCorporateCustomerRentalRequest deleteCorporateCustomerRentalRequest); 25 | 26 | Result updateForIndividual(UpdateIndividualCustomerRentalRequest updateIndividualCustomerRentalRequest); 27 | Result updateForCorporate(UpdateCorporateCustomerRentalRequest updateCorporateCustomerRentalRequest); 28 | 29 | DataResult> getAllForIndividualRentals(); 30 | DataResult> getAllForCorporateRentals(); 31 | 32 | DataResult getByIdForIndividualRental(int id); 33 | DataResult getByIdForCorporateRental(int id); 34 | 35 | Rental getByRentalId(int id); 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/abstracts/AddressService.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlamaio.rentAcar.bussines.request.addresses.CreateCorporateCustomerAddressRequet; 6 | import com.kodlamaio.rentAcar.bussines.request.addresses.CreateIndividualCustomerAddressRequest; 7 | import com.kodlamaio.rentAcar.bussines.request.addresses.DeleteCorporateCustomerAddressRequest; 8 | import com.kodlamaio.rentAcar.bussines.request.addresses.DeleteIndividualCustomerAddressRequest; 9 | import com.kodlamaio.rentAcar.bussines.request.addresses.UpdateCorporateCustomerBillingAddressRequest; 10 | import com.kodlamaio.rentAcar.bussines.request.addresses.UpdateCorporateCustomerContactAddressRequest; 11 | import com.kodlamaio.rentAcar.bussines.request.addresses.UpdateIndividualCustomerBillingAddressRequest; 12 | import com.kodlamaio.rentAcar.bussines.request.addresses.UpdateIndividualCustomerContactAddressRequest; 13 | import com.kodlamaio.rentAcar.bussines.response.address.GetAllAddressResponse; 14 | import com.kodlamaio.rentAcar.bussines.response.address.GetByIdAddressResponse; 15 | import com.kodlamaio.rentAcar.core.utilities.result.DataResult; 16 | import com.kodlamaio.rentAcar.core.utilities.result.Result; 17 | 18 | public interface AddressService { 19 | Result addIndividualCustomerAddress(CreateIndividualCustomerAddressRequest createIndividualCustomerAddressRequest); 20 | Result addCorporateCustomerAddress(CreateCorporateCustomerAddressRequet createCorparateCustomerAddressRequet); 21 | 22 | Result deleteIndividualCustomerAddress(DeleteIndividualCustomerAddressRequest deleteIndividualCustomerAddressRequest); 23 | Result deleteCorporateCustomerAddress(DeleteCorporateCustomerAddressRequest deleteCorporateCustomerAddressRequest); 24 | 25 | Result updateIndividualCustomerContactAddress(UpdateIndividualCustomerContactAddressRequest updateIndividualCustomerContactAddressRequest); 26 | Result updateIndividualCustomerBillingAddress(UpdateIndividualCustomerBillingAddressRequest updateIndividualCustomerBillingAddressRequest); 27 | 28 | Result updateCorporateCustomerContactAddress(UpdateCorporateCustomerContactAddressRequest updateCorporateCustomerContactAddressRequest); 29 | Result updateCorporateCustomerBillingAddress(UpdateCorporateCustomerBillingAddressRequest updateCorporateCustomerBillingAddressRequest); 30 | 31 | DataResult> getAll(); 32 | DataResult getById(int id); 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/api/controllers/AdditionalItemsController.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.api.controllers; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.web.bind.annotation.GetMapping; 7 | import org.springframework.web.bind.annotation.PostMapping; 8 | import org.springframework.web.bind.annotation.RequestBody; 9 | import org.springframework.web.bind.annotation.RequestMapping; 10 | import org.springframework.web.bind.annotation.RestController; 11 | 12 | import com.kodlamaio.rentAcar.bussines.abstracts.AdditionalItemService; 13 | import com.kodlamaio.rentAcar.bussines.request.additionalItems.CreateAdditionalItemRequest; 14 | import com.kodlamaio.rentAcar.bussines.request.additionalItems.DeleteAdditionalItemRequest; 15 | import com.kodlamaio.rentAcar.bussines.request.additionalItems.UpdateAdditionalItemRequest; 16 | import com.kodlamaio.rentAcar.bussines.response.additionalItems.GetAllAdditionalItemsResponse; 17 | import com.kodlamaio.rentAcar.bussines.response.additionalItems.GetByIdAdditionalItemResponse; 18 | import com.kodlamaio.rentAcar.core.utilities.result.DataResult; 19 | import com.kodlamaio.rentAcar.core.utilities.result.Result; 20 | 21 | @RestController 22 | @RequestMapping("/api/additionalItems") 23 | public class AdditionalItemsController { 24 | 25 | private AdditionalItemService additionalItemService; 26 | 27 | @Autowired 28 | public AdditionalItemsController(AdditionalItemService additionalItemService) { 29 | this.additionalItemService = additionalItemService; 30 | } 31 | 32 | @PostMapping("/add") 33 | public Result add(@RequestBody CreateAdditionalItemRequest createAdditionalItemRequest) { 34 | return this.additionalItemService.add(createAdditionalItemRequest); 35 | } 36 | 37 | @PostMapping("/delete") 38 | public Result delete(DeleteAdditionalItemRequest deleteAdditionalItemRequest) { 39 | return this.additionalItemService.delete(deleteAdditionalItemRequest); 40 | } 41 | 42 | @PostMapping("/update") 43 | public Result update(@RequestBody UpdateAdditionalItemRequest updateAdditionalItemRequest) { 44 | return this.additionalItemService.update(updateAdditionalItemRequest); 45 | } 46 | 47 | @GetMapping("/getall") 48 | public DataResult> getAll(){ 49 | 50 | return this.additionalItemService.getAll(); 51 | } 52 | 53 | @GetMapping("/getbyid") 54 | public DataResult getById(int id){ 55 | 56 | return this.additionalItemService.getById(id); 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/api/controllers/OrderedAdditionalItemsController.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.api.controllers; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.web.bind.annotation.GetMapping; 7 | import org.springframework.web.bind.annotation.PostMapping; 8 | import org.springframework.web.bind.annotation.RequestBody; 9 | import org.springframework.web.bind.annotation.RequestMapping; 10 | import org.springframework.web.bind.annotation.RestController; 11 | 12 | import com.kodlamaio.rentAcar.bussines.abstracts.OrderedAdditionalItemService; 13 | import com.kodlamaio.rentAcar.bussines.request.orderedAdditionalItems.CreateOrderedAdditionalItemRequest; 14 | import com.kodlamaio.rentAcar.bussines.request.orderedAdditionalItems.DeleteOrderedAdditionalItemRequest; 15 | import com.kodlamaio.rentAcar.bussines.request.orderedAdditionalItems.UpdateOrderedAdditionalItemRequest; 16 | import com.kodlamaio.rentAcar.bussines.response.orderedAdditionalItem.GetAllOrderedAdditionalItemsResponse; 17 | import com.kodlamaio.rentAcar.bussines.response.orderedAdditionalItem.GetByIdOrderedAdditionalItemResponse; 18 | import com.kodlamaio.rentAcar.core.utilities.result.DataResult; 19 | import com.kodlamaio.rentAcar.core.utilities.result.Result; 20 | 21 | @RestController 22 | @RequestMapping("/api/orderedAdditionalItems") 23 | public class OrderedAdditionalItemsController { 24 | 25 | private OrderedAdditionalItemService additionalService; 26 | 27 | @Autowired 28 | public OrderedAdditionalItemsController(OrderedAdditionalItemService additionalService) { 29 | this.additionalService = additionalService; 30 | } 31 | 32 | @PostMapping("/add") 33 | public Result add(@RequestBody CreateOrderedAdditionalItemRequest createAdditionalRequest) { 34 | return additionalService.add(createAdditionalRequest); 35 | } 36 | 37 | @PostMapping("/delete") 38 | public Result delete(DeleteOrderedAdditionalItemRequest deleteAdditionalRequest) { 39 | return additionalService.delete(deleteAdditionalRequest); 40 | } 41 | 42 | @PostMapping("/update") 43 | public Result update(@RequestBody UpdateOrderedAdditionalItemRequest updateAdditionalRequest) { 44 | return additionalService.update(updateAdditionalRequest); 45 | } 46 | 47 | @GetMapping("/getall") 48 | public DataResult> getAll(){ 49 | return additionalService.getAll(); 50 | } 51 | 52 | @GetMapping("/getbyid") 53 | public DataResult getById(int id){ 54 | return additionalService.getById(id); 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/api/controllers/MaintenancesController.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.api.controllers; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.web.bind.annotation.GetMapping; 7 | import org.springframework.web.bind.annotation.PostMapping; 8 | import org.springframework.web.bind.annotation.RequestBody; 9 | import org.springframework.web.bind.annotation.RequestMapping; 10 | import org.springframework.web.bind.annotation.RestController; 11 | 12 | import com.kodlamaio.rentAcar.bussines.abstracts.MaintenanceService; 13 | import com.kodlamaio.rentAcar.bussines.request.maintenances.CreateMaintenanceRequest; 14 | import com.kodlamaio.rentAcar.bussines.request.maintenances.DeleteMaintenanceRequest; 15 | import com.kodlamaio.rentAcar.bussines.request.maintenances.UpdateMaintenenceRequest; 16 | import com.kodlamaio.rentAcar.bussines.response.maintenances.GetAllMaintenancesResponse; 17 | import com.kodlamaio.rentAcar.bussines.response.maintenances.GetMaintenanceResponse; 18 | import com.kodlamaio.rentAcar.core.utilities.result.DataResult; 19 | import com.kodlamaio.rentAcar.core.utilities.result.Result; 20 | 21 | @RestController 22 | @RequestMapping("/api/maintenances") 23 | public class MaintenancesController { 24 | private MaintenanceService maintenanceService; 25 | 26 | @Autowired 27 | public MaintenancesController(MaintenanceService maintenanceService) { 28 | this.maintenanceService = maintenanceService; 29 | } 30 | 31 | @PostMapping("/add") 32 | public Result add(@RequestBody CreateMaintenanceRequest createMaintenanceRequest) { 33 | return maintenanceService.add(createMaintenanceRequest); 34 | } 35 | 36 | @PostMapping("/delete") 37 | public Result delete(DeleteMaintenanceRequest deleteMaintenanceRequest) { 38 | return maintenanceService.delete(deleteMaintenanceRequest); 39 | } 40 | 41 | @PostMapping("/update") 42 | public Result update(@RequestBody UpdateMaintenenceRequest updateMaintenenceRequest) { 43 | return maintenanceService.update(updateMaintenenceRequest); 44 | } 45 | 46 | // @PostMapping("/updateState") 47 | // public Result updateState(@RequestBody UpdateMaintenenceRequest udateMaintenenceRequest) { 48 | // return maintenanceService.updateState(udateMaintenenceRequest); 49 | // } 50 | 51 | @GetMapping("/getall") 52 | public DataResult> getAll(){ 53 | return maintenanceService.getAll(); 54 | } 55 | 56 | @GetMapping("getById") 57 | public DataResult getById(int id){ 58 | return maintenanceService.getById(id); 59 | } 60 | 61 | 62 | } 63 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/api/controllers/CorporateCustomersController.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.api.controllers; 2 | 3 | import java.rmi.RemoteException; 4 | import java.util.List; 5 | 6 | import javax.validation.Valid; 7 | 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | import org.springframework.web.bind.annotation.GetMapping; 10 | import org.springframework.web.bind.annotation.PostMapping; 11 | import org.springframework.web.bind.annotation.RequestBody; 12 | import org.springframework.web.bind.annotation.RequestMapping; 13 | import org.springframework.web.bind.annotation.RestController; 14 | 15 | import com.kodlamaio.rentAcar.bussines.abstracts.CorporateCustomerService; 16 | import com.kodlamaio.rentAcar.bussines.request.corporateCustomers.CreateCorporateCustomerRequest; 17 | import com.kodlamaio.rentAcar.bussines.request.corporateCustomers.DeleteCorporateCustomerRequest; 18 | import com.kodlamaio.rentAcar.bussines.request.corporateCustomers.UpdateCorporateCustomerRequest; 19 | import com.kodlamaio.rentAcar.bussines.response.corporateCustomers.GetAllCorporateCustomersResponse; 20 | import com.kodlamaio.rentAcar.bussines.response.corporateCustomers.GetByIdCorporateCustomerResponse; 21 | import com.kodlamaio.rentAcar.core.utilities.result.DataResult; 22 | import com.kodlamaio.rentAcar.core.utilities.result.Result; 23 | 24 | @RestController 25 | @RequestMapping("/api/corporateCustomers") 26 | public class CorporateCustomersController { 27 | private CorporateCustomerService corporateCustomerService; 28 | 29 | @Autowired 30 | public CorporateCustomersController(CorporateCustomerService corporateCustomerService) { 31 | this.corporateCustomerService = corporateCustomerService; 32 | } 33 | 34 | @PostMapping("/add") 35 | public Result add(@RequestBody @Valid CreateCorporateCustomerRequest createCorporateCustomerRequet) throws NumberFormatException, RemoteException { 36 | return this.corporateCustomerService.add(createCorporateCustomerRequet); 37 | } 38 | 39 | @PostMapping("/delete") 40 | public Result delete(DeleteCorporateCustomerRequest deleteCorporateCustomerRequest) { 41 | return this.corporateCustomerService.delete(deleteCorporateCustomerRequest); 42 | } 43 | 44 | @PostMapping("/update") 45 | public Result update(@RequestBody @Valid UpdateCorporateCustomerRequest updateCorporateCustomerRequest) { 46 | return this.corporateCustomerService.update(updateCorporateCustomerRequest); 47 | } 48 | 49 | @GetMapping("/getall") 50 | public DataResult> getAll(){ 51 | return corporateCustomerService.getAll(); 52 | } 53 | 54 | 55 | @GetMapping("/getbyid") 56 | public DataResult getById(int id){ 57 | return corporateCustomerService.getById(id); 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/api/controllers/IndividualCustomersController.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.api.controllers; 2 | 3 | import java.rmi.RemoteException; 4 | import java.util.List; 5 | 6 | import javax.validation.Valid; 7 | 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | import org.springframework.web.bind.annotation.GetMapping; 10 | import org.springframework.web.bind.annotation.PostMapping; 11 | import org.springframework.web.bind.annotation.RequestBody; 12 | import org.springframework.web.bind.annotation.RequestMapping; 13 | import org.springframework.web.bind.annotation.RequestParam; 14 | import org.springframework.web.bind.annotation.RestController; 15 | 16 | import com.kodlamaio.rentAcar.bussines.abstracts.IndividualCustomerService; 17 | import com.kodlamaio.rentAcar.bussines.request.individualCustomers.CreateIndividualCustomerRequest; 18 | import com.kodlamaio.rentAcar.bussines.request.individualCustomers.DeleteIndividualCustomerRequest; 19 | import com.kodlamaio.rentAcar.bussines.request.individualCustomers.UpdateIndividualCustomerRequest; 20 | import com.kodlamaio.rentAcar.bussines.response.individualCustomers.GetAllIndividualCustomersResponse; 21 | import com.kodlamaio.rentAcar.bussines.response.individualCustomers.GetByIdIndividualCustomerResponse; 22 | import com.kodlamaio.rentAcar.core.utilities.result.DataResult; 23 | import com.kodlamaio.rentAcar.core.utilities.result.Result; 24 | 25 | @RestController 26 | @RequestMapping("/api/individualCustomers") 27 | public class IndividualCustomersController { 28 | 29 | private IndividualCustomerService individualCustomerService; 30 | 31 | @Autowired 32 | public IndividualCustomersController(IndividualCustomerService individualCustomerService) { 33 | this.individualCustomerService = individualCustomerService; 34 | } 35 | 36 | @PostMapping("/add") 37 | public Result add(@RequestBody @Valid CreateIndividualCustomerRequest createIndividualCustomerRequest) throws NumberFormatException, RemoteException { 38 | return this.individualCustomerService.add(createIndividualCustomerRequest); 39 | } 40 | 41 | @PostMapping("/delete") 42 | public Result delete(DeleteIndividualCustomerRequest deleteIndividualCustomerRequest) { 43 | return this.individualCustomerService.delete(deleteIndividualCustomerRequest); 44 | } 45 | 46 | @PostMapping("/update") 47 | public Result update(@RequestBody @Valid UpdateIndividualCustomerRequest updateIndividualCustomerRequest) { 48 | return this.individualCustomerService.update(updateIndividualCustomerRequest); 49 | } 50 | 51 | @GetMapping("/getall") 52 | public DataResult> getAll(){ 53 | return individualCustomerService.getAll(); 54 | } 55 | 56 | @GetMapping("/getallbypage") 57 | public DataResult> getAll(@RequestParam int pageNo, int pageSize){ 58 | return individualCustomerService.getAll(pageNo, pageSize); 59 | } 60 | 61 | @GetMapping("/getbyid") 62 | public DataResult getById(int id){ 63 | return individualCustomerService.getById(id); 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/concretes/ColorManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.concretes; 2 | 3 | import java.util.List; 4 | import java.util.stream.Collectors; 5 | 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Service; 8 | //import org.springframework.web.bind.annotation.RequestBody; 9 | 10 | import com.kodlamaio.rentAcar.bussines.abstracts.ColorService; 11 | import com.kodlamaio.rentAcar.bussines.request.colors.CreateColorRequest; 12 | import com.kodlamaio.rentAcar.bussines.request.colors.DeleteColorRequest; 13 | import com.kodlamaio.rentAcar.bussines.request.colors.UpdateColorRequest; 14 | import com.kodlamaio.rentAcar.bussines.response.colors.GetAllColorsResponse; 15 | import com.kodlamaio.rentAcar.bussines.response.colors.GetByIdColorResponse; 16 | import com.kodlamaio.rentAcar.core.utilities.exceptions.BusinessException; 17 | import com.kodlamaio.rentAcar.core.utilities.mapping.ModelMapperService; 18 | import com.kodlamaio.rentAcar.core.utilities.result.DataResult; 19 | import com.kodlamaio.rentAcar.core.utilities.result.Result; 20 | import com.kodlamaio.rentAcar.core.utilities.result.SuccessDataResult; 21 | import com.kodlamaio.rentAcar.core.utilities.result.SuccessResult; 22 | import com.kodlamaio.rentAcar.dataAccess.abstracts.ColorRepository; 23 | import com.kodlamaio.rentAcar.entities.concretes.Color; 24 | 25 | @Service 26 | public class ColorManager implements ColorService{ 27 | 28 | private ColorRepository colorRepository; 29 | 30 | private ModelMapperService modelMapperService; 31 | 32 | @Autowired 33 | public ColorManager(ColorRepository colorRepository, ModelMapperService modelMapperService) { 34 | this.colorRepository = colorRepository; 35 | this.modelMapperService = modelMapperService; 36 | } 37 | 38 | @Override 39 | public Result add(CreateColorRequest createColorRequest) { 40 | checkIfExistColorName(createColorRequest.getName()); 41 | Color color = this.modelMapperService.forRequest().map(createColorRequest, Color.class); 42 | this.colorRepository.save(color); 43 | return new SuccessResult("COLOR.ADDED"); 44 | } 45 | 46 | @Override 47 | public Result delete(DeleteColorRequest deleteColorRequest) { 48 | checkIfColor(deleteColorRequest.getId()); 49 | colorRepository.deleteById(deleteColorRequest.getId()); 50 | return new SuccessResult("COLOR.DELETE"); 51 | } 52 | 53 | @Override 54 | public Result update(UpdateColorRequest updateColorRequest) { 55 | Color color = this.modelMapperService.forRequest().map(updateColorRequest, Color.class); 56 | colorRepository.save(color); 57 | return new SuccessResult("COLOR.UPDATE"); 58 | } 59 | 60 | @Override 61 | public DataResult> getAll() { 62 | List colors = colorRepository.findAll(); 63 | List response = colors.stream().map(color -> this.modelMapperService.forResponse() 64 | .map(color, GetAllColorsResponse.class)).collect(Collectors.toList()); 65 | return new SuccessDataResult>(response) ; 66 | } 67 | 68 | @Override 69 | public DataResult getById(int id) { 70 | Color color = colorRepository.findById(id); 71 | GetByIdColorResponse response = modelMapperService.forResponse().map(color, GetByIdColorResponse.class); 72 | return new SuccessDataResult(response); 73 | } 74 | 75 | @Override 76 | public Color getByColorId(int id) { 77 | checkIfColor(id); 78 | return colorRepository.findById(id); 79 | } 80 | 81 | private void checkIfColor(int id) { 82 | Color color = colorRepository.findById(id); 83 | if(color == null) throw new BusinessException("COLOR.NOT.FOUND"); 84 | } 85 | 86 | private void checkIfExistColorName(String name) { 87 | Color color = colorRepository.findByName(name); 88 | if(color != null) throw new BusinessException("COLOR.EXİST"); 89 | } 90 | 91 | 92 | } 93 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/concretes/BrandManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.concretes; 2 | 3 | import java.util.List; 4 | import java.util.stream.Collectors; 5 | 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Service; 8 | 9 | import com.kodlamaio.rentAcar.bussines.abstracts.BrandService; 10 | import com.kodlamaio.rentAcar.bussines.request.brands.CreateBrandRequest; 11 | import com.kodlamaio.rentAcar.bussines.request.brands.DeleteBrandRequest; 12 | import com.kodlamaio.rentAcar.bussines.request.brands.UpdateBrandRequest; 13 | import com.kodlamaio.rentAcar.bussines.response.brands.GetAllBrandsResponse; 14 | import com.kodlamaio.rentAcar.bussines.response.brands.GetByIdBrandResponse; 15 | import com.kodlamaio.rentAcar.core.utilities.exceptions.BusinessException; 16 | import com.kodlamaio.rentAcar.core.utilities.mapping.ModelMapperService; 17 | import com.kodlamaio.rentAcar.core.utilities.result.DataResult; 18 | import com.kodlamaio.rentAcar.core.utilities.result.Result; 19 | import com.kodlamaio.rentAcar.core.utilities.result.SuccessDataResult; 20 | import com.kodlamaio.rentAcar.core.utilities.result.SuccessResult; 21 | import com.kodlamaio.rentAcar.dataAccess.abstracts.BrandRepository; 22 | import com.kodlamaio.rentAcar.entities.concretes.Brand; 23 | //brandServiceImpl 24 | @Service 25 | public class BrandManager implements BrandService{ 26 | 27 | private BrandRepository brandRepository; 28 | 29 | private ModelMapperService modelMapperService; 30 | 31 | @Autowired // parametreye bakıp bu interface nin somutunu getir 32 | public BrandManager(BrandRepository brandRepository, ModelMapperService modelMapperService) { 33 | this.brandRepository = brandRepository; 34 | this.modelMapperService = modelMapperService; 35 | } 36 | 37 | 38 | @Override 39 | public Result add(CreateBrandRequest createBrandRequest) { 40 | checkIfBrandExistByName(createBrandRequest.getName()); 41 | Brand brand = this.modelMapperService.forRequest().map(createBrandRequest, Brand.class); 42 | this.brandRepository.save(brand); 43 | 44 | return new SuccessResult("BRAND.ADDED"); 45 | } 46 | 47 | @Override 48 | public Result delete(DeleteBrandRequest deleteBrandRequest) { 49 | checkIfBrand(deleteBrandRequest.getId()); 50 | brandRepository.deleteById(deleteBrandRequest.getId()); 51 | return new SuccessResult("BRAND.DELETE"); 52 | } 53 | 54 | @Override 55 | public Result update(UpdateBrandRequest updateBrandRequest) { 56 | checkIfBrand(updateBrandRequest.getId()); 57 | Brand brandToUpdate = this.modelMapperService.forRequest().map(updateBrandRequest, Brand.class); 58 | brandRepository.save(brandToUpdate); 59 | return new SuccessResult("BRAND.UPDATE"); 60 | } 61 | 62 | @Override 63 | public DataResult> getAll() { 64 | List brands = this.brandRepository.findAll(); 65 | List response = brands.stream().map(brand -> this.modelMapperService.forResponse() 66 | .map(brand,GetAllBrandsResponse.class)).collect(Collectors.toList()); 67 | return new SuccessDataResult>(response); 68 | } 69 | 70 | 71 | @Override 72 | public DataResult getById(int id) { 73 | Brand brand = this.brandRepository.findById(id); 74 | GetByIdBrandResponse response = modelMapperService.forResponse().map(brand, GetByIdBrandResponse.class); 75 | return new SuccessDataResult(response); 76 | } 77 | 78 | @Override 79 | public Brand getByBrandId(int id) { 80 | checkIfBrand(id); 81 | return brandRepository.findById(id); 82 | } 83 | 84 | private void checkIfBrand(int id) { 85 | Brand brand = brandRepository.findById(id); 86 | if(brand == null) throw new BusinessException("BRAND.NOT.FOUND!!"); 87 | } 88 | 89 | private void checkIfBrandExistByName(String name) { 90 | Brand currentBrand = this.brandRepository.findByName(name); 91 | if(currentBrand!=null) throw new BusinessException("BRAND.EXİST"); 92 | } 93 | 94 | } 95 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/concretes/AdditionalItemManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.concretes; 2 | 3 | import java.util.List; 4 | import java.util.stream.Collectors; 5 | 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Service; 8 | 9 | import com.kodlamaio.rentAcar.bussines.abstracts.AdditionalItemService; 10 | import com.kodlamaio.rentAcar.bussines.request.additionalItems.CreateAdditionalItemRequest; 11 | import com.kodlamaio.rentAcar.bussines.request.additionalItems.DeleteAdditionalItemRequest; 12 | import com.kodlamaio.rentAcar.bussines.request.additionalItems.UpdateAdditionalItemRequest; 13 | import com.kodlamaio.rentAcar.bussines.response.additionalItems.GetAllAdditionalItemsResponse; 14 | import com.kodlamaio.rentAcar.bussines.response.additionalItems.GetByIdAdditionalItemResponse; 15 | import com.kodlamaio.rentAcar.core.utilities.exceptions.BusinessException; 16 | import com.kodlamaio.rentAcar.core.utilities.mapping.ModelMapperService; 17 | import com.kodlamaio.rentAcar.core.utilities.result.DataResult; 18 | import com.kodlamaio.rentAcar.core.utilities.result.Result; 19 | import com.kodlamaio.rentAcar.core.utilities.result.SuccessDataResult; 20 | import com.kodlamaio.rentAcar.core.utilities.result.SuccessResult; 21 | import com.kodlamaio.rentAcar.dataAccess.abstracts.AdditionalItemRepository; 22 | import com.kodlamaio.rentAcar.entities.concretes.AdditionalItem; 23 | 24 | @Service 25 | public class AdditionalItemManager implements AdditionalItemService{ 26 | 27 | private AdditionalItemRepository additionalItemRepository; 28 | 29 | private ModelMapperService modelMapperService; 30 | 31 | @Autowired 32 | public AdditionalItemManager(AdditionalItemRepository additionalItemRepository, ModelMapperService modelMapperService) { 33 | this.additionalItemRepository = additionalItemRepository; 34 | this.modelMapperService = modelMapperService; 35 | } 36 | 37 | @Override 38 | public Result add(CreateAdditionalItemRequest createAdditionalItemRequest) { 39 | AdditionalItem additionalItem = this.modelMapperService.forRequest().map(createAdditionalItemRequest, AdditionalItem.class); 40 | additionalItemRepository.save(additionalItem); 41 | return new SuccessResult("ADDITIONAL.ITEM.ADDED"); 42 | } 43 | 44 | @Override 45 | public Result delete(DeleteAdditionalItemRequest deleteAdditionalItemRequest) { 46 | checkIfAdditionalItem(deleteAdditionalItemRequest.getId()); 47 | additionalItemRepository.deleteById(deleteAdditionalItemRequest.getId()); 48 | return new SuccessResult("ADDITIONAL.DELETED"); 49 | } 50 | 51 | @Override 52 | public Result update(UpdateAdditionalItemRequest updateAdditionalItemRequest) { 53 | checkIfAdditionalItem(updateAdditionalItemRequest.getId()); 54 | AdditionalItem additionalItem = this.modelMapperService.forRequest().map(updateAdditionalItemRequest, AdditionalItem.class); 55 | additionalItemRepository.save(additionalItem); 56 | return new SuccessResult("ADDITIONAL.UPDATED"); 57 | } 58 | 59 | @Override 60 | public DataResult> getAll() { 61 | List additionalItems = additionalItemRepository.findAll(); 62 | List response = additionalItems.stream().map(additionalItem -> this.modelMapperService.forResponse() 63 | .map(additionalItem, GetAllAdditionalItemsResponse.class)).collect(Collectors.toList()); 64 | return new SuccessDataResult>(response,"ADDITIONALS.LISTED"); 65 | } 66 | 67 | @Override 68 | public DataResult getById(int id) { 69 | checkIfAdditionalItem(id); 70 | AdditionalItem additionalItem = this.additionalItemRepository.findById(id); 71 | GetByIdAdditionalItemResponse response = this.modelMapperService.forResponse().map(additionalItem, GetByIdAdditionalItemResponse.class); 72 | return new SuccessDataResult(response,"ADDITIONAL.LISTED.GET.BY.ID"); 73 | } 74 | 75 | @Override 76 | public AdditionalItem getByAdditionalItemId(int id) { 77 | // TODO Auto-generated method stub 78 | return additionalItemRepository.findById(id); 79 | } 80 | 81 | private void checkIfAdditionalItem(int id) { 82 | AdditionalItem additionalItem = additionalItemRepository.findById(id); 83 | if(additionalItem == null) throw new BusinessException("ADDITIONAL.ITEM.NOT.FOUND"); 84 | } 85 | 86 | } 87 | -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | org.springframework.boot 7 | spring-boot-starter-parent 8 | 2.7.0 9 | 10 | 11 | com.kodlamaio 12 | rentAcar 13 | 0.0.1-SNAPSHOT 14 | rentACar 15 | Demo project for casgem camp 16 | 17 | 11 18 | 19 | 20 | 21 | org.springframework.boot 22 | spring-boot-starter-aop 23 | 24 | 25 | org.glassfish 26 | javax.json 27 | 1.0-b04 28 | 29 | 30 | 31 | com.googlecode.json-simple 32 | json-simple 33 | 1.1.1 34 | 35 | 36 | 37 | 38 | 39 | org.springframework.boot 40 | spring-boot-starter-cache 41 | 2.4.0 42 | 43 | 44 | 45 | 46 | 47 | 48 | com.fasterxml.jackson.dataformat 49 | jackson-dataformat-xml 50 | 2.13.2 51 | 52 | 53 | 54 | com.fasterxml.jackson.core 55 | jackson-databind 56 | 2.13.3 57 | 58 | 59 | 60 | 61 | commons-logging 62 | commons-logging 63 | 1.2 64 | 65 | 66 | 67 | org.apache.logging.log4j 68 | log4j-jcl 69 | 2.17.2 70 | 71 | 72 | 73 | 74 | org.modelmapper 75 | modelmapper 76 | 3.1.0 77 | 78 | 79 | org.springframework.boot 80 | spring-boot-starter-data-jpa 81 | 82 | 83 | org.springframework.boot 84 | spring-boot-starter-validation 85 | 86 | 87 | org.springframework.boot 88 | spring-boot-starter-web 89 | 90 | 91 | 92 | org.springframework.boot 93 | spring-boot-devtools 94 | runtime 95 | true 96 | 97 | 98 | org.postgresql 99 | postgresql 100 | runtime 101 | 102 | 103 | org.projectlombok 104 | lombok 105 | true 106 | 107 | 108 | org.springframework.boot 109 | spring-boot-starter-test 110 | test 111 | 112 | 113 | 114 | 115 | 116 | 117 | org.springframework.boot 118 | spring-boot-maven-plugin 119 | 120 | 121 | 122 | org.projectlombok 123 | lombok 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/api/controllers/RentalsController.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.api.controllers; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.web.bind.annotation.GetMapping; 7 | import org.springframework.web.bind.annotation.PostMapping; 8 | import org.springframework.web.bind.annotation.RequestBody; 9 | import org.springframework.web.bind.annotation.RequestMapping; 10 | import org.springframework.web.bind.annotation.RestController; 11 | 12 | import com.kodlamaio.rentAcar.bussines.abstracts.RentalService; 13 | import com.kodlamaio.rentAcar.bussines.request.rentals.CreateCorporateCustomerRentalRequest; 14 | import com.kodlamaio.rentAcar.bussines.request.rentals.CreateIndividualCustomerRentalRequest; 15 | import com.kodlamaio.rentAcar.bussines.request.rentals.DeleteCorporateCustomerRentalRequest; 16 | import com.kodlamaio.rentAcar.bussines.request.rentals.DeleteIndividualCustomerRentalRequest; 17 | import com.kodlamaio.rentAcar.bussines.request.rentals.UpdateCorporateCustomerRentalRequest; 18 | import com.kodlamaio.rentAcar.bussines.request.rentals.UpdateIndividualCustomerRentalRequest; 19 | import com.kodlamaio.rentAcar.bussines.response.rentals.GetAllCorporateCustomerRentalsResponse; 20 | import com.kodlamaio.rentAcar.bussines.response.rentals.GetAllIndividualCustomerRentalsResponse; 21 | import com.kodlamaio.rentAcar.bussines.response.rentals.GetByIdCorporateCustomerRentalResponse; 22 | import com.kodlamaio.rentAcar.bussines.response.rentals.GetByIdIndividualCustomerRentalResponse; 23 | import com.kodlamaio.rentAcar.core.utilities.result.DataResult; 24 | import com.kodlamaio.rentAcar.core.utilities.result.Result; 25 | 26 | @RestController 27 | @RequestMapping("/api/rentals") 28 | public class RentalsController { 29 | private RentalService rentalService; 30 | 31 | @Autowired 32 | public RentalsController(RentalService rentalService) { 33 | this.rentalService = rentalService; 34 | } 35 | 36 | @PostMapping("/addForIndividual") 37 | public Result addForIndividual(@RequestBody CreateIndividualCustomerRentalRequest createIndividualCustomerRentalRequest) { 38 | return rentalService.addForIndividual(createIndividualCustomerRentalRequest); 39 | } 40 | 41 | @PostMapping("/addForCorporate") 42 | public Result addForCorporate(@RequestBody CreateCorporateCustomerRentalRequest createCorporateCustomerRentalRequest) { 43 | return rentalService.addForCorporate(createCorporateCustomerRentalRequest); 44 | } 45 | 46 | @PostMapping("/deleteForIndividual") 47 | public Result deleteForIndividual(DeleteIndividualCustomerRentalRequest deleteIndividualCustomerRentalRequest) { 48 | return rentalService.deleteForIndividual(deleteIndividualCustomerRentalRequest); 49 | } 50 | 51 | @PostMapping("/deleteForCorporate") 52 | public Result deleteForCorporate(DeleteCorporateCustomerRentalRequest deleteCorporateCustomerRentalRequest) { 53 | return rentalService.deleteForCorporate(deleteCorporateCustomerRentalRequest); 54 | } 55 | 56 | @PostMapping("/updateForIndividual") 57 | public Result updateForIndividual(@RequestBody UpdateIndividualCustomerRentalRequest updateIndividualCustomerRentalRequest) { 58 | return rentalService.updateForIndividual(updateIndividualCustomerRentalRequest); 59 | } 60 | 61 | @PostMapping("/updateForCorporate") 62 | public Result updateForCorporate(@RequestBody UpdateCorporateCustomerRentalRequest updateCorporateCustomerRentalRequest) { 63 | return rentalService.updateForCorporate(updateCorporateCustomerRentalRequest); 64 | } 65 | 66 | @GetMapping("/getallForIndividual") 67 | public DataResult> getAllForIndividualRentals(GetAllIndividualCustomerRentalsResponse getAllIndividualCustomerRentalsResponse){ 68 | return rentalService.getAllForIndividualRentals(); 69 | } 70 | 71 | @GetMapping("/getallForCorporate") 72 | public DataResult> getAllForCorporateRentals(GetAllCorporateCustomerRentalsResponse getAllCorporateCustomerRentalsResponse){ 73 | return rentalService.getAllForCorporateRentals(); 74 | } 75 | 76 | @GetMapping("/getbyidForIndividual") 77 | public DataResult getByIdForIndividualRental(int id){ 78 | return rentalService.getByIdForIndividualRental(id); 79 | } 80 | 81 | @GetMapping("/getbyidForCorporate") 82 | public DataResult getByIdForCorporateRental(int id){ 83 | return rentalService.getByIdForCorporateRental(id); 84 | } 85 | 86 | } 87 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/api/controllers/AddressesController.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.api.controllers; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.web.bind.annotation.GetMapping; 7 | import org.springframework.web.bind.annotation.PostMapping; 8 | import org.springframework.web.bind.annotation.RequestBody; 9 | import org.springframework.web.bind.annotation.RequestMapping; 10 | import org.springframework.web.bind.annotation.RestController; 11 | 12 | import com.kodlamaio.rentAcar.bussines.abstracts.AddressService; 13 | import com.kodlamaio.rentAcar.bussines.request.addresses.CreateCorporateCustomerAddressRequet; 14 | import com.kodlamaio.rentAcar.bussines.request.addresses.CreateIndividualCustomerAddressRequest; 15 | import com.kodlamaio.rentAcar.bussines.request.addresses.DeleteCorporateCustomerAddressRequest; 16 | import com.kodlamaio.rentAcar.bussines.request.addresses.DeleteIndividualCustomerAddressRequest; 17 | import com.kodlamaio.rentAcar.bussines.request.addresses.UpdateCorporateCustomerBillingAddressRequest; 18 | import com.kodlamaio.rentAcar.bussines.request.addresses.UpdateCorporateCustomerContactAddressRequest; 19 | import com.kodlamaio.rentAcar.bussines.request.addresses.UpdateIndividualCustomerBillingAddressRequest; 20 | import com.kodlamaio.rentAcar.bussines.request.addresses.UpdateIndividualCustomerContactAddressRequest; 21 | import com.kodlamaio.rentAcar.bussines.response.address.GetAllAddressResponse; 22 | import com.kodlamaio.rentAcar.bussines.response.address.GetByIdAddressResponse; 23 | import com.kodlamaio.rentAcar.core.utilities.result.DataResult; 24 | import com.kodlamaio.rentAcar.core.utilities.result.Result; 25 | 26 | @RestController 27 | @RequestMapping("/api/addresses/") 28 | public class AddressesController { 29 | 30 | private AddressService addressService; 31 | 32 | @Autowired 33 | public AddressesController(AddressService addressService) { 34 | this.addressService = addressService; 35 | } 36 | 37 | @PostMapping("addIndividualCustomerAddress") 38 | public Result addIndividualCustomerAddress(@RequestBody CreateIndividualCustomerAddressRequest createIndividualCustomerAddressRequest) { 39 | return addressService.addIndividualCustomerAddress(createIndividualCustomerAddressRequest); 40 | } 41 | 42 | @PostMapping("addCorporateCustomerAddress") 43 | public Result addCorporateCustomerAddress(@RequestBody CreateCorporateCustomerAddressRequet createCorporateCustomerAddressRequet) { 44 | return addressService.addCorporateCustomerAddress(createCorporateCustomerAddressRequet); 45 | } 46 | 47 | @PostMapping("deleteIndividualCustomerAddress") 48 | public Result deleteIndividualCustomerAddress(DeleteIndividualCustomerAddressRequest deleteIndividualCustomerAddressRequest) { 49 | return addressService.deleteIndividualCustomerAddress(deleteIndividualCustomerAddressRequest); 50 | } 51 | 52 | @PostMapping("deleteCorporateCustomerAddress") 53 | public Result deleteCorporateCustomerAddress(DeleteCorporateCustomerAddressRequest deleteCorporateCustomerAddressRequest) { 54 | return addressService.deleteCorporateCustomerAddress(deleteCorporateCustomerAddressRequest); 55 | } 56 | 57 | @PostMapping("updateIndividualCustomerContactAddress") 58 | public Result updateIndividualCustomerContactAddress(@RequestBody UpdateIndividualCustomerContactAddressRequest updateIndividualCustomerContactAddressRequest) { 59 | return addressService.updateIndividualCustomerContactAddress(updateIndividualCustomerContactAddressRequest); 60 | } 61 | 62 | @PostMapping("updateIndividualCustomerBillingAddress") 63 | public Result updateIndividualCustomerBillingAddress(@RequestBody UpdateIndividualCustomerBillingAddressRequest updateIndividualCustomerBillingAddressRequest) { 64 | return addressService.updateIndividualCustomerBillingAddress(updateIndividualCustomerBillingAddressRequest); 65 | } 66 | 67 | @PostMapping("updateCorporateCustomerContactAddress") 68 | public Result updateCorporateCustomerContactAddress(@RequestBody UpdateCorporateCustomerContactAddressRequest updateCorporateCustomerContactAddressRequest) { 69 | return addressService.updateCorporateCustomerContactAddress(updateCorporateCustomerContactAddressRequest); 70 | } 71 | 72 | @PostMapping("updateCorporateCustomerBillingAddress") 73 | public Result updateCorporateCustomerBillingAddress(@RequestBody UpdateCorporateCustomerBillingAddressRequest updateCorporateCustomerBillingAddressRequest) { 74 | return addressService.updateCorporateCustomerBillingAddress(updateCorporateCustomerBillingAddressRequest); 75 | } 76 | 77 | @GetMapping("getall") 78 | public DataResult> getAll(){ 79 | return addressService.getAll(); 80 | } 81 | 82 | @GetMapping("getById") 83 | public DataResult getById(int id){ 84 | return addressService.getById(id); 85 | } 86 | } -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/concretes/CorporateCustomerManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.concretes; 2 | 3 | import java.util.List; 4 | import java.util.stream.Collectors; 5 | 6 | import org.springframework.stereotype.Service; 7 | 8 | import com.kodlamaio.rentAcar.bussines.abstracts.CorporateCustomerService; 9 | import com.kodlamaio.rentAcar.bussines.request.corporateCustomers.CreateCorporateCustomerRequest; 10 | import com.kodlamaio.rentAcar.bussines.request.corporateCustomers.DeleteCorporateCustomerRequest; 11 | import com.kodlamaio.rentAcar.bussines.request.corporateCustomers.UpdateCorporateCustomerRequest; 12 | import com.kodlamaio.rentAcar.bussines.response.corporateCustomers.GetAllCorporateCustomersResponse; 13 | import com.kodlamaio.rentAcar.bussines.response.corporateCustomers.GetByIdCorporateCustomerResponse; 14 | import com.kodlamaio.rentAcar.core.utilities.exceptions.BusinessException; 15 | import com.kodlamaio.rentAcar.core.utilities.mapping.ModelMapperService; 16 | import com.kodlamaio.rentAcar.core.utilities.result.DataResult; 17 | import com.kodlamaio.rentAcar.core.utilities.result.Result; 18 | import com.kodlamaio.rentAcar.core.utilities.result.SuccessDataResult; 19 | import com.kodlamaio.rentAcar.core.utilities.result.SuccessResult; 20 | import com.kodlamaio.rentAcar.dataAccess.abstracts.CorporateCustomerRepository; 21 | import com.kodlamaio.rentAcar.entities.concretes.CorporateCustomer; 22 | 23 | @Service 24 | public class CorporateCustomerManager implements CorporateCustomerService{ 25 | 26 | private CorporateCustomerRepository corporateCustomerRepository; 27 | private ModelMapperService modelMapperService; 28 | 29 | public CorporateCustomerManager(CorporateCustomerRepository corporateCustomerRepository, ModelMapperService modelMapperService) { 30 | this.modelMapperService = modelMapperService; 31 | this.corporateCustomerRepository = corporateCustomerRepository; 32 | } 33 | 34 | @Override 35 | public Result add(CreateCorporateCustomerRequest createCorporateCustomerRequet) { 36 | checkIfCorporateCustomerName(createCorporateCustomerRequet.getCorporateCustomerName()); 37 | CorporateCustomer corporateCustomer = modelMapperService.forRequest().map(createCorporateCustomerRequet, CorporateCustomer.class); 38 | corporateCustomerRepository.save(corporateCustomer); 39 | return new SuccessResult("CORPORATE.CUSTOMER.ADDED"); 40 | } 41 | 42 | @Override 43 | public Result delete(DeleteCorporateCustomerRequest deleteCorporateCustomerRequest) { 44 | checkIfCorporateCustomer(deleteCorporateCustomerRequest.getCorporateCustomerId()); 45 | CorporateCustomer corporateCustomer = corporateCustomerRepository.findById(deleteCorporateCustomerRequest.getCorporateCustomerId()); 46 | corporateCustomerRepository.delete(corporateCustomer); 47 | return new SuccessResult("CORPORATE.CUSTOMER.DELETED"); 48 | } 49 | 50 | @Override 51 | public Result update(UpdateCorporateCustomerRequest updateCorporateCustomerRequest) { 52 | checkIfCorporateCustomer(updateCorporateCustomerRequest.getCorporateCustomerId()); 53 | CorporateCustomer corporateCustomer = modelMapperService.forRequest().map(updateCorporateCustomerRequest, CorporateCustomer.class); 54 | corporateCustomerRepository.save(corporateCustomer); 55 | return new SuccessResult("CORPORATE.CUSTOMER.UPDATED"); 56 | } 57 | 58 | @Override 59 | public DataResult> getAll() { 60 | List corporateCustomers = corporateCustomerRepository.findAll(); 61 | List response = corporateCustomers.stream().map(corporateCustomer -> modelMapperService.forResponse() 62 | .map(corporateCustomer, GetAllCorporateCustomersResponse.class)).collect(Collectors.toList()); 63 | return new SuccessDataResult>(response); 64 | } 65 | 66 | @Override 67 | public DataResult getById(int id) { 68 | checkIfCorporateCustomer(id); 69 | CorporateCustomer corporateCustomer = corporateCustomerRepository.findById(id); 70 | GetByIdCorporateCustomerResponse response = modelMapperService.forResponse().map(corporateCustomer, GetByIdCorporateCustomerResponse.class); 71 | return new SuccessDataResult(response); 72 | } 73 | 74 | @Override 75 | public CorporateCustomer getByCustomerId(int id) { 76 | checkIfCorporateCustomer(id); 77 | return corporateCustomerRepository.findById(id); 78 | } 79 | 80 | 81 | private void checkIfCorporateCustomerName(String name) { 82 | CorporateCustomer corporateCustomer = corporateCustomerRepository.findByCorporateCustomerName(name); 83 | if(corporateCustomer !=null) throw new BusinessException("CORPORATE.CUSTOMER.EXİST"); 84 | } 85 | 86 | private void checkIfCorporateCustomer(int id) { 87 | CorporateCustomer corporateCustomer = corporateCustomerRepository.findById(id); 88 | if(corporateCustomer == null) throw new BusinessException("CORPORATE.CUSTOMER.NOT.FOUND"); 89 | } 90 | 91 | } 92 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/api/controllers/InvoicesController.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.api.controllers; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.web.bind.annotation.GetMapping; 7 | import org.springframework.web.bind.annotation.PostMapping; 8 | import org.springframework.web.bind.annotation.RequestBody; 9 | import org.springframework.web.bind.annotation.RequestMapping; 10 | import org.springframework.web.bind.annotation.RestController; 11 | 12 | import com.kodlamaio.rentAcar.bussines.abstracts.InvoiceService; 13 | import com.kodlamaio.rentAcar.bussines.request.invoices.CreateAdditionalInvoiceRequest; 14 | import com.kodlamaio.rentAcar.bussines.request.invoices.CreateRentalInvoiceRequest; 15 | import com.kodlamaio.rentAcar.bussines.request.invoices.DeleteAdditionalInvoiceRequest; 16 | import com.kodlamaio.rentAcar.bussines.request.invoices.DeleteRentalInvoiceRequest; 17 | import com.kodlamaio.rentAcar.bussines.response.invoices.GetAllCorporateAdditionalInvoicesResponse; 18 | import com.kodlamaio.rentAcar.bussines.response.invoices.GetAllCorporateRentalInvoicesResponse; 19 | import com.kodlamaio.rentAcar.bussines.response.invoices.GetAllIndividualAdditionalInvoicesResponse; 20 | import com.kodlamaio.rentAcar.bussines.response.invoices.GetAllIndividualRentalInvoicesResponse; 21 | import com.kodlamaio.rentAcar.core.utilities.result.DataResult; 22 | import com.kodlamaio.rentAcar.core.utilities.result.Result; 23 | 24 | @RestController 25 | @RequestMapping("/api/invoices/") 26 | public class InvoicesController { 27 | 28 | private InvoiceService invoiceService; 29 | 30 | @Autowired 31 | public InvoicesController(InvoiceService invoiceService) { 32 | this.invoiceService = invoiceService; 33 | } 34 | 35 | @PostMapping("addForIndividualCustomerRental") 36 | public Result addForIndividualCustomerRental(@RequestBody CreateRentalInvoiceRequest createRentalInvoiceRequest) { 37 | return this.invoiceService.addForIndividualCustomerRentalInvoice(createRentalInvoiceRequest); 38 | } 39 | 40 | @PostMapping("addForIndividualCustomerAdditional") 41 | public Result addForIndividualCustomerAdditional(@RequestBody CreateAdditionalInvoiceRequest createAdditionalInvoiceRequest) { 42 | return this.invoiceService.addForIndividualCustomerAdditionalInvoice(createAdditionalInvoiceRequest); 43 | } 44 | 45 | @PostMapping("addForCorporateCustomerRental") 46 | public Result addForCorporateCustomerRental(@RequestBody CreateRentalInvoiceRequest createRentalInvoiceRequest) { 47 | return this.invoiceService.addForCorporateCustomerRentalInvoice(createRentalInvoiceRequest); 48 | } 49 | 50 | @PostMapping("addForCorporateCustomerAdditional") 51 | public Result addForCorporateCustomerAdditional(@RequestBody CreateAdditionalInvoiceRequest createAdditionalInvoiceRequest) { 52 | return this.invoiceService.addForCorporateCustomerAdditionalInvoice(createAdditionalInvoiceRequest); 53 | } 54 | 55 | @PostMapping("deleteForIndividualRentalInvoice") 56 | public Result deleteForIndividualCustomerRentalInvoice(DeleteRentalInvoiceRequest deleteInvoiceRequest) { 57 | return this.invoiceService.deleteForIndividualCustomerRentalInvoice(deleteInvoiceRequest); 58 | } 59 | 60 | @PostMapping("deleteForIndividualAdditionalInvoice") 61 | public Result deleteForIndividualCustomerAdditionalInvoice(DeleteAdditionalInvoiceRequest deleteInvoiceRequest) { 62 | return this.invoiceService.deleteForIndividualCustomerAdditionalInvoice(deleteInvoiceRequest); 63 | } 64 | 65 | @PostMapping("deleteForCorporateRentalInvoice") 66 | public Result deleteForCorporateCustomerRentalInvoice(DeleteRentalInvoiceRequest deleteInvoiceRequest) { 67 | return this.invoiceService.deleteForCorporateCustomerRentalInvoice(deleteInvoiceRequest); 68 | } 69 | 70 | @PostMapping("deleteForCorporateAdditionalInvoice") 71 | public Result deleteForCorporateCustomerAdditionalInvoice(DeleteAdditionalInvoiceRequest deleteInvoiceRequest) { 72 | return this.invoiceService.deleteForCorporateCustomerAdditionalInvoice(deleteInvoiceRequest); 73 | } 74 | 75 | @GetMapping("getallIndividualAdditional") 76 | public DataResult> getAllIndividualAdditionalInvoice(){ 77 | return this.invoiceService.getAllIndividualAdditionalInvoice(); 78 | } 79 | 80 | @GetMapping("getallIndividualRental") 81 | public DataResult> getAllIndividualRentalInvoice(){ 82 | return this.invoiceService.getAllIndividualRentalInvoice(); 83 | } 84 | 85 | @GetMapping("getallCorporateAdditional") 86 | public DataResult> getAllCorporateAdditionalInvoice(){ 87 | return this.invoiceService.getAllCorporateAdditionalInvoice(); 88 | } 89 | 90 | @GetMapping("getallCorporateRental") 91 | public DataResult> getAllCorporateRentalInvoice(){ 92 | return this.invoiceService.getAllCorporateRentalInvoice(); 93 | } 94 | } 95 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/concretes/MaintenanceManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.concretes; 2 | 3 | import java.util.List; 4 | import java.util.stream.Collectors; 5 | 6 | import org.springframework.stereotype.Service; 7 | 8 | import com.kodlamaio.rentAcar.bussines.abstracts.CarService; 9 | import com.kodlamaio.rentAcar.bussines.abstracts.MaintenanceService; 10 | import com.kodlamaio.rentAcar.bussines.request.maintenances.CreateMaintenanceRequest; 11 | import com.kodlamaio.rentAcar.bussines.request.maintenances.DeleteMaintenanceRequest; 12 | import com.kodlamaio.rentAcar.bussines.request.maintenances.UpdateMaintenenceRequest; 13 | import com.kodlamaio.rentAcar.bussines.response.maintenances.GetAllMaintenancesResponse; 14 | import com.kodlamaio.rentAcar.bussines.response.maintenances.GetMaintenanceResponse; 15 | import com.kodlamaio.rentAcar.core.utilities.exceptions.BusinessException; 16 | import com.kodlamaio.rentAcar.core.utilities.mapping.ModelMapperService; 17 | import com.kodlamaio.rentAcar.core.utilities.result.DataResult; 18 | import com.kodlamaio.rentAcar.core.utilities.result.Result; 19 | import com.kodlamaio.rentAcar.core.utilities.result.SuccessDataResult; 20 | import com.kodlamaio.rentAcar.core.utilities.result.SuccessResult; 21 | import com.kodlamaio.rentAcar.dataAccess.abstracts.MaintenanceRepository; 22 | import com.kodlamaio.rentAcar.entities.concretes.Car; 23 | import com.kodlamaio.rentAcar.entities.concretes.Maintenance; 24 | 25 | @Service 26 | public class MaintenanceManager implements MaintenanceService{ 27 | 28 | private MaintenanceRepository maintenanceRepository; 29 | 30 | private ModelMapperService modelMapperService; 31 | 32 | private CarService carService; 33 | 34 | public MaintenanceManager(MaintenanceRepository maintenanceRepository, CarService carService, ModelMapperService modelMapperService) { 35 | this.maintenanceRepository = maintenanceRepository; 36 | this.carService = carService; 37 | this.modelMapperService = modelMapperService; 38 | } 39 | 40 | @Override 41 | public Result add(CreateMaintenanceRequest createMaintenanceRequest) { 42 | // checkIfCar(createMaintenanceRequest.getCarId()); 43 | checkIfState(createMaintenanceRequest.getCarId()); 44 | Car car = carService.getByCarId(createMaintenanceRequest.getCarId()); 45 | Maintenance maintenance = this.modelMapperService.forRequest().map(createMaintenanceRequest, Maintenance.class); 46 | 47 | car.setState(2); 48 | maintenance.setCar(car); 49 | 50 | maintenanceRepository.save(maintenance); 51 | return new SuccessResult("MAINTENANCE.ADDED"); 52 | } 53 | 54 | @Override 55 | public Result delete(DeleteMaintenanceRequest deleteMaintenanceRequest) { 56 | Maintenance maintenance = maintenanceRepository.findById(deleteMaintenanceRequest.getId()); 57 | Car car = maintenance.getCar(); 58 | car.setState(1); 59 | maintenanceRepository.deleteById(deleteMaintenanceRequest.getId()); 60 | return new SuccessResult("MAINTENANCE.DELETED"); 61 | } 62 | 63 | @Override 64 | public Result update(UpdateMaintenenceRequest updateMaintenenceRequest) { 65 | // checkIfCar(updateMaintenenceRequest.getCarId()); 66 | checkIfState(updateMaintenenceRequest.getCarId()); 67 | Car car = carService.getByCarId(updateMaintenenceRequest.getCarId()); 68 | stateCar(updateMaintenenceRequest.getId()); 69 | Maintenance maintenance = this.modelMapperService.forRequest().map(updateMaintenenceRequest, Maintenance.class); 70 | 71 | car.setState(2); 72 | maintenance.setCar(car); 73 | 74 | maintenanceRepository.save(maintenance); 75 | 76 | return new SuccessResult("MAINTENANCE.UPDATE"); 77 | } 78 | 79 | @Override 80 | public DataResult getById(int id) { 81 | Maintenance maintenance = maintenanceRepository.findById(id); 82 | GetMaintenanceResponse response = this.modelMapperService.forResponse().map(maintenance, GetMaintenanceResponse.class); 83 | return new SuccessDataResult(response,"GET_BY_ID"); 84 | } 85 | 86 | @Override 87 | public DataResult> getAll() { 88 | List maintenances = this.maintenanceRepository.findAll(); 89 | List response = maintenances.stream().map(maintenance -> this.modelMapperService.forResponse() 90 | .map(maintenance, GetAllMaintenancesResponse.class)).collect(Collectors.toList()); 91 | return new SuccessDataResult>(response,"MAINTENACES.LISTED"); 92 | } 93 | 94 | // private void checkIfCar(int id) { 95 | // Car car = carRepository.findById(id); 96 | // if(car==null) { 97 | // throw new BusinessException("CAR.NOT.AVAILABLE!!!!"); 98 | // } 99 | // } 100 | 101 | private void checkIfState(int id) { 102 | Car car = carService.getByCarId(id); 103 | if(car.getState()==3) { 104 | throw new BusinessException("STATE.DOES.NOT.FIT!!!!"); 105 | } 106 | } 107 | 108 | private void stateCar(int id) { 109 | Maintenance maintenance = maintenanceRepository.findById(id); 110 | Car car = maintenance.getCar(); 111 | car.setState(1); 112 | } 113 | 114 | 115 | } 116 | -------------------------------------------------------------------------------- /src/main/java/tr/gov/nvi/tckimlik/WS/KPSPublicLocator.java: -------------------------------------------------------------------------------- 1 | /** 2 | * KPSPublicLocator.java 3 | * 4 | * This file was auto-generated from WSDL 5 | * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter. 6 | */ 7 | 8 | package tr.gov.nvi.tckimlik.WS; 9 | 10 | public class KPSPublicLocator extends org.apache.axis.client.Service implements tr.gov.nvi.tckimlik.WS.KPSPublic { 11 | 12 | public KPSPublicLocator() { 13 | } 14 | 15 | 16 | public KPSPublicLocator(org.apache.axis.EngineConfiguration config) { 17 | super(config); 18 | } 19 | 20 | public KPSPublicLocator(java.lang.String wsdlLoc, javax.xml.namespace.QName sName) throws javax.xml.rpc.ServiceException { 21 | super(wsdlLoc, sName); 22 | } 23 | 24 | // Use to get a proxy class for KPSPublicSoap 25 | private java.lang.String KPSPublicSoap_address = "https://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx"; 26 | 27 | public java.lang.String getKPSPublicSoapAddress() { 28 | return KPSPublicSoap_address; 29 | } 30 | 31 | // The WSDD service name defaults to the port name. 32 | private java.lang.String KPSPublicSoapWSDDServiceName = "KPSPublicSoap"; 33 | 34 | public java.lang.String getKPSPublicSoapWSDDServiceName() { 35 | return KPSPublicSoapWSDDServiceName; 36 | } 37 | 38 | public void setKPSPublicSoapWSDDServiceName(java.lang.String name) { 39 | KPSPublicSoapWSDDServiceName = name; 40 | } 41 | 42 | public tr.gov.nvi.tckimlik.WS.KPSPublicSoap getKPSPublicSoap() throws javax.xml.rpc.ServiceException { 43 | java.net.URL endpoint; 44 | try { 45 | endpoint = new java.net.URL(KPSPublicSoap_address); 46 | } 47 | catch (java.net.MalformedURLException e) { 48 | throw new javax.xml.rpc.ServiceException(e); 49 | } 50 | return getKPSPublicSoap(endpoint); 51 | } 52 | 53 | public tr.gov.nvi.tckimlik.WS.KPSPublicSoap getKPSPublicSoap(java.net.URL portAddress) throws javax.xml.rpc.ServiceException { 54 | try { 55 | tr.gov.nvi.tckimlik.WS.KPSPublicSoapStub _stub = new tr.gov.nvi.tckimlik.WS.KPSPublicSoapStub(portAddress, this); 56 | _stub.setPortName(getKPSPublicSoapWSDDServiceName()); 57 | return _stub; 58 | } 59 | catch (org.apache.axis.AxisFault e) { 60 | return null; 61 | } 62 | } 63 | 64 | public void setKPSPublicSoapEndpointAddress(java.lang.String address) { 65 | KPSPublicSoap_address = address; 66 | } 67 | 68 | /** 69 | * For the given interface, get the stub implementation. 70 | * If this service has no port for the given interface, 71 | * then ServiceException is thrown. 72 | */ 73 | public java.rmi.Remote getPort(Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException { 74 | try { 75 | if (tr.gov.nvi.tckimlik.WS.KPSPublicSoap.class.isAssignableFrom(serviceEndpointInterface)) { 76 | tr.gov.nvi.tckimlik.WS.KPSPublicSoapStub _stub = new tr.gov.nvi.tckimlik.WS.KPSPublicSoapStub(new java.net.URL(KPSPublicSoap_address), this); 77 | _stub.setPortName(getKPSPublicSoapWSDDServiceName()); 78 | return _stub; 79 | } 80 | } 81 | catch (java.lang.Throwable t) { 82 | throw new javax.xml.rpc.ServiceException(t); 83 | } 84 | throw new javax.xml.rpc.ServiceException("There is no stub implementation for the interface: " + (serviceEndpointInterface == null ? "null" : serviceEndpointInterface.getName())); 85 | } 86 | 87 | /** 88 | * For the given interface, get the stub implementation. 89 | * If this service has no port for the given interface, 90 | * then ServiceException is thrown. 91 | */ 92 | public java.rmi.Remote getPort(javax.xml.namespace.QName portName, Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException { 93 | if (portName == null) { 94 | return getPort(serviceEndpointInterface); 95 | } 96 | java.lang.String inputPortName = portName.getLocalPart(); 97 | if ("KPSPublicSoap".equals(inputPortName)) { 98 | return getKPSPublicSoap(); 99 | } 100 | else { 101 | java.rmi.Remote _stub = getPort(serviceEndpointInterface); 102 | ((org.apache.axis.client.Stub) _stub).setPortName(portName); 103 | return _stub; 104 | } 105 | } 106 | 107 | public javax.xml.namespace.QName getServiceName() { 108 | return new javax.xml.namespace.QName("http://tckimlik.nvi.gov.tr/WS", "KPSPublic"); 109 | } 110 | 111 | private java.util.HashSet ports = null; 112 | 113 | public java.util.Iterator getPorts() { 114 | if (ports == null) { 115 | ports = new java.util.HashSet(); 116 | ports.add(new javax.xml.namespace.QName("http://tckimlik.nvi.gov.tr/WS", "KPSPublicSoap")); 117 | } 118 | return ports.iterator(); 119 | } 120 | 121 | /** 122 | * Set the endpoint address for the specified port name. 123 | */ 124 | public void setEndpointAddress(java.lang.String portName, java.lang.String address) throws javax.xml.rpc.ServiceException { 125 | 126 | if ("KPSPublicSoap".equals(portName)) { 127 | setKPSPublicSoapEndpointAddress(address); 128 | } 129 | else 130 | { // Unknown Port Name 131 | throw new javax.xml.rpc.ServiceException(" Cannot set Endpoint Address for Unknown Port" + portName); 132 | } 133 | } 134 | 135 | /** 136 | * Set the endpoint address for the specified port name. 137 | */ 138 | public void setEndpointAddress(javax.xml.namespace.QName portName, java.lang.String address) throws javax.xml.rpc.ServiceException { 139 | setEndpointAddress(portName.getLocalPart(), address); 140 | } 141 | 142 | } 143 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/concretes/CarManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.concretes; 2 | 3 | import java.util.List; 4 | import java.util.stream.Collectors; 5 | 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.cache.annotation.Cacheable; 8 | import org.springframework.stereotype.Service; 9 | 10 | import com.kodlamaio.rentAcar.bussines.abstracts.BrandService; 11 | import com.kodlamaio.rentAcar.bussines.abstracts.CarService; 12 | import com.kodlamaio.rentAcar.bussines.abstracts.ColorService; 13 | import com.kodlamaio.rentAcar.bussines.request.cars.CreateCarRequest; 14 | import com.kodlamaio.rentAcar.bussines.request.cars.DeleteCarRequest; 15 | import com.kodlamaio.rentAcar.bussines.request.cars.UpdateCarRequest; 16 | import com.kodlamaio.rentAcar.bussines.response.cars.GetAllCarsResponse; 17 | import com.kodlamaio.rentAcar.bussines.response.cars.GetByIdCarResponse; 18 | import com.kodlamaio.rentAcar.core.utilities.exceptions.BusinessException; 19 | import com.kodlamaio.rentAcar.core.utilities.mapping.ModelMapperService; 20 | import com.kodlamaio.rentAcar.core.utilities.result.DataResult; 21 | import com.kodlamaio.rentAcar.core.utilities.result.Result; 22 | import com.kodlamaio.rentAcar.core.utilities.result.SuccessDataResult; 23 | import com.kodlamaio.rentAcar.core.utilities.result.SuccessResult; 24 | import com.kodlamaio.rentAcar.dataAccess.abstracts.CarRepository; 25 | import com.kodlamaio.rentAcar.entities.concretes.Brand; 26 | import com.kodlamaio.rentAcar.entities.concretes.Car; 27 | import com.kodlamaio.rentAcar.entities.concretes.Color; 28 | 29 | @Service 30 | public class CarManager implements CarService{ 31 | 32 | private CarRepository carRepository; 33 | 34 | private ModelMapperService modelMapperService; 35 | 36 | private BrandService brandService; 37 | 38 | private ColorService colorService; 39 | 40 | @Autowired 41 | public CarManager(CarRepository carRepository,ModelMapperService modelMapperService, 42 | BrandService brandService, ColorService colorService) { 43 | this.carRepository = carRepository; 44 | this.modelMapperService = modelMapperService; 45 | this.brandService = brandService; 46 | this.colorService = colorService; 47 | } 48 | 49 | @Override 50 | public Result add(CreateCarRequest createCarRequest) { 51 | checkIfBrand(createCarRequest.getBrandId()); 52 | checkIfExistCount(createCarRequest.getBrandId()); 53 | checkIfColor(createCarRequest.getColorId()); 54 | // Car car = this.modelMapperService.forRequest().map(createCarRequest, Car.class); 55 | Car car = Car.builder() 56 | .description(createCarRequest.getDescription()) 57 | .dailyPrice(createCarRequest.getDailyPrice()) 58 | .findexScore(createCarRequest.getFindexScore()) 59 | .km(createCarRequest.getKm()) 60 | .plate(createCarRequest.getPlate()) 61 | .brand(brandService.getByBrandId(createCarRequest.getBrandId())) 62 | .color(colorService.getByColorId(createCarRequest.getColorId())) 63 | .state(1) 64 | .build(); 65 | // car.setState(1); 66 | this.carRepository.save(car); 67 | return new SuccessResult("CAR.ADDED"); 68 | 69 | 70 | } 71 | 72 | @Override 73 | public Result delete(DeleteCarRequest deleteCarRequest) { 74 | checkIfCar(deleteCarRequest.getId()); 75 | Car car = carRepository.findById(deleteCarRequest.getId()); 76 | checkIfCarState(car.getState()); 77 | carRepository.deleteById(deleteCarRequest.getId()); 78 | return new SuccessResult("CAR.DELETE"); 79 | 80 | } 81 | 82 | @Override 83 | public Result update(UpdateCarRequest updateCarRequest) { 84 | checkIfCar(updateCarRequest.getId()); 85 | checkIfExistCount(updateCarRequest.getBrandId()); 86 | checkIfColor(updateCarRequest.getColorId()); 87 | checkIfBrand(updateCarRequest.getBrandId()); 88 | Car car = this.modelMapperService.forRequest().map(updateCarRequest, Car.class); 89 | car.setState(1); 90 | carRepository.save(car); 91 | return new SuccessResult("CAR.UPDATE"); 92 | } 93 | 94 | // @Cacheable("cars") 95 | @Override 96 | public DataResult> getAll() { 97 | List cars = this.carRepository.findAll(); 98 | List response = cars.stream().map(car -> this.modelMapperService.forResponse() 99 | .map(car, GetAllCarsResponse.class)).collect(Collectors.toList()); 100 | try { 101 | Thread.sleep(1000 * 4); 102 | } catch (InterruptedException e) { 103 | e.printStackTrace(); 104 | 105 | } 106 | 107 | return new SuccessDataResult>(response); 108 | } 109 | 110 | @Override 111 | public DataResult getById(int id) { 112 | Car car = this.carRepository.findById(id); 113 | GetByIdCarResponse response = this.modelMapperService.forResponse().map(car, GetByIdCarResponse.class); 114 | return new SuccessDataResult(response,"CAR.GET.ID"); 115 | } 116 | 117 | @Override 118 | public Car getByCarId(int id) { 119 | checkIfCar(id); 120 | return carRepository.findById(id); 121 | } 122 | 123 | private void checkIfExistCount(int id) { 124 | List cars = carRepository.findByBrandId(id); 125 | if(cars.size() > 4) { 126 | throw new BusinessException("CAR.EXIST"); 127 | } 128 | } 129 | 130 | private void checkIfBrand(int id) { 131 | Brand brand = brandService.getByBrandId(id); 132 | if(brand == null) { 133 | throw new BusinessException("BRAND.NOT.FOUND!!!"); 134 | } 135 | } 136 | 137 | private void checkIfColor(int id) { 138 | Color color = colorService.getByColorId(id); 139 | if(color == null) throw new BusinessException("BRAND.NOT.FOUND!!!"); 140 | } 141 | 142 | private void checkIfCar(int id) { 143 | Car car = carRepository.findById(id); 144 | if(car == null) throw new BusinessException("CAR.NOT.FOUND!!"); 145 | } 146 | 147 | private void checkIfCarState(int state) { 148 | if(state !=1) { 149 | throw new BusinessException("CAR.NOT.DELETE!!!"); 150 | } 151 | } 152 | 153 | } 154 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/concretes/IndividualCustomerManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.concretes; 2 | 3 | import java.rmi.RemoteException; 4 | import java.util.List; 5 | import java.util.stream.Collectors; 6 | 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | import org.springframework.data.domain.PageRequest; 9 | import org.springframework.data.domain.Pageable; 10 | import org.springframework.stereotype.Service; 11 | 12 | import com.kodlamaio.rentAcar.bussines.abstracts.IndividualCustomerService; 13 | import com.kodlamaio.rentAcar.bussines.request.individualCustomers.CreateIndividualCustomerRequest; 14 | import com.kodlamaio.rentAcar.bussines.request.individualCustomers.DeleteIndividualCustomerRequest; 15 | import com.kodlamaio.rentAcar.bussines.request.individualCustomers.UpdateIndividualCustomerRequest; 16 | import com.kodlamaio.rentAcar.bussines.response.individualCustomers.GetAllIndividualCustomersResponse; 17 | import com.kodlamaio.rentAcar.bussines.response.individualCustomers.GetByIdIndividualCustomerResponse; 18 | import com.kodlamaio.rentAcar.core.utilities.exceptions.BusinessException; 19 | import com.kodlamaio.rentAcar.core.utilities.mapping.ModelMapperService; 20 | import com.kodlamaio.rentAcar.core.utilities.mernis.PersonCheckService; 21 | import com.kodlamaio.rentAcar.core.utilities.result.DataResult; 22 | import com.kodlamaio.rentAcar.core.utilities.result.Result; 23 | import com.kodlamaio.rentAcar.core.utilities.result.SuccessDataResult; 24 | import com.kodlamaio.rentAcar.core.utilities.result.SuccessResult; 25 | import com.kodlamaio.rentAcar.dataAccess.abstracts.IndividualCustomerRepository; 26 | import com.kodlamaio.rentAcar.entities.concretes.IndividualCustomer; 27 | 28 | @Service 29 | public class IndividualCustomerManager implements IndividualCustomerService{ 30 | 31 | private IndividualCustomerRepository individualCustomerRepository; 32 | private ModelMapperService modelMapperService; 33 | private PersonCheckService personCheckService; 34 | 35 | @Autowired 36 | public IndividualCustomerManager(IndividualCustomerRepository individualCustomerRepository, 37 | ModelMapperService modelMapperService, PersonCheckService personCheckService) { 38 | this.individualCustomerRepository = individualCustomerRepository; 39 | this.modelMapperService = modelMapperService; 40 | this.personCheckService = personCheckService; 41 | } 42 | 43 | @Override 44 | public Result add(CreateIndividualCustomerRequest createIndividualCustomerRequest) throws NumberFormatException, RemoteException { 45 | notRepeatNationalIdentity(createIndividualCustomerRequest.getNationalIdentity()); 46 | IndividualCustomer individualCustomer = this.modelMapperService.forRequest().map(createIndividualCustomerRequest, IndividualCustomer.class); 47 | checkIfPerson(individualCustomer); 48 | this.individualCustomerRepository.save(individualCustomer); 49 | return new SuccessResult("INDIVIDUAL.ADDED"); 50 | } 51 | 52 | @Override 53 | public Result delete(DeleteIndividualCustomerRequest deleteIndividualCustomerRequest) { 54 | checkIfIndividualCustomer(deleteIndividualCustomerRequest.getIndividualCustomerId()); 55 | individualCustomerRepository.deleteById(deleteIndividualCustomerRequest.getIndividualCustomerId()); 56 | return new SuccessResult("INDIVIDUAL.DELETED"); 57 | } 58 | 59 | @Override 60 | public Result update(UpdateIndividualCustomerRequest updateIndividualCustomerRequest) { 61 | checkIfIndividualCustomer(updateIndividualCustomerRequest.getIndividualCustomerId()); 62 | IndividualCustomer individualCustomer = this.modelMapperService.forRequest().map(updateIndividualCustomerRequest, IndividualCustomer.class); 63 | this.individualCustomerRepository.save(individualCustomer); 64 | return new SuccessResult("INDIVIDUAL.UPDATE"); 65 | } 66 | 67 | @Override 68 | public DataResult> getAll() { 69 | List users = individualCustomerRepository.findAll(); 70 | List response = users.stream().map(user -> modelMapperService.forResponse() 71 | .map(user, GetAllIndividualCustomersResponse.class)).collect(Collectors.toList()); 72 | return new SuccessDataResult>(response); 73 | } 74 | 75 | @Override 76 | public DataResult> getAll(int pageNo, int pageSize) { 77 | Pageable pageable = PageRequest.of(pageNo-1, pageSize); 78 | 79 | List users = this.individualCustomerRepository.findAll(pageable).getContent(); 80 | 81 | List response = users.stream().map(user -> this.modelMapperService.forResponse() 82 | .map(user, GetAllIndividualCustomersResponse.class)).collect(Collectors.toList()); 83 | 84 | return new SuccessDataResult>(response) ; 85 | } 86 | 87 | @Override 88 | public DataResult getById(int id) { 89 | checkIfIndividualCustomer(id); 90 | IndividualCustomer user = individualCustomerRepository.findById(id); 91 | GetByIdIndividualCustomerResponse response = modelMapperService.forResponse().map(user, GetByIdIndividualCustomerResponse.class); 92 | 93 | return new SuccessDataResult(response); 94 | } 95 | 96 | @Override 97 | public IndividualCustomer getByCustomerId(int id) { 98 | checkIfIndividualCustomer(id); 99 | return individualCustomerRepository.findById(id); 100 | } 101 | 102 | private void checkIfPerson(IndividualCustomer user) throws NumberFormatException, RemoteException { 103 | if(!personCheckService.checkPerson(user)) { 104 | throw new BusinessException("USER.NOT.AVAILABLE"); 105 | } 106 | } 107 | 108 | private void checkIfIndividualCustomer(int id) { 109 | IndividualCustomer individualCustomer = individualCustomerRepository.findById(id); 110 | if(individualCustomer == null) throw new BusinessException("INDIVIDUAL.CUSTOMER.NOT.FOUND"); 111 | } 112 | 113 | private void notRepeatNationalIdentity(String nationalIdentity) { 114 | IndividualCustomer user = individualCustomerRepository.findByNationalIdentity(nationalIdentity); 115 | if(user != null) { 116 | throw new BusinessException("USER.EXİST.!!!"); 117 | } 118 | } 119 | 120 | } 121 | -------------------------------------------------------------------------------- /src/main/java/com/kodlamaio/rentAcar/bussines/concretes/OrderedAdditionalItemManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentAcar.bussines.concretes; 2 | 3 | import java.util.List; 4 | import java.util.stream.Collectors; 5 | 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Service; 8 | 9 | import com.kodlamaio.rentAcar.bussines.abstracts.AdditionalItemService; 10 | import com.kodlamaio.rentAcar.bussines.abstracts.OrderedAdditionalItemService; 11 | import com.kodlamaio.rentAcar.bussines.abstracts.RentalService; 12 | import com.kodlamaio.rentAcar.bussines.request.orderedAdditionalItems.CreateOrderedAdditionalItemRequest; 13 | import com.kodlamaio.rentAcar.bussines.request.orderedAdditionalItems.DeleteOrderedAdditionalItemRequest; 14 | import com.kodlamaio.rentAcar.bussines.request.orderedAdditionalItems.UpdateOrderedAdditionalItemRequest; 15 | import com.kodlamaio.rentAcar.bussines.response.orderedAdditionalItem.GetAllOrderedAdditionalItemsResponse; 16 | import com.kodlamaio.rentAcar.bussines.response.orderedAdditionalItem.GetByIdOrderedAdditionalItemResponse; 17 | import com.kodlamaio.rentAcar.core.utilities.exceptions.BusinessException; 18 | import com.kodlamaio.rentAcar.core.utilities.mapping.ModelMapperService; 19 | import com.kodlamaio.rentAcar.core.utilities.result.DataResult; 20 | import com.kodlamaio.rentAcar.core.utilities.result.Result; 21 | import com.kodlamaio.rentAcar.core.utilities.result.SuccessDataResult; 22 | import com.kodlamaio.rentAcar.core.utilities.result.SuccessResult; 23 | import com.kodlamaio.rentAcar.dataAccess.abstracts.OrderedAdditionalItemRepository; 24 | import com.kodlamaio.rentAcar.entities.concretes.AdditionalItem; 25 | import com.kodlamaio.rentAcar.entities.concretes.OrderedAdditionalItem; 26 | import com.kodlamaio.rentAcar.entities.concretes.Rental; 27 | 28 | @Service 29 | public class OrderedAdditionalItemManager implements OrderedAdditionalItemService{ 30 | 31 | private OrderedAdditionalItemRepository orderedAdditionalItemRepository; 32 | 33 | private ModelMapperService modelMapperService; 34 | 35 | private RentalService rentalService; 36 | 37 | private AdditionalItemService additionalItemService; 38 | 39 | @Autowired 40 | public OrderedAdditionalItemManager(ModelMapperService modelMapperService, OrderedAdditionalItemRepository orderedAdditionalItemRepository, 41 | RentalService rentalService, AdditionalItemService additionalItemService) { 42 | this.modelMapperService = modelMapperService; 43 | this.orderedAdditionalItemRepository = orderedAdditionalItemRepository; 44 | this.rentalService = rentalService; 45 | this.additionalItemService = additionalItemService; 46 | } 47 | 48 | @Override 49 | public Result add(CreateOrderedAdditionalItemRequest createAdditionalRequest) { 50 | // checkIfAdditionalItem(createAdditionalRequest.getAdditionalItemId()); 51 | AdditionalItem additionalItem = additionalItemService.getByAdditionalItemId(createAdditionalRequest.getAdditionalItemId()); 52 | Rental rental = rentalService.getByRentalId(createAdditionalRequest.getRentalId()); 53 | OrderedAdditionalItem additional = modelMapperService.forRequest().map(createAdditionalRequest, OrderedAdditionalItem.class); 54 | 55 | additional.setDays(rental.getTotalDays()); 56 | 57 | double price = additionalItem.getPrice(); 58 | additional.setTotalPrice(additional.getDays() * price); 59 | 60 | orderedAdditionalItemRepository.save(additional); 61 | return new SuccessResult("ADDITIONAL.ADDED"); 62 | } 63 | 64 | @Override 65 | public Result delete(DeleteOrderedAdditionalItemRequest deleteOrderedAdditionalItemRequest) { 66 | checkIfOrderedAdditionalItem(deleteOrderedAdditionalItemRequest.getId()); 67 | orderedAdditionalItemRepository.deleteById(deleteOrderedAdditionalItemRequest.getId()); 68 | return new SuccessResult("ADDITIONAL.DELETED"); 69 | } 70 | 71 | @Override 72 | public Result update(UpdateOrderedAdditionalItemRequest updateOrderedAdditionalItemRequest) { 73 | checkIfOrderedAdditionalItem(updateOrderedAdditionalItemRequest.getId()); 74 | AdditionalItem additionalItem = additionalItemService.getByAdditionalItemId(updateOrderedAdditionalItemRequest.getAdditionalItemId()); 75 | Rental rental = rentalService.getByRentalId(updateOrderedAdditionalItemRequest.getRentalId()); 76 | 77 | OrderedAdditionalItem additional = modelMapperService.forRequest().map(updateOrderedAdditionalItemRequest, OrderedAdditionalItem.class); 78 | 79 | 80 | additional.setDays(rental.getTotalDays()); 81 | 82 | additional.setTotalPrice(additional.getDays() * additionalItem.getPrice()); 83 | 84 | orderedAdditionalItemRepository.save(additional); 85 | return new SuccessResult("ADDITIONAL.UPDATED"); 86 | } 87 | 88 | @Override 89 | public DataResult> getAll() { 90 | List additionals = this.orderedAdditionalItemRepository.findAll(); 91 | List response = additionals.stream().map(additional -> this.modelMapperService.forResponse() 92 | .map(additional, GetAllOrderedAdditionalItemsResponse.class)).collect(Collectors.toList()); 93 | 94 | return new SuccessDataResult>(response,"ADDITIONALS.LISTED"); 95 | } 96 | 97 | @Override 98 | public DataResult getById(int id) { 99 | checkIfOrderedAdditionalItem(id); 100 | OrderedAdditionalItem orderedAdditionalItem = orderedAdditionalItemRepository.findById(id); 101 | GetByIdOrderedAdditionalItemResponse response = modelMapperService.forResponse().map(orderedAdditionalItem, GetByIdOrderedAdditionalItemResponse.class); 102 | 103 | return new SuccessDataResult(response); 104 | } 105 | 106 | @Override 107 | public OrderedAdditionalItem getByOrderedAdditionalItemId(int id) { 108 | checkIfOrderedAdditionalItem(id); 109 | return orderedAdditionalItemRepository.findById(id); 110 | } 111 | 112 | private void checkIfOrderedAdditionalItem(int id) { 113 | OrderedAdditionalItem orderedAdditionalItem = orderedAdditionalItemRepository.findById(id); 114 | if(orderedAdditionalItem == null) throw new BusinessException("ORDERED.ADDITIONAL.ITEM.NOT.FOUND"); 115 | } 116 | 117 | // private void checkIfAdditionalItem(int id) { 118 | // AdditionalItem additionalItem = additionalItemRepository.findById(id); 119 | // if(additionalItem == null) throw new BusinessException("ADDITIONAL.ITEM.NOT.FOUND!!!"); 120 | // } 121 | 122 | } 123 | -------------------------------------------------------------------------------- /src/main/java/tr/gov/nvi/tckimlik/WS/KPSPublicSoapStub.java: -------------------------------------------------------------------------------- 1 | /** 2 | * KPSPublicSoapStub.java 3 | * 4 | * This file was auto-generated from WSDL 5 | * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter. 6 | */ 7 | 8 | package tr.gov.nvi.tckimlik.WS; 9 | 10 | public class KPSPublicSoapStub extends org.apache.axis.client.Stub implements tr.gov.nvi.tckimlik.WS.KPSPublicSoap { 11 | private java.util.Vector cachedSerClasses = new java.util.Vector(); 12 | private java.util.Vector cachedSerQNames = new java.util.Vector(); 13 | private java.util.Vector cachedSerFactories = new java.util.Vector(); 14 | private java.util.Vector cachedDeserFactories = new java.util.Vector(); 15 | 16 | static org.apache.axis.description.OperationDesc [] _operations; 17 | 18 | static { 19 | _operations = new org.apache.axis.description.OperationDesc[1]; 20 | _initOperationDesc1(); 21 | } 22 | 23 | private static void _initOperationDesc1(){ 24 | org.apache.axis.description.OperationDesc oper; 25 | org.apache.axis.description.ParameterDesc param; 26 | oper = new org.apache.axis.description.OperationDesc(); 27 | oper.setName("TCKimlikNoDogrula"); 28 | param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tckimlik.nvi.gov.tr/WS", "TCKimlikNo"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"), long.class, false, false); 29 | oper.addParameter(param); 30 | param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tckimlik.nvi.gov.tr/WS", "Ad"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false); 31 | param.setOmittable(true); 32 | oper.addParameter(param); 33 | param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tckimlik.nvi.gov.tr/WS", "Soyad"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false); 34 | param.setOmittable(true); 35 | oper.addParameter(param); 36 | param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tckimlik.nvi.gov.tr/WS", "DogumYili"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"), int.class, false, false); 37 | oper.addParameter(param); 38 | oper.setReturnType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "boolean")); 39 | oper.setReturnClass(boolean.class); 40 | oper.setReturnQName(new javax.xml.namespace.QName("http://tckimlik.nvi.gov.tr/WS", "TCKimlikNoDogrulaResult")); 41 | oper.setStyle(org.apache.axis.constants.Style.WRAPPED); 42 | oper.setUse(org.apache.axis.constants.Use.LITERAL); 43 | _operations[0] = oper; 44 | 45 | } 46 | 47 | public KPSPublicSoapStub() throws org.apache.axis.AxisFault { 48 | this(null); 49 | } 50 | 51 | public KPSPublicSoapStub(java.net.URL endpointURL, javax.xml.rpc.Service service) throws org.apache.axis.AxisFault { 52 | this(service); 53 | super.cachedEndpoint = endpointURL; 54 | } 55 | 56 | public KPSPublicSoapStub(javax.xml.rpc.Service service) throws org.apache.axis.AxisFault { 57 | if (service == null) { 58 | super.service = new org.apache.axis.client.Service(); 59 | } else { 60 | super.service = service; 61 | } 62 | ((org.apache.axis.client.Service)super.service).setTypeMappingVersion("1.2"); 63 | } 64 | 65 | protected org.apache.axis.client.Call createCall() throws java.rmi.RemoteException { 66 | try { 67 | org.apache.axis.client.Call _call = super._createCall(); 68 | if (super.maintainSessionSet) { 69 | _call.setMaintainSession(super.maintainSession); 70 | } 71 | if (super.cachedUsername != null) { 72 | _call.setUsername(super.cachedUsername); 73 | } 74 | if (super.cachedPassword != null) { 75 | _call.setPassword(super.cachedPassword); 76 | } 77 | if (super.cachedEndpoint != null) { 78 | _call.setTargetEndpointAddress(super.cachedEndpoint); 79 | } 80 | if (super.cachedTimeout != null) { 81 | _call.setTimeout(super.cachedTimeout); 82 | } 83 | if (super.cachedPortName != null) { 84 | _call.setPortName(super.cachedPortName); 85 | } 86 | java.util.Enumeration keys = super.cachedProperties.keys(); 87 | while (keys.hasMoreElements()) { 88 | java.lang.String key = (java.lang.String) keys.nextElement(); 89 | _call.setProperty(key, super.cachedProperties.get(key)); 90 | } 91 | return _call; 92 | } 93 | catch (java.lang.Throwable _t) { 94 | throw new org.apache.axis.AxisFault("Failure trying to get the Call object", _t); 95 | } 96 | } 97 | 98 | public boolean TCKimlikNoDogrula(long TCKimlikNo, java.lang.String ad, java.lang.String soyad, int dogumYili) throws java.rmi.RemoteException { 99 | if (super.cachedEndpoint == null) { 100 | throw new org.apache.axis.NoEndPointException(); 101 | } 102 | org.apache.axis.client.Call _call = createCall(); 103 | _call.setOperation(_operations[0]); 104 | _call.setUseSOAPAction(true); 105 | _call.setSOAPActionURI("http://tckimlik.nvi.gov.tr/WS/TCKimlikNoDogrula"); 106 | _call.setEncodingStyle(null); 107 | _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE); 108 | _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE); 109 | _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS); 110 | _call.setOperationName(new javax.xml.namespace.QName("http://tckimlik.nvi.gov.tr/WS", "TCKimlikNoDogrula")); 111 | 112 | setRequestHeaders(_call); 113 | setAttachments(_call); 114 | try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {new java.lang.Long(TCKimlikNo), ad, soyad, new java.lang.Integer(dogumYili)}); 115 | 116 | if (_resp instanceof java.rmi.RemoteException) { 117 | throw (java.rmi.RemoteException)_resp; 118 | } 119 | else { 120 | extractAttachments(_call); 121 | try { 122 | return ((java.lang.Boolean) _resp).booleanValue(); 123 | } catch (java.lang.Exception _exception) { 124 | return ((java.lang.Boolean) org.apache.axis.utils.JavaUtils.convert(_resp, boolean.class)).booleanValue(); 125 | } 126 | } 127 | } catch (org.apache.axis.AxisFault axisFaultException) { 128 | throw axisFaultException; 129 | } 130 | } 131 | 132 | } 133 | -------------------------------------------------------------------------------- /mvnw.cmd: -------------------------------------------------------------------------------- 1 | @REM ---------------------------------------------------------------------------- 2 | @REM Licensed to the Apache Software Foundation (ASF) under one 3 | @REM or more contributor license agreements. See the NOTICE file 4 | @REM distributed with this work for additional information 5 | @REM regarding copyright ownership. The ASF licenses this file 6 | @REM to you under the Apache License, Version 2.0 (the 7 | @REM "License"); you may not use this file except in compliance 8 | @REM with the License. You may obtain a copy of the License at 9 | @REM 10 | @REM https://www.apache.org/licenses/LICENSE-2.0 11 | @REM 12 | @REM Unless required by applicable law or agreed to in writing, 13 | @REM software distributed under the License is distributed on an 14 | @REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | @REM KIND, either express or implied. See the License for the 16 | @REM specific language governing permissions and limitations 17 | @REM under the License. 18 | @REM ---------------------------------------------------------------------------- 19 | 20 | @REM ---------------------------------------------------------------------------- 21 | @REM Maven Start Up Batch script 22 | @REM 23 | @REM Required ENV vars: 24 | @REM JAVA_HOME - location of a JDK home dir 25 | @REM 26 | @REM Optional ENV vars 27 | @REM M2_HOME - location of maven2's installed home dir 28 | @REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands 29 | @REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending 30 | @REM MAVEN_OPTS - parameters passed to the Java VM when running Maven 31 | @REM e.g. to debug Maven itself, use 32 | @REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 33 | @REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files 34 | @REM ---------------------------------------------------------------------------- 35 | 36 | @REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' 37 | @echo off 38 | @REM set title of command window 39 | title %0 40 | @REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' 41 | @if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% 42 | 43 | @REM set %HOME% to equivalent of $HOME 44 | if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") 45 | 46 | @REM Execute a user defined script before this one 47 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre 48 | @REM check for pre script, once with legacy .bat ending and once with .cmd ending 49 | if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %* 50 | if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %* 51 | :skipRcPre 52 | 53 | @setlocal 54 | 55 | set ERROR_CODE=0 56 | 57 | @REM To isolate internal variables from possible post scripts, we use another setlocal 58 | @setlocal 59 | 60 | @REM ==== START VALIDATION ==== 61 | if not "%JAVA_HOME%" == "" goto OkJHome 62 | 63 | echo. 64 | echo Error: JAVA_HOME not found in your environment. >&2 65 | echo Please set the JAVA_HOME variable in your environment to match the >&2 66 | echo location of your Java installation. >&2 67 | echo. 68 | goto error 69 | 70 | :OkJHome 71 | if exist "%JAVA_HOME%\bin\java.exe" goto init 72 | 73 | echo. 74 | echo Error: JAVA_HOME is set to an invalid directory. >&2 75 | echo JAVA_HOME = "%JAVA_HOME%" >&2 76 | echo Please set the JAVA_HOME variable in your environment to match the >&2 77 | echo location of your Java installation. >&2 78 | echo. 79 | goto error 80 | 81 | @REM ==== END VALIDATION ==== 82 | 83 | :init 84 | 85 | @REM Find the project base dir, i.e. the directory that contains the folder ".mvn". 86 | @REM Fallback to current working directory if not found. 87 | 88 | set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% 89 | IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir 90 | 91 | set EXEC_DIR=%CD% 92 | set WDIR=%EXEC_DIR% 93 | :findBaseDir 94 | IF EXIST "%WDIR%"\.mvn goto baseDirFound 95 | cd .. 96 | IF "%WDIR%"=="%CD%" goto baseDirNotFound 97 | set WDIR=%CD% 98 | goto findBaseDir 99 | 100 | :baseDirFound 101 | set MAVEN_PROJECTBASEDIR=%WDIR% 102 | cd "%EXEC_DIR%" 103 | goto endDetectBaseDir 104 | 105 | :baseDirNotFound 106 | set MAVEN_PROJECTBASEDIR=%EXEC_DIR% 107 | cd "%EXEC_DIR%" 108 | 109 | :endDetectBaseDir 110 | 111 | IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig 112 | 113 | @setlocal EnableExtensions EnableDelayedExpansion 114 | for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a 115 | @endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% 116 | 117 | :endReadAdditionalConfig 118 | 119 | SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" 120 | set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" 121 | set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain 122 | 123 | set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" 124 | 125 | FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( 126 | IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B 127 | ) 128 | 129 | @REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central 130 | @REM This allows using the maven wrapper in projects that prohibit checking in binary data. 131 | if exist %WRAPPER_JAR% ( 132 | if "%MVNW_VERBOSE%" == "true" ( 133 | echo Found %WRAPPER_JAR% 134 | ) 135 | ) else ( 136 | if not "%MVNW_REPOURL%" == "" ( 137 | SET DOWNLOAD_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" 138 | ) 139 | if "%MVNW_VERBOSE%" == "true" ( 140 | echo Couldn't find %WRAPPER_JAR%, downloading it ... 141 | echo Downloading from: %DOWNLOAD_URL% 142 | ) 143 | 144 | powershell -Command "&{"^ 145 | "$webclient = new-object System.Net.WebClient;"^ 146 | "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ 147 | "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ 148 | "}"^ 149 | "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ 150 | "}" 151 | if "%MVNW_VERBOSE%" == "true" ( 152 | echo Finished downloading %WRAPPER_JAR% 153 | ) 154 | ) 155 | @REM End of extension 156 | 157 | @REM Provide a "standardized" way to retrieve the CLI args that will 158 | @REM work with both Windows and non-Windows executions. 159 | set MAVEN_CMD_LINE_ARGS=%* 160 | 161 | %MAVEN_JAVA_EXE% ^ 162 | %JVM_CONFIG_MAVEN_PROPS% ^ 163 | %MAVEN_OPTS% ^ 164 | %MAVEN_DEBUG_OPTS% ^ 165 | -classpath %WRAPPER_JAR% ^ 166 | "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^ 167 | %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* 168 | if ERRORLEVEL 1 goto error 169 | goto end 170 | 171 | :error 172 | set ERROR_CODE=1 173 | 174 | :end 175 | @endlocal & set ERROR_CODE=%ERROR_CODE% 176 | 177 | if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost 178 | @REM check for post script, once with legacy .bat ending and once with .cmd ending 179 | if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat" 180 | if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd" 181 | :skipRcPost 182 | 183 | @REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' 184 | if "%MAVEN_BATCH_PAUSE%"=="on" pause 185 | 186 | if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE% 187 | 188 | cmd /C exit /B %ERROR_CODE% 189 | --------------------------------------------------------------------------------