├── rentACar ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── src │ ├── main │ │ ├── java │ │ │ ├── com │ │ │ │ └── kodlamaio │ │ │ │ │ └── rentACar │ │ │ │ │ ├── core │ │ │ │ │ └── utilities │ │ │ │ │ │ ├── adapters │ │ │ │ │ │ ├── abstracts │ │ │ │ │ │ │ ├── FindexCheckService.java │ │ │ │ │ │ │ └── PersonCheckService.java │ │ │ │ │ │ └── concretes │ │ │ │ │ │ │ ├── FindexCreditAdapter.java │ │ │ │ │ │ │ └── MernisKpsAdapter.java │ │ │ │ │ │ ├── exceptions │ │ │ │ │ │ └── BusinessException.java │ │ │ │ │ │ ├── mapping │ │ │ │ │ │ ├── ModelMapperService.java │ │ │ │ │ │ └── ModelMapperServiceImpl.java │ │ │ │ │ │ ├── results │ │ │ │ │ │ ├── ErrorResult.java │ │ │ │ │ │ ├── SuccessResult.java │ │ │ │ │ │ ├── DataResult.java │ │ │ │ │ │ ├── ErrorDataResult.java │ │ │ │ │ │ ├── SuccessDataResult.java │ │ │ │ │ │ └── Result.java │ │ │ │ │ │ └── aspects │ │ │ │ │ │ ├── Methods.java │ │ │ │ │ │ ├── LoggingAspect.java │ │ │ │ │ │ └── logging.java │ │ │ │ │ ├── business │ │ │ │ │ ├── requests │ │ │ │ │ │ ├── cars │ │ │ │ │ │ │ ├── DeleteCarRequest.java │ │ │ │ │ │ │ ├── UpdateCarRequest.java │ │ │ │ │ │ │ └── CreateCarRequest.java │ │ │ │ │ │ ├── colors │ │ │ │ │ │ │ ├── DeleteColorRequest.java │ │ │ │ │ │ │ ├── CreateColorRequest.java │ │ │ │ │ │ │ └── UpdateColorRequest.java │ │ │ │ │ │ ├── brands │ │ │ │ │ │ │ ├── DeleteBrandRequest.java │ │ │ │ │ │ │ ├── UpdateBrandRequest.java │ │ │ │ │ │ │ └── CreateBrandRequest.java │ │ │ │ │ │ ├── cities │ │ │ │ │ │ │ ├── DeleteCityRequest.java │ │ │ │ │ │ │ ├── UpdateCityRequest.java │ │ │ │ │ │ │ └── CreateCityRequest.java │ │ │ │ │ │ ├── users │ │ │ │ │ │ │ ├── DeleteUserRequest.java │ │ │ │ │ │ │ ├── CreateUserRequest.java │ │ │ │ │ │ │ └── UpdateUserRequest.java │ │ │ │ │ │ ├── addresses │ │ │ │ │ │ │ ├── DeleteAddressRequest.java │ │ │ │ │ │ │ ├── CreateAddressRequest.java │ │ │ │ │ │ │ └── UpdateAddressRequest.java │ │ │ │ │ │ ├── invoices │ │ │ │ │ │ │ ├── DeleteInvoiceRequest.java │ │ │ │ │ │ │ ├── CreateInvoiceRequest.java │ │ │ │ │ │ │ └── UpdateInvoiceRequest.java │ │ │ │ │ │ ├── maintenances │ │ │ │ │ │ │ ├── DeleteMaintenanceRequest.java │ │ │ │ │ │ │ ├── CreateMaintenanceRequest.java │ │ │ │ │ │ │ └── UpdateMaintenanceRequest.java │ │ │ │ │ │ ├── rentals │ │ │ │ │ │ │ ├── DeleteRentalRequest.java │ │ │ │ │ │ │ ├── CreateRentalRequest.java │ │ │ │ │ │ │ └── UpdateRentalRequest.java │ │ │ │ │ │ ├── additionalItems │ │ │ │ │ │ │ ├── DeleteAdditionalItemRequest.java │ │ │ │ │ │ │ ├── CreateAdditionalItemRequest.java │ │ │ │ │ │ │ └── UpdateAdditionalItemRequest.java │ │ │ │ │ │ ├── corporateCustomers │ │ │ │ │ │ │ ├── DeleteCorporateCustomerRequest.java │ │ │ │ │ │ │ ├── CreateCorporateCustomerRequest.java │ │ │ │ │ │ │ └── UpdateCorporateCustomerRequest.java │ │ │ │ │ │ ├── individualCustomers │ │ │ │ │ │ │ ├── DeleteIndividualCustomerRequest.java │ │ │ │ │ │ │ ├── CreateIndividualCustomerRequest.java │ │ │ │ │ │ │ └── UpdateIndividualCustomerRequest.java │ │ │ │ │ │ └── orderedAdditionalItems │ │ │ │ │ │ │ ├── DeleteOrderedAdditionalItemRequest.java │ │ │ │ │ │ │ ├── CreateOrderedAdditionalItemRequest.java │ │ │ │ │ │ │ └── UpdateOrderedAdditionalItemRequest.java │ │ │ │ │ ├── responses │ │ │ │ │ │ ├── brands │ │ │ │ │ │ │ ├── BrandResponse.java │ │ │ │ │ │ │ └── ListBrandResponse.java │ │ │ │ │ │ ├── rentals │ │ │ │ │ │ │ ├── RentalResponse.java │ │ │ │ │ │ │ └── ListRentalResponse.java │ │ │ │ │ │ ├── maintenances │ │ │ │ │ │ │ ├── MaintenanceResponse.java │ │ │ │ │ │ │ └── ListMaintenanceResponse.java │ │ │ │ │ │ ├── colors │ │ │ │ │ │ │ ├── ColorResponse.java │ │ │ │ │ │ │ └── ListColorResponse.java │ │ │ │ │ │ ├── users │ │ │ │ │ │ │ ├── UserResponse.java │ │ │ │ │ │ │ └── ListUserResponse.java │ │ │ │ │ │ ├── additionalItems │ │ │ │ │ │ │ ├── AdditionalItemResponse.java │ │ │ │ │ │ │ └── ListAdditionalItemResponse.java │ │ │ │ │ │ ├── addresses │ │ │ │ │ │ │ ├── AddressResponse.java │ │ │ │ │ │ │ └── ListAddressResponse.java │ │ │ │ │ │ ├── cities │ │ │ │ │ │ │ ├── ListCityResponse.java │ │ │ │ │ │ │ └── CityResponse.java │ │ │ │ │ │ ├── invoices │ │ │ │ │ │ │ ├── ListInvoiceResponse.java │ │ │ │ │ │ │ └── InvoiceResponse.java │ │ │ │ │ │ ├── corporateCustomers │ │ │ │ │ │ │ ├── CorporateCustomerResponse.java │ │ │ │ │ │ │ └── ListCorporeteCustomerResponse.java │ │ │ │ │ │ ├── cars │ │ │ │ │ │ │ ├── CarResponse.java │ │ │ │ │ │ │ └── ListCarResponse.java │ │ │ │ │ │ ├── orderedAdditionalItems │ │ │ │ │ │ │ ├── ListOrderedAdditionalItemResponse.java │ │ │ │ │ │ │ └── OrderedAdditionalItemResponse.java │ │ │ │ │ │ └── individualCustomers │ │ │ │ │ │ │ ├── IndividualCustomerResponse.java │ │ │ │ │ │ │ └── ListIndividualCustomerResponse.java │ │ │ │ │ ├── abstracts │ │ │ │ │ │ ├── CityService.java │ │ │ │ │ │ ├── ColorService.java │ │ │ │ │ │ ├── BrandService.java │ │ │ │ │ │ ├── UserService.java │ │ │ │ │ │ ├── InvoiceService.java │ │ │ │ │ │ ├── MaintenanceService.java │ │ │ │ │ │ ├── AdditionalItemService.java │ │ │ │ │ │ ├── CorporateCustomerService.java │ │ │ │ │ │ ├── IndividualCustomerService.java │ │ │ │ │ │ ├── RentalService.java │ │ │ │ │ │ ├── OrderedAdditionalItemService.java │ │ │ │ │ │ ├── CarService.java │ │ │ │ │ │ └── AddressService.java │ │ │ │ │ └── concretes │ │ │ │ │ │ ├── CityManager.java │ │ │ │ │ │ ├── UserManager.java │ │ │ │ │ │ ├── ColorManager.java │ │ │ │ │ │ ├── BrandManager.java │ │ │ │ │ │ ├── CorporateCustomerManager.java │ │ │ │ │ │ ├── MaintenanceManager.java │ │ │ │ │ │ ├── AdditionalItemManager.java │ │ │ │ │ │ ├── IndividualCustomerManager.java │ │ │ │ │ │ ├── InvoiceManager.java │ │ │ │ │ │ └── AddressManager.java │ │ │ │ │ ├── dataAccess │ │ │ │ │ └── abstracts │ │ │ │ │ │ ├── CityRepository.java │ │ │ │ │ │ ├── UserRepository.java │ │ │ │ │ │ ├── AddressRepository.java │ │ │ │ │ │ ├── RentalRepository.java │ │ │ │ │ │ ├── CustomerRepository.java │ │ │ │ │ │ ├── MaintenanceRepository.java │ │ │ │ │ │ ├── ColorRepository.java │ │ │ │ │ │ ├── BrandRepository.java │ │ │ │ │ │ ├── InvoiceRepository.java │ │ │ │ │ │ ├── AdditionalItemRepository.java │ │ │ │ │ │ ├── CorporateCustomerRepository.java │ │ │ │ │ │ ├── CarRepository.java │ │ │ │ │ │ ├── IndividualCustomerRepository.java │ │ │ │ │ │ └── OrderedAdditionalRepository.java │ │ │ │ │ ├── entities │ │ │ │ │ └── concretes │ │ │ │ │ │ ├── Color.java │ │ │ │ │ │ ├── User.java │ │ │ │ │ │ ├── Brand.java │ │ │ │ │ │ ├── CorporateCustomer.java │ │ │ │ │ │ ├── AdditionalItem.java │ │ │ │ │ │ ├── Invoice.java │ │ │ │ │ │ ├── Address.java │ │ │ │ │ │ ├── Customer.java │ │ │ │ │ │ ├── City.java │ │ │ │ │ │ ├── Maintenance.java │ │ │ │ │ │ ├── IndividualCustomer.java │ │ │ │ │ │ ├── OrderedAdditionalItem.java │ │ │ │ │ │ ├── Rental.java │ │ │ │ │ │ └── Car.java │ │ │ │ │ ├── api │ │ │ │ │ └── controllers │ │ │ │ │ │ ├── InvoicesController.java │ │ │ │ │ │ ├── ColorsController.java │ │ │ │ │ │ ├── BrandsController.java │ │ │ │ │ │ ├── MaintenancesController.java │ │ │ │ │ │ ├── UsersController.java │ │ │ │ │ │ ├── AdditionalItemsController.java │ │ │ │ │ │ ├── CorporateCustomersController.java │ │ │ │ │ │ ├── IndividualCustomersController.java │ │ │ │ │ │ ├── OrderedAdditionalItemsController.java │ │ │ │ │ │ ├── RentalsController.java │ │ │ │ │ │ ├── CarsController.java │ │ │ │ │ │ └── AddressesController.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 ├── pom.xml └── mvnw.cmd └── README.md /rentACar/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kahramanyasin66/rentACar/HEAD/rentACar/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/core/utilities/adapters/abstracts/FindexCheckService.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.core.utilities.adapters.abstracts; 2 | 3 | public interface FindexCheckService { 4 | 5 | int CheckFindexScore(String tcNo); 6 | } 7 | -------------------------------------------------------------------------------- /rentACar/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.5/apache-maven-3.8.5-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 | -------------------------------------------------------------------------------- /rentACar/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 | public BusinessException(String message) { 5 | super(message); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /rentACar/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 | 8 | ModelMapper forRequest(); 9 | 10 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/core/utilities/results/ErrorResult.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.core.utilities.results; 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 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/core/utilities/results/SuccessResult.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.core.utilities.results; 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 | } -------------------------------------------------------------------------------- /rentACar/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 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/cars/DeleteCarRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.cars; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | 11 | public class DeleteCarRequest { 12 | private int id; 13 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/responses/brands/BrandResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.responses.brands; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class BrandResponse { 11 | private int id; 12 | 13 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/colors/DeleteColorRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.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 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/brands/DeleteBrandRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.brands; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | 11 | public class DeleteBrandRequest { 12 | private int id; 13 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/cities/DeleteCityRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.cities; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class DeleteCityRequest { 11 | private int id; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/users/DeleteUserRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.users; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | 11 | public class DeleteUserRequest { 12 | private int id; 13 | } 14 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/responses/rentals/RentalResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.responses.rentals; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class RentalResponse { 11 | 12 | private int id; 13 | 14 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/addresses/DeleteAddressRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.addresses; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | @Data 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | public class DeleteAddressRequest { 10 | private int id ; 11 | } 12 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/cities/UpdateCityRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.cities; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | 11 | public class UpdateCityRequest { 12 | private String name; 13 | } 14 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/invoices/DeleteInvoiceRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.invoices; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class DeleteInvoiceRequest { 11 | private int id; 12 | } 13 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/responses/maintenances/MaintenanceResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.responses.maintenances; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | @Data 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | public class MaintenanceResponse { 10 | private int id ; 11 | } -------------------------------------------------------------------------------- /rentACar/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 | City findById(int id); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/colors/CreateColorRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.colors; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | 11 | public class CreateColorRequest { 12 | private String name ; 13 | 14 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/dataAccess/abstracts/UserRepository.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.User; 6 | 7 | public interface UserRepository extends JpaRepository { 8 | User findById(int id); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/cities/CreateCityRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.cities; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class CreateCityRequest { 11 | private String name; 12 | 13 | 14 | } 15 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/maintenances/DeleteMaintenanceRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.maintenances; 2 | import lombok.AllArgsConstructor; 3 | import lombok.Data; 4 | import lombok.NoArgsConstructor; 5 | 6 | @Data 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | public class DeleteMaintenanceRequest { 10 | private int id; 11 | 12 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/rentals/DeleteRentalRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.rentals; 2 | 3 | import lombok.NoArgsConstructor; 4 | 5 | import lombok.AllArgsConstructor; 6 | 7 | import lombok.Data; 8 | 9 | @Data 10 | @AllArgsConstructor 11 | @NoArgsConstructor 12 | public class DeleteRentalRequest { 13 | private int id; 14 | 15 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/responses/colors/ColorResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.responses.colors; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class ColorResponse { 11 | private int id; 12 | //private String name; 13 | 14 | } -------------------------------------------------------------------------------- /rentACar/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 | } 11 | -------------------------------------------------------------------------------- /rentACar/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 | 9 | Rental findById(int id); 10 | 11 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/brands/UpdateBrandRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.brands; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class UpdateBrandRequest { 11 | 12 | private String name; 13 | private int id; 14 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/colors/UpdateColorRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.colors; 2 | 3 | import lombok.AllArgsConstructor; 4 | 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | @Data 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | public class UpdateColorRequest { 12 | private String name; 13 | private int id; 14 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/responses/brands/ListBrandResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.responses.brands; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class ListBrandResponse { 11 | private int id; 12 | private String name; 13 | 14 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/responses/colors/ListColorResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.responses.colors; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class ListColorResponse { 11 | private int id; 12 | private String name; 13 | 14 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/dataAccess/abstracts/CustomerRepository.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.Customer; 6 | 7 | public interface CustomerRepository extends JpaRepository{ 8 | Customer findById(int id); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/users/CreateUserRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.users; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class CreateUserRequest { 11 | private String email; 12 | private String password; 13 | } 14 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/responses/users/UserResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.responses.users; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class UserResponse { 11 | 12 | private String email; 13 | private String password; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /rentACar/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 | 9 | Maintenance findById(int id); 10 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/additionalItems/DeleteAdditionalItemRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.additionalItems; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | 11 | public class DeleteAdditionalItemRequest { 12 | private int id; 13 | 14 | } 15 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/corporateCustomers/DeleteCorporateCustomerRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.corporateCustomers; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class DeleteCorporateCustomerRequest { 11 | private int id; 12 | } 13 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/responses/users/ListUserResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.responses.users; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class ListUserResponse { 11 | 12 | private String email; 13 | private String password; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /rentACar/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 | import com.kodlamaio.rentACar.entities.concretes.Color; 6 | 7 | public interface ColorRepository extends JpaRepository { 8 | 9 | Color findById(int id); 10 | Color findByName(String name); 11 | } -------------------------------------------------------------------------------- /rentACar/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 | 9 | Brand findById(int id); 10 | Brand findByName(String name); 11 | 12 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/individualCustomers/DeleteIndividualCustomerRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.individualCustomers; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class DeleteIndividualCustomerRequest { 11 | private int id; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/users/UpdateUserRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.users; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class UpdateUserRequest { 11 | private int id; 12 | private String email; 13 | private String password; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/additionalItems/CreateAdditionalItemRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.additionalItems; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class CreateAdditionalItemRequest { 11 | private String name; 12 | private double dailyPrice; 13 | } 14 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/orderedAdditionalItems/DeleteOrderedAdditionalItemRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.orderedAdditionalItems; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class DeleteOrderedAdditionalItemRequest { 11 | private int id; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/core/utilities/adapters/abstracts/PersonCheckService.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.core.utilities.adapters.abstracts; 2 | 3 | import java.rmi.RemoteException; 4 | 5 | import com.kodlamaio.rentACar.entities.concretes.IndividualCustomer; 6 | 7 | public interface PersonCheckService { 8 | boolean checkPerson(IndividualCustomer individualCustomer) throws NumberFormatException, RemoteException; 9 | 10 | } 11 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/invoices/CreateInvoiceRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.invoices; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class CreateInvoiceRequest { 11 | private int invoiceNumber; 12 | private int state; 13 | private int rentalId; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /rentACar/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 | Invoice findByInvoiceNumber(int invoiceNumber); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/brands/CreateBrandRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.brands; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | // email frmatı uygunlğu tc 11 olması veri boş geçilemez validations oluyor 11 | 12 | public class CreateBrandRequest { 13 | private String name; 14 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/responses/additionalItems/AdditionalItemResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.responses.additionalItems; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | 11 | public class AdditionalItemResponse { 12 | private int id; 13 | private String name; 14 | private double dailyPrice; 15 | } 16 | -------------------------------------------------------------------------------- /rentACar/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/rentacardb 5 | spring.datasource.username=postgres 6 | spring.datasource.password=12345 7 | spring.jpa.properties.javax.persistence.validation.mode = none 8 | spring.mvc.pathmatch.matching-strategy=ant-path-matcher 9 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/additionalItems/UpdateAdditionalItemRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.additionalItems; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class UpdateAdditionalItemRequest { 11 | private int id; 12 | private String name; 13 | private double dailyPrice; 14 | } 15 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/addresses/CreateAddressRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.addresses; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class CreateAddressRequest { 11 | 12 | private String realAddress; 13 | private String invoiceAddress; 14 | private int customerId; 15 | } 16 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/invoices/UpdateInvoiceRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.invoices; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class UpdateInvoiceRequest { 11 | private int id; 12 | private int invoiceNumber; 13 | private int rentalId; 14 | private int state; 15 | } 16 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/responses/additionalItems/ListAdditionalItemResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.responses.additionalItems; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class ListAdditionalItemResponse { 11 | private int id; 12 | private String name; 13 | private double dailyPrice; 14 | } 15 | -------------------------------------------------------------------------------- /rentACar/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 | AdditionalItem findByName(String name); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /rentACar/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 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/addresses/UpdateAddressRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.addresses; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class UpdateAddressRequest { 11 | private int id ; 12 | private String realAddress; 13 | private String invoiceAddress; 14 | private int customerId; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/responses/addresses/AddressResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.responses.addresses; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class AddressResponse { 11 | 12 | private int id; 13 | 14 | private String realAddress; 15 | private String invoiceAddress; 16 | private int customerId; 17 | } 18 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/responses/cities/ListCityResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.responses.cities; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlamaio.rentACar.entities.concretes.Car; 6 | 7 | import lombok.AllArgsConstructor; 8 | import lombok.Data; 9 | import lombok.NoArgsConstructor; 10 | @Data 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | public class ListCityResponse { 14 | private String name; 15 | List cars; 16 | } 17 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/responses/invoices/ListInvoiceResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.responses.invoices; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class ListInvoiceResponse { 11 | private int id; 12 | private int invoiceNumber; 13 | private int rentalDetailId; 14 | private double totalPrice; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/responses/cities/CityResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.responses.cities; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlamaio.rentACar.entities.concretes.Car; 6 | 7 | import lombok.AllArgsConstructor; 8 | import lombok.Data; 9 | import lombok.NoArgsConstructor; 10 | 11 | @Data 12 | @AllArgsConstructor 13 | @NoArgsConstructor 14 | public class CityResponse { 15 | private String name; 16 | List cars; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/responses/invoices/InvoiceResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.responses.invoices; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class InvoiceResponse { 11 | private int id; 12 | private int invoiceNumber; 13 | private int rentalDetailId; 14 | private double totalPrice; 15 | 16 | 17 | 18 | } 19 | -------------------------------------------------------------------------------- /rentACar/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 findByTaxNumber(int taxNumber); 10 | } 11 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/responses/addresses/ListAddressResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.responses.addresses; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class ListAddressResponse { 11 | 12 | private int id; 13 | 14 | private String realAddress; 15 | private String invoiceAddress; 16 | private int customerId; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /rentACar/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 | 11 | Car findById(int id); 12 | 13 | Car findByPlate(String plate); 14 | 15 | List getByBrandId(int brandId); // findBy olacak 16 | } -------------------------------------------------------------------------------- /rentACar/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 findByIdentityNumber(String identityNumber); 10 | } 11 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/responses/maintenances/ListMaintenanceResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.responses.maintenances; 2 | 3 | import java.time.LocalDate; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | @Data 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | public class ListMaintenanceResponse { 12 | 13 | private String description; 14 | private LocalDate dateSent; 15 | private LocalDate dateReturned; 16 | private int carId; 17 | 18 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/maintenances/CreateMaintenanceRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.maintenances; 2 | 3 | import java.time.LocalDate; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @AllArgsConstructor 11 | @NoArgsConstructor 12 | 13 | public class CreateMaintenanceRequest { 14 | private String description; 15 | private LocalDate dateSent; 16 | private LocalDate dateReturned; 17 | private int carId; 18 | 19 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/core/utilities/results/DataResult.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.core.utilities.results; 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 | } -------------------------------------------------------------------------------- /rentACar/.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 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/core/utilities/results/ErrorDataResult.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.core.utilities.results; 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 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/dataAccess/abstracts/OrderedAdditionalRepository.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.OrderedAdditionalItem; 8 | 9 | public interface OrderedAdditionalRepository extends JpaRepository { 10 | OrderedAdditionalItem findById(int id); 11 | List findByRentalId(int rentalId); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/corporateCustomers/CreateCorporateCustomerRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.corporateCustomers; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | @Data 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | public class CreateCorporateCustomerRequest { 10 | private String corporateName; 11 | private String taxNumber; 12 | private String customerNumber; 13 | private String email; 14 | private String password; 15 | } 16 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/core/utilities/results/SuccessDataResult.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.core.utilities.results; 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 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/responses/rentals/ListRentalResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.responses.rentals; 2 | 3 | import java.time.LocalDate; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | @Data 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | public class ListRentalResponse { 12 | private int id; 13 | private LocalDate pickupDate; 14 | private LocalDate returnDate; 15 | private int totalDate; 16 | private double totalPrice ; 17 | private int carId; 18 | 19 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/maintenances/UpdateMaintenanceRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.maintenances; 2 | 3 | 4 | import java.time.LocalDate; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | @Data 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | 12 | public class UpdateMaintenanceRequest { 13 | 14 | private int id; 15 | private String description; 16 | private LocalDate dateSent; 17 | private LocalDate dateReturned; 18 | private int carId; 19 | 20 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/corporateCustomers/UpdateCorporateCustomerRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.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 id; 12 | private String corporateName; 13 | private String taxNumber; 14 | private String customerNumber; 15 | private String email; 16 | private String password; 17 | } 18 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/responses/corporateCustomers/CorporateCustomerResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.responses.corporateCustomers; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class CorporateCustomerResponse { 11 | 12 | private int id; 13 | private String corporateName; 14 | private String taxNumber; 15 | private String customerNumber; 16 | private String email; 17 | private String password; 18 | } 19 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/responses/corporateCustomers/ListCorporeteCustomerResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.responses.corporateCustomers; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class ListCorporeteCustomerResponse { 11 | private int id; 12 | private String corporateName; 13 | private String taxNumber; 14 | private String customerNumber; 15 | private String email; 16 | private String password; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/orderedAdditionalItems/CreateOrderedAdditionalItemRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.orderedAdditionalItems; 2 | 3 | import java.time.LocalDate; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @AllArgsConstructor 11 | @NoArgsConstructor 12 | public class CreateOrderedAdditionalItemRequest { 13 | private int additionalItemId; 14 | private int rentalId; 15 | private LocalDate pickUpDate; 16 | private LocalDate returnDate; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/cars/UpdateCarRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.cars; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class UpdateCarRequest { 11 | private String description; 12 | private double dailyPrice; 13 | private double kilometer; 14 | private String plate; 15 | private int carState; 16 | private int brandId; 17 | private int colorId; 18 | private int id; 19 | private int carScore; 20 | 21 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/orderedAdditionalItems/UpdateOrderedAdditionalItemRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.orderedAdditionalItems; 2 | 3 | import java.time.LocalDate; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @AllArgsConstructor 11 | @NoArgsConstructor 12 | public class UpdateOrderedAdditionalItemRequest { 13 | private int id; 14 | private int additionalItemId; 15 | private int rentalId; 16 | private LocalDate pickUpDate; 17 | private LocalDate returnDate; 18 | } 19 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/responses/cars/CarResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.responses.cars; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class CarResponse { 11 | private int id; 12 | private String description; 13 | private double dailyPrice; 14 | private double kilometer; 15 | private String plate; 16 | private int carState; 17 | private int brandId; 18 | private int colorId; 19 | private int cityId; 20 | private int carScore; 21 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/rentals/CreateRentalRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.rentals; 2 | import java.time.LocalDate; 3 | 4 | import lombok.AllArgsConstructor; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | @Data 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | public class CreateRentalRequest { 12 | 13 | private LocalDate pickupDate; 14 | private LocalDate returnDate; 15 | private double totalPrice; 16 | private int carId; 17 | private int returnedCityId; 18 | private int pickUpCityId ; 19 | private int customerId; 20 | 21 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/core/utilities/results/Result.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.core.utilities.results; 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 | } -------------------------------------------------------------------------------- /rentACar/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 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/responses/orderedAdditionalItems/ListOrderedAdditionalItemResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.responses.orderedAdditionalItems; 2 | 3 | import java.time.LocalDate; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @AllArgsConstructor 11 | @NoArgsConstructor 12 | public class ListOrderedAdditionalItemResponse { 13 | private int additionalItemId; 14 | private int rentalId; 15 | private double totalPrice; 16 | private int totalDays; 17 | private LocalDate pickUpDate; 18 | private LocalDate returnDate; 19 | } 20 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/rentals/UpdateRentalRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.rentals; 2 | 3 | import java.time.LocalDate; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | @Data 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | public class UpdateRentalRequest { 12 | private int id; 13 | private LocalDate pickupDate; 14 | private LocalDate returnDate; 15 | private int totalDate; 16 | private double totalPrice; 17 | private int carId; 18 | private int returnedCityId; 19 | private int pickUpCityId ; 20 | private int customerId; 21 | 22 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/responses/individualCustomers/IndividualCustomerResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.responses.individualCustomers; 2 | 3 | import java.time.LocalDate; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @AllArgsConstructor 11 | @NoArgsConstructor 12 | public class IndividualCustomerResponse { 13 | private String customerNumber; 14 | private String firstName; 15 | private String lastName; 16 | private String identityNumber; 17 | private LocalDate birthDate; 18 | private String email; 19 | private String password; 20 | } 21 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/individualCustomers/CreateIndividualCustomerRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.individualCustomers; 2 | 3 | import java.time.LocalDate; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | @Data 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | public class CreateIndividualCustomerRequest { 12 | private String customerNumber; 13 | private String firstName; 14 | private String lastName; 15 | private String identityNumber; 16 | private LocalDate birthDate; 17 | private String email; 18 | private String password; 19 | } 20 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/responses/orderedAdditionalItems/OrderedAdditionalItemResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.responses.orderedAdditionalItems; 2 | 3 | import java.time.LocalDate; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @AllArgsConstructor 11 | @NoArgsConstructor 12 | public class OrderedAdditionalItemResponse { 13 | private int id; 14 | private int additionalItemId; 15 | private int rentalId; 16 | private double totalPrice; 17 | private int totalDays; 18 | private LocalDate pickUpDate; 19 | private LocalDate returnDate; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/responses/individualCustomers/ListIndividualCustomerResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.responses.individualCustomers; 2 | 3 | import java.time.LocalDate; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @AllArgsConstructor 11 | @NoArgsConstructor 12 | public class ListIndividualCustomerResponse { 13 | private String customerNumber; 14 | private String firstName; 15 | private String lastName; 16 | private String identityNumber; 17 | private LocalDate birthDate; 18 | private String email; 19 | private String password; 20 | } 21 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/individualCustomers/UpdateIndividualCustomerRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.individualCustomers; 2 | 3 | import java.time.LocalDate; 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 id; 14 | private String customerNumber; 15 | private String firstName; 16 | private String lastName; 17 | private String identityNumber; 18 | private LocalDate birthDate; 19 | private String email; 20 | private String password; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/responses/cars/ListCarResponse.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.responses.cars; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class ListCarResponse { 11 | private String description; 12 | private double dailyPrice; 13 | private double kilometer; 14 | private String plates; 15 | private int carState; 16 | private int brandId; 17 | private String brandName ; 18 | private int colorId; 19 | private String colorName; 20 | private int cityId; 21 | private String cityName; 22 | private int carScore; 23 | 24 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/requests/cars/CreateCarRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.requests.cars; 2 | 3 | import javax.validation.constraints.NotBlank; 4 | import javax.validation.constraints.NotEmpty; 5 | import javax.validation.constraints.Size; 6 | 7 | import lombok.AllArgsConstructor; 8 | import lombok.Data; 9 | import lombok.NoArgsConstructor; 10 | 11 | @Data 12 | @NoArgsConstructor 13 | @AllArgsConstructor 14 | public class CreateCarRequest { 15 | @NotEmpty 16 | @NotBlank 17 | @Size(min = 2, max = 50) 18 | private String description; 19 | 20 | @NotEmpty 21 | private double dailyPrice; 22 | private double kilometer; 23 | private String plate; 24 | private int brandId; 25 | private int colorId; 26 | // private int cityId; 27 | private int carScore; 28 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/core/utilities/adapters/concretes/FindexCreditAdapter.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.core.utilities.adapters.concretes; 2 | 3 | import java.util.HashMap; 4 | 5 | import java.util.Random; 6 | 7 | import org.springframework.stereotype.Service; 8 | 9 | import com.kodlamaio.rentACar.core.utilities.adapters.abstracts.FindexCheckService; 10 | 11 | @Service 12 | public class FindexCreditAdapter implements FindexCheckService { 13 | Random random = new Random(); 14 | HashMap findexScore; 15 | 16 | public int CheckFindexScore(String tcNo) { 17 | findexScore = new HashMap(); 18 | int score = random.nextInt(1900) + 1; 19 | 20 | findexScore.put(tcNo, score); 21 | System.out.println(score); 22 | return score; 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/core/utilities/aspects/Methods.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.core.utilities.aspects; 2 | 3 | 4 | import java.lang.reflect.Method; 5 | import java.lang.reflect.Parameter; 6 | import java.util.ArrayList; 7 | import java.util.List; 8 | 9 | public final class Methods { 10 | 11 | public static List getParameterNames(Method method) { 12 | Parameter[] parameters = method.getParameters(); 13 | List parameterNames = new ArrayList<>(); 14 | 15 | for (Parameter parameter : parameters) { 16 | if(!parameter.isNamePresent()) { 17 | throw new IllegalArgumentException("Parameter names are not present!"); 18 | } 19 | 20 | String parameterName = parameter.getName(); 21 | parameterNames.add(parameterName); 22 | } 23 | 24 | return parameterNames; 25 | } 26 | 27 | private Methods(){} 28 | } -------------------------------------------------------------------------------- /rentACar/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.Builder; 15 | import lombok.Data; 16 | import lombok.NoArgsConstructor; 17 | @Data 18 | @Builder 19 | @NoArgsConstructor 20 | @AllArgsConstructor 21 | @Entity 22 | @Table(name = "colors") 23 | 24 | public class Color { 25 | @Id() 26 | @GeneratedValue(strategy = GenerationType.IDENTITY) 27 | @Column(name = "id") 28 | private int id ; 29 | 30 | @Column(name = "name") 31 | private String name ; 32 | 33 | @OneToMany(mappedBy = "color") 34 | List cars ; 35 | 36 | } -------------------------------------------------------------------------------- /rentACar/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 | @AllArgsConstructor 18 | @NoArgsConstructor 19 | @Entity 20 | @Table(name = "users") 21 | @Inheritance(strategy = InheritanceType.JOINED) 22 | public class User { 23 | 24 | @Id 25 | @GeneratedValue(strategy = GenerationType.IDENTITY) 26 | @Column(name = "id") 27 | private int id; 28 | 29 | @Column(name = "email") 30 | private String email; 31 | 32 | @Column(name = "password") 33 | private String password; 34 | 35 | } 36 | -------------------------------------------------------------------------------- /rentACar/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.Builder; 15 | import lombok.Data; 16 | import lombok.NoArgsConstructor; 17 | 18 | @Data 19 | @Builder 20 | @NoArgsConstructor 21 | @AllArgsConstructor 22 | @Entity 23 | @Table(name = "brands") 24 | 25 | public class Brand { 26 | @Id 27 | @GeneratedValue(strategy = GenerationType.IDENTITY) 28 | @Column(name = "id") 29 | private int id; 30 | 31 | @Column(name = "name") 32 | private String name; 33 | 34 | // olduğun yer bir diğeri çok 35 | 36 | @OneToMany(mappedBy = "brand") 37 | List cars ; 38 | 39 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/abstracts/CityService.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlamaio.rentACar.business.requests.cities.CreateCityRequest; 6 | import com.kodlamaio.rentACar.business.requests.cities.DeleteCityRequest; 7 | import com.kodlamaio.rentACar.business.requests.cities.UpdateCityRequest; 8 | import com.kodlamaio.rentACar.business.responses.cities.CityResponse; 9 | import com.kodlamaio.rentACar.business.responses.cities.ListCityResponse; 10 | import com.kodlamaio.rentACar.core.utilities.results.DataResult; 11 | import com.kodlamaio.rentACar.core.utilities.results.Result; 12 | 13 | public interface CityService { 14 | Result add(CreateCityRequest createCityRequest); 15 | 16 | Result update(UpdateCityRequest updateCityRequest); 17 | 18 | Result delete(DeleteCityRequest deleteCityRequest); 19 | 20 | DataResult> getall(); 21 | 22 | DataResult getById(int id); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /rentACar/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 | @AllArgsConstructor 15 | @NoArgsConstructor 16 | @Entity 17 | @EqualsAndHashCode(callSuper = false) 18 | @Table(name = "corporate_customers") 19 | @PrimaryKeyJoinColumn(name = "corporate_customer_id", referencedColumnName = "customer_id") 20 | 21 | public class CorporateCustomer extends Customer { 22 | 23 | @Column(name = "corporate_customer_id", insertable = false, updatable = false) 24 | private int corporateCustomerId; 25 | 26 | @Column(name = "corporate_name") 27 | private String corporateName; 28 | 29 | @Column(name = "tax_number") 30 | private String taxNumber; 31 | 32 | } 33 | -------------------------------------------------------------------------------- /rentACar/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 | @AllArgsConstructor 19 | @NoArgsConstructor 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 = "daily_price") 32 | private double dailyPrice; 33 | 34 | @OneToMany(mappedBy = "additionalItem") 35 | List orderedAdditionalItems; 36 | 37 | 38 | 39 | } 40 | -------------------------------------------------------------------------------- /rentACar/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.ManyToOne; 10 | import javax.persistence.Table; 11 | 12 | import lombok.AllArgsConstructor; 13 | import lombok.Data; 14 | import lombok.NoArgsConstructor; 15 | @Data 16 | @AllArgsConstructor 17 | @NoArgsConstructor 18 | @Entity 19 | @Table(name="invoices") 20 | public class Invoice { 21 | @Id 22 | @GeneratedValue(strategy = GenerationType.IDENTITY) 23 | @Column(name = "id") 24 | private int id; 25 | 26 | @Column(name = "invoice_number") 27 | private int invoiceNumber; 28 | 29 | @Column(name = "totalPrice") 30 | private double totalPrice; 31 | 32 | @Column(name = "state") 33 | private int state; 34 | 35 | @ManyToOne 36 | @JoinColumn(name = "rental_id") 37 | private Rental rental; 38 | 39 | } 40 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/core/utilities/adapters/concretes/MernisKpsAdapter.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.core.utilities.adapters.concretes; 2 | 3 | import java.rmi.RemoteException; 4 | 5 | import org.springframework.stereotype.Service; 6 | 7 | import com.kodlamaio.rentACar.core.utilities.adapters.abstracts.PersonCheckService; 8 | import com.kodlamaio.rentACar.entities.concretes.IndividualCustomer; 9 | 10 | import tr.gov.nvi.tckimlik.WS.KPSPublicSoapProxy; 11 | 12 | @Service 13 | public class MernisKpsAdapter implements PersonCheckService { 14 | 15 | @Override 16 | public boolean checkPerson(IndividualCustomer individualCustomer) throws NumberFormatException, RemoteException { 17 | KPSPublicSoapProxy kpsPublicSoapProxy = new KPSPublicSoapProxy(); 18 | 19 | boolean result = kpsPublicSoapProxy.TCKimlikNoDogrula(Long.parseLong(individualCustomer.getIdentityNumber()), 20 | 21 | individualCustomer.getFirstName().toUpperCase(), individualCustomer.getLastName().toUpperCase(), 22 | individualCustomer.getBirthDate().getYear()); 23 | 24 | return result; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /rentACar/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 | @AllArgsConstructor 18 | @NoArgsConstructor 19 | @Entity 20 | @Table(name = "addresses") 21 | public class Address { 22 | 23 | @Id 24 | @GeneratedValue(strategy = GenerationType.IDENTITY) 25 | @Column(name = "id") 26 | private int id; 27 | 28 | @ManyToOne 29 | @JoinColumn(name = "customer_id") 30 | private Customer customer; 31 | 32 | @Column(name = "real_address") // delivery_address 33 | private String realAddress; 34 | 35 | @Column(name = "invoice_address") // bill_address 36 | private String invoiceAddress; 37 | 38 | 39 | } 40 | -------------------------------------------------------------------------------- /rentACar/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 | @AllArgsConstructor 18 | @NoArgsConstructor 19 | @EqualsAndHashCode(callSuper = false) 20 | @Entity 21 | @Table(name = "customers") 22 | @PrimaryKeyJoinColumn(name = "customer_id", referencedColumnName = "id") 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 | List
addresses; 33 | 34 | @OneToMany(mappedBy = "customer") 35 | List rentals; 36 | 37 | } 38 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/abstracts/ColorService.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlamaio.rentACar.business.requests.colors.CreateColorRequest; 6 | import com.kodlamaio.rentACar.business.requests.colors.DeleteColorRequest; 7 | import com.kodlamaio.rentACar.business.requests.colors.UpdateColorRequest; 8 | import com.kodlamaio.rentACar.business.responses.colors.ColorResponse; 9 | import com.kodlamaio.rentACar.business.responses.colors.ListColorResponse; 10 | import com.kodlamaio.rentACar.core.utilities.results.DataResult; 11 | import com.kodlamaio.rentACar.core.utilities.results.Result; 12 | import com.kodlamaio.rentACar.entities.concretes.Color; 13 | 14 | public interface ColorService { 15 | Result add(CreateColorRequest creteColorRequest); 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 findByColorId(int id); 26 | 27 | } -------------------------------------------------------------------------------- /rentACar/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.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 | @AllArgsConstructor 19 | @NoArgsConstructor 20 | @Entity 21 | @Table(name = "cities") 22 | public class City { 23 | @Id 24 | @GeneratedValue(strategy = GenerationType.IDENTITY) 25 | @Column(name = "id") 26 | private int id; 27 | @Column(name = "name") 28 | private String name; 29 | 30 | @OneToMany(mappedBy = "city") // arabanın şehri olmasına gerek yok dediler 31 | List cars; 32 | 33 | @OneToMany(mappedBy = "pickUpCityId") 34 | List pickUpCityRentals; 35 | 36 | @OneToMany(mappedBy = "returnedCityId") 37 | List returnedCityRentals; 38 | 39 | } 40 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/entities/concretes/Maintenance.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.entities.concretes; 2 | 3 | import java.time.LocalDate; 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 | @AllArgsConstructor 20 | @NoArgsConstructor 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 = "description") 30 | private String description; 31 | 32 | @Column(name = "date_sent") 33 | private LocalDate dateSent; 34 | 35 | @Column(name = "date_returned") 36 | private LocalDate dateReturned; 37 | 38 | @ManyToOne 39 | @JoinColumn(name = "car_id") 40 | private Car car; 41 | 42 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/abstracts/BrandService.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlamaio.rentACar.business.requests.brands.CreateBrandRequest; 6 | import com.kodlamaio.rentACar.business.requests.brands.DeleteBrandRequest; 7 | import com.kodlamaio.rentACar.business.requests.brands.UpdateBrandRequest; 8 | import com.kodlamaio.rentACar.business.responses.brands.BrandResponse; 9 | import com.kodlamaio.rentACar.business.responses.brands.ListBrandResponse; 10 | import com.kodlamaio.rentACar.core.utilities.results.DataResult; 11 | import com.kodlamaio.rentACar.core.utilities.results.Result; 12 | import com.kodlamaio.rentACar.entities.concretes.Brand; 13 | 14 | // Response request 15 | 16 | public interface BrandService { 17 | Result add(CreateBrandRequest createBrandRequest); 18 | 19 | Result delete(DeleteBrandRequest deleteBrandRequest); 20 | 21 | Result update(UpdateBrandRequest updateBrandRequest); 22 | 23 | DataResult> getAll(); 24 | 25 | DataResult getById(int id); 26 | 27 | Brand findByBrandId(int id); 28 | 29 | 30 | } -------------------------------------------------------------------------------- /rentACar/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 // git otomatik dependency enjecktions yap IOC'den yararlan demek 8 | // bellekte oluşturulmuş instance'a bean deniyor fasulye 9 | public class ModelMapperServiceImpl implements ModelMapperService { 10 | private ModelMapper modelMapper; 11 | 12 | public ModelMapperServiceImpl(ModelMapper modelMapper) { 13 | 14 | this.modelMapper = modelMapper; 15 | } 16 | 17 | @Override 18 | public ModelMapper forResponse() { 19 | this.modelMapper.getConfiguration().setAmbiguityIgnored(true).setMatchingStrategy(MatchingStrategies.LOOSE); //gevşek herşey map olmak zorunda değil 20 | return this.modelMapper; 21 | } 22 | 23 | @Override 24 | public ModelMapper forRequest() { 25 | this.modelMapper.getConfiguration().setAmbiguityIgnored(true).setMatchingStrategy(MatchingStrategies.STANDARD); // herşey map olacak 26 | return this.modelMapper; 27 | } 28 | 29 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/abstracts/UserService.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.abstracts; 2 | 3 | import java.rmi.RemoteException; 4 | import java.util.List; 5 | 6 | import com.kodlamaio.rentACar.business.requests.users.CreateUserRequest; 7 | import com.kodlamaio.rentACar.business.requests.users.DeleteUserRequest; 8 | import com.kodlamaio.rentACar.business.requests.users.UpdateUserRequest; 9 | import com.kodlamaio.rentACar.business.responses.users.ListUserResponse; 10 | import com.kodlamaio.rentACar.business.responses.users.UserResponse; 11 | import com.kodlamaio.rentACar.core.utilities.results.DataResult; 12 | import com.kodlamaio.rentACar.core.utilities.results.Result; 13 | 14 | public interface UserService { 15 | Result add(CreateUserRequest createUserRequest) throws NumberFormatException, RemoteException; 16 | 17 | Result update(UpdateUserRequest updateUserRequest); 18 | 19 | Result delete(DeleteUserRequest deleteUserRequest); 20 | 21 | DataResult> getAll(); 22 | 23 | DataResult getById(int id); 24 | 25 | DataResult> getAll(Integer pageNo, Integer pageSize); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/entities/concretes/IndividualCustomer.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.entities.concretes; 2 | 3 | import java.time.LocalDate; 4 | 5 | import javax.persistence.Column; 6 | import javax.persistence.Entity; 7 | import javax.persistence.PrimaryKeyJoinColumn; 8 | import javax.persistence.Table; 9 | 10 | import lombok.AllArgsConstructor; 11 | import lombok.Data; 12 | import lombok.EqualsAndHashCode; 13 | import lombok.NoArgsConstructor; 14 | 15 | @Data 16 | @AllArgsConstructor 17 | @NoArgsConstructor 18 | @Entity 19 | @EqualsAndHashCode(callSuper = false) 20 | @Table(name = "individual_customers") 21 | @PrimaryKeyJoinColumn(name = "individual_customer_id", referencedColumnName = "customer_id") 22 | public class IndividualCustomer extends Customer { 23 | 24 | @Column(name = "individual_customer_id", insertable = false, updatable = false) 25 | private int individualCustomerId; 26 | 27 | @Column(name = "first_name") 28 | private String firstName; 29 | 30 | @Column(name = "last_name") 31 | private String lastName; 32 | 33 | @Column(name = "identity_number") 34 | private String identityNumber; 35 | 36 | @Column(name = "birth_date") 37 | private LocalDate birthDate; 38 | 39 | } 40 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/abstracts/InvoiceService.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlamaio.rentACar.business.requests.invoices.CreateInvoiceRequest; 6 | import com.kodlamaio.rentACar.business.requests.invoices.DeleteInvoiceRequest; 7 | import com.kodlamaio.rentACar.business.requests.invoices.UpdateInvoiceRequest; 8 | import com.kodlamaio.rentACar.business.responses.invoices.InvoiceResponse; 9 | import com.kodlamaio.rentACar.business.responses.invoices.ListInvoiceResponse; 10 | import com.kodlamaio.rentACar.core.utilities.results.DataResult; 11 | import com.kodlamaio.rentACar.core.utilities.results.Result; 12 | import com.kodlamaio.rentACar.entities.concretes.AdditionalItem; 13 | 14 | public interface InvoiceService { 15 | 16 | Result add(CreateInvoiceRequest createInvoiceRequest); 17 | 18 | Result delete(DeleteInvoiceRequest deleteInvoiceRequest); 19 | 20 | Result update(UpdateInvoiceRequest updateInvoiceRequest); 21 | 22 | DataResult> getAll(); 23 | 24 | DataResult getById(int id); 25 | 26 | DataResult> getAllAdditionalItemByRentalId (int rentalId); 27 | 28 | 29 | 30 | 31 | } 32 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/abstracts/MaintenanceService.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlamaio.rentACar.business.requests.maintenances.CreateMaintenanceRequest; 6 | import com.kodlamaio.rentACar.business.requests.maintenances.DeleteMaintenanceRequest; 7 | import com.kodlamaio.rentACar.business.requests.maintenances.UpdateMaintenanceRequest; 8 | import com.kodlamaio.rentACar.business.responses.maintenances.ListMaintenanceResponse; 9 | import com.kodlamaio.rentACar.business.responses.maintenances.MaintenanceResponse; 10 | import com.kodlamaio.rentACar.core.utilities.results.DataResult; 11 | import com.kodlamaio.rentACar.core.utilities.results.Result; 12 | import com.kodlamaio.rentACar.entities.concretes.Maintenance; 13 | 14 | public interface MaintenanceService { 15 | Result add(CreateMaintenanceRequest createMaintenanceRequest ); 16 | 17 | Result delete(DeleteMaintenanceRequest deleteMaintenanceRequest); 18 | 19 | Result update(UpdateMaintenanceRequest updateMaintenanceRequest); 20 | 21 | DataResult> getAll(); 22 | 23 | DataResult getById(int id); 24 | 25 | Maintenance findByMaintenanceId(int id); 26 | 27 | } -------------------------------------------------------------------------------- /rentACar/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.web.bind.annotation.GetMapping; 6 | import org.springframework.web.bind.annotation.RequestMapping; 7 | import org.springframework.web.bind.annotation.RequestParam; 8 | import org.springframework.web.bind.annotation.RestController; 9 | 10 | import com.kodlamaio.rentACar.business.abstracts.InvoiceService; 11 | import com.kodlamaio.rentACar.business.responses.invoices.InvoiceResponse; 12 | import com.kodlamaio.rentACar.business.responses.invoices.ListInvoiceResponse; 13 | import com.kodlamaio.rentACar.core.utilities.results.DataResult; 14 | 15 | @RestController 16 | @RequestMapping("/invoices") 17 | public class InvoicesController { 18 | private InvoiceService invoiceService; 19 | 20 | public InvoicesController(InvoiceService invoiceService) { 21 | 22 | this.invoiceService = invoiceService; 23 | } 24 | 25 | @GetMapping("/getall") 26 | public DataResult> getAll() { 27 | return this.invoiceService.getAll(); 28 | } 29 | 30 | @GetMapping("/getbyid") 31 | public DataResult getById(@RequestParam int id) { 32 | return this.invoiceService.getById(id); 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/abstracts/AdditionalItemService.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlamaio.rentACar.business.requests.additionalItems.CreateAdditionalItemRequest; 6 | import com.kodlamaio.rentACar.business.requests.additionalItems.DeleteAdditionalItemRequest; 7 | import com.kodlamaio.rentACar.business.requests.additionalItems.UpdateAdditionalItemRequest; 8 | import com.kodlamaio.rentACar.business.responses.additionalItems.AdditionalItemResponse; 9 | import com.kodlamaio.rentACar.business.responses.additionalItems.ListAdditionalItemResponse; 10 | import com.kodlamaio.rentACar.core.utilities.results.DataResult; 11 | import com.kodlamaio.rentACar.core.utilities.results.Result; 12 | import com.kodlamaio.rentACar.entities.concretes.AdditionalItem; 13 | 14 | public interface AdditionalItemService { 15 | Result add(CreateAdditionalItemRequest createAdditionalItemRequest); 16 | 17 | Result update(UpdateAdditionalItemRequest updateAdditionalItemRequest); 18 | 19 | Result delete(DeleteAdditionalItemRequest deleteAdditionalItemRequest); 20 | 21 | DataResult> getAll(); 22 | 23 | DataResult getById(int id); 24 | 25 | AdditionalItem findByAdditionalItemId(int additionalItemId); 26 | } 27 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/entities/concretes/OrderedAdditionalItem.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.entities.concretes; 2 | 3 | import java.time.LocalDate; 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 | @AllArgsConstructor 20 | @NoArgsConstructor 21 | @Entity 22 | @Table(name="ordered_additional_items") 23 | public class OrderedAdditionalItem { 24 | @Id 25 | @GeneratedValue(strategy = GenerationType.IDENTITY) 26 | @Column(name="id") 27 | private int id; 28 | 29 | @ManyToOne 30 | @JoinColumn(name = "additional_item_id") 31 | private AdditionalItem additionalItem; 32 | 33 | @ManyToOne 34 | @JoinColumn(name = "rental_id") 35 | private Rental rental; 36 | 37 | @Column(name = "total_price") 38 | private double totalPrice; 39 | 40 | @Column(name = "total_days") 41 | private int totalDays; 42 | 43 | @Column(name = "pick_up_date") 44 | private LocalDate pickUpDate; 45 | 46 | @Column(name = "return_date") 47 | private LocalDate returnDate; 48 | 49 | } 50 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/abstracts/CorporateCustomerService.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlamaio.rentACar.business.requests.corporateCustomers.CreateCorporateCustomerRequest; 6 | import com.kodlamaio.rentACar.business.requests.corporateCustomers.DeleteCorporateCustomerRequest; 7 | import com.kodlamaio.rentACar.business.requests.corporateCustomers.UpdateCorporateCustomerRequest; 8 | import com.kodlamaio.rentACar.business.responses.corporateCustomers.CorporateCustomerResponse; 9 | import com.kodlamaio.rentACar.business.responses.corporateCustomers.ListCorporeteCustomerResponse; 10 | import com.kodlamaio.rentACar.core.utilities.results.DataResult; 11 | import com.kodlamaio.rentACar.core.utilities.results.Result; 12 | import com.kodlamaio.rentACar.entities.concretes.CorporateCustomer; 13 | 14 | public interface CorporateCustomerService { 15 | Result add(CreateCorporateCustomerRequest corporateCustomerRequest); 16 | 17 | Result update(UpdateCorporateCustomerRequest updateCorporateCustomerRequest); 18 | 19 | Result delete(DeleteCorporateCustomerRequest deleteCorporateCustomerRequest); 20 | 21 | DataResult> getAll(); 22 | 23 | DataResult getById(int id); 24 | 25 | CorporateCustomer findByCorporateCustomerId(int id); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/abstracts/IndividualCustomerService.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.abstracts; 2 | 3 | import java.rmi.RemoteException; 4 | import java.util.List; 5 | 6 | import com.kodlamaio.rentACar.business.requests.individualCustomers.CreateIndividualCustomerRequest; 7 | import com.kodlamaio.rentACar.business.requests.individualCustomers.DeleteIndividualCustomerRequest; 8 | import com.kodlamaio.rentACar.business.requests.individualCustomers.UpdateIndividualCustomerRequest; 9 | import com.kodlamaio.rentACar.business.responses.individualCustomers.IndividualCustomerResponse; 10 | import com.kodlamaio.rentACar.business.responses.individualCustomers.ListIndividualCustomerResponse; 11 | import com.kodlamaio.rentACar.core.utilities.results.DataResult; 12 | import com.kodlamaio.rentACar.core.utilities.results.Result; 13 | import com.kodlamaio.rentACar.entities.concretes.IndividualCustomer; 14 | 15 | public interface IndividualCustomerService { 16 | Result add(CreateIndividualCustomerRequest createIndividualCustomerRequest) throws NumberFormatException, RemoteException; 17 | 18 | Result update(UpdateIndividualCustomerRequest updateIndividualCustomer); 19 | 20 | Result delete(DeleteIndividualCustomerRequest deleteIndividualCustomer); 21 | 22 | DataResult> getAll(); 23 | 24 | DataResult getById(int id); 25 | 26 | IndividualCustomer findByIndividualCustomerId(int id); 27 | } 28 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/abstracts/RentalService.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlamaio.rentACar.business.requests.rentals.CreateRentalRequest; 6 | import com.kodlamaio.rentACar.business.requests.rentals.DeleteRentalRequest; 7 | import com.kodlamaio.rentACar.business.requests.rentals.UpdateRentalRequest; 8 | import com.kodlamaio.rentACar.business.responses.rentals.ListRentalResponse; 9 | import com.kodlamaio.rentACar.business.responses.rentals.RentalResponse; 10 | import com.kodlamaio.rentACar.business.responses.users.ListUserResponse; 11 | import com.kodlamaio.rentACar.core.utilities.results.DataResult; 12 | import com.kodlamaio.rentACar.core.utilities.results.Result; 13 | import com.kodlamaio.rentACar.entities.concretes.Rental; 14 | 15 | public interface RentalService { 16 | Result addIndividualCustomer(CreateRentalRequest createRentalRequest); 17 | 18 | Result addCorporateCustomer(CreateRentalRequest createRentalRequest); 19 | 20 | Result updateIndividualCustomer(UpdateRentalRequest updateRentalRequest); 21 | 22 | Result updateCorporateCustomer(UpdateRentalRequest updateRentalRequest); 23 | 24 | Result delete(DeleteRentalRequest deleteRentalRequest); 25 | 26 | 27 | 28 | DataResult> getall(); 29 | DataResult> getAll(Integer pageNo, Integer pageSize); 30 | DataResult getById(int id); 31 | 32 | Rental findByRentalId(int id); 33 | 34 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/abstracts/OrderedAdditionalItemService.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlamaio.rentACar.business.requests.orderedAdditionalItems.CreateOrderedAdditionalItemRequest; 6 | import com.kodlamaio.rentACar.business.requests.orderedAdditionalItems.DeleteOrderedAdditionalItemRequest; 7 | import com.kodlamaio.rentACar.business.requests.orderedAdditionalItems.UpdateOrderedAdditionalItemRequest; 8 | import com.kodlamaio.rentACar.business.responses.orderedAdditionalItems.ListOrderedAdditionalItemResponse; 9 | import com.kodlamaio.rentACar.business.responses.orderedAdditionalItems.OrderedAdditionalItemResponse; 10 | import com.kodlamaio.rentACar.core.utilities.results.DataResult; 11 | import com.kodlamaio.rentACar.core.utilities.results.Result; 12 | import com.kodlamaio.rentACar.entities.concretes.OrderedAdditionalItem; 13 | 14 | public interface OrderedAdditionalItemService { 15 | Result add(CreateOrderedAdditionalItemRequest createOrderedAdditionalItemRequest); 16 | 17 | Result update(UpdateOrderedAdditionalItemRequest updateOrderedAdditionalItemRequest); 18 | 19 | Result delete(DeleteOrderedAdditionalItemRequest deleteOrderedAdditionalItemRequest); 20 | 21 | DataResult> getAll(); 22 | 23 | DataResult getById(int id); 24 | 25 | OrderedAdditionalItem findByOrderedAdditionalItemId(int id); 26 | 27 | List findByRentalId(int rentalId); 28 | 29 | } 30 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/abstracts/CarService.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlamaio.rentACar.business.requests.cars.CreateCarRequest; 6 | import com.kodlamaio.rentACar.business.requests.cars.DeleteCarRequest; 7 | import com.kodlamaio.rentACar.business.requests.cars.UpdateCarRequest; 8 | import com.kodlamaio.rentACar.business.responses.cars.CarResponse; 9 | import com.kodlamaio.rentACar.business.responses.cars.ListCarResponse; 10 | import com.kodlamaio.rentACar.core.utilities.results.DataResult; 11 | import com.kodlamaio.rentACar.core.utilities.results.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 findByCarId(int id); 26 | 27 | 28 | 29 | DataResult> getAllSortedByFindeksNumber(); 30 | DataResult> getAllSortedByFindeksNumberAndKilometer(); 31 | DataResult> getByState(int state); 32 | DataResult> getByCityName(String cityName); 33 | DataResult> getByBrandAndColor(String brandName,String colorName); 34 | DataResult> getDailyPriceGreaterThan(double dailyPrice); 35 | 36 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/entities/concretes/Rental.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.entities.concretes; 2 | 3 | import java.time.LocalDate; 4 | import java.util.List; 5 | 6 | import javax.persistence.Column; 7 | import javax.persistence.Entity; 8 | import javax.persistence.GeneratedValue; 9 | import javax.persistence.GenerationType; 10 | import javax.persistence.Id; 11 | import javax.persistence.JoinColumn; 12 | import javax.persistence.ManyToOne; 13 | import javax.persistence.OneToMany; 14 | import javax.persistence.OneToOne; 15 | import javax.persistence.Table; 16 | 17 | import lombok.AllArgsConstructor; 18 | import lombok.Data; 19 | import lombok.NoArgsConstructor; 20 | 21 | @Data 22 | @AllArgsConstructor 23 | @NoArgsConstructor 24 | @Entity 25 | @Table(name = "rentals") 26 | public class Rental { 27 | 28 | @Id 29 | @GeneratedValue(strategy = GenerationType.IDENTITY) 30 | @Column(name = "id") 31 | private int id; 32 | 33 | @Column(name = "pickup_date") 34 | private LocalDate pickupDate; 35 | 36 | @Column(name = "return_date") 37 | private LocalDate returnDate; 38 | 39 | @Column(name = "total_date") 40 | private int totalDate; 41 | 42 | @Column(name = "total_price") 43 | private double totalPrice; 44 | 45 | @ManyToOne 46 | @JoinColumn(name = "car_id") 47 | private Car car; 48 | 49 | @OneToMany(mappedBy = "rental") 50 | List orderedAdditionalItems; 51 | 52 | @OneToOne(mappedBy = "rental") 53 | private Invoice invoice; 54 | 55 | @ManyToOne 56 | @JoinColumn(name="customer_id") 57 | Customer customer; 58 | 59 | @ManyToOne 60 | @JoinColumn (name ="pick_up_city_id", referencedColumnName = "id") 61 | City pickUpCityId ; 62 | 63 | @ManyToOne 64 | @JoinColumn (name="returned_city_id", referencedColumnName = "id") 65 | City returnedCityId ; 66 | 67 | 68 | 69 | 70 | 71 | 72 | } -------------------------------------------------------------------------------- /rentACar/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 | @Builder // mapping 21 | @Data 22 | @AllArgsConstructor 23 | @NoArgsConstructor 24 | @Entity 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 = "kilometer") 39 | private double kilometer; 40 | 41 | @Column(name = "plate") 42 | private String plate; 43 | 44 | @Column(name = "car_state") 45 | private int carState; 46 | 47 | @Column(name = "car_score") // findexScore ile eşleştirme yapmak için 48 | private int carScore; 49 | 50 | @ManyToOne 51 | @JoinColumn(name = "brand_id") // veritabanında markaları bu şekilde tut bu tabloda 52 | private Brand brand; 53 | 54 | @ManyToOne 55 | @JoinColumn(name = "color_id") 56 | private Color color; 57 | 58 | @OneToMany(mappedBy = "car") // bakımdaki arabalar 59 | private List maintenances; 60 | 61 | @OneToMany(mappedBy = "car") // kiradaki arabalar 62 | private List rentals; 63 | 64 | @ManyToOne 65 | @JoinColumn(name = "city_id") 66 | private City city; 67 | 68 | } -------------------------------------------------------------------------------- /rentACar/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 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

Rent A Car Project Backend

2 |

RentACar Project Backend is a demo project with Spring Boot.

3 | 4 | ## Build With 5 | JAVA 6 | SPRINGBOOT 7 | 8 | ## Technologies, Tools And Techniques Used 9 | - Java 10 | - Spring Boot 11 | - N-Tier Architecture 12 | - JPA/Hibernate 13 | - Maven 14 | - Lombok 15 | - ModelMapper 16 | - AOP 17 | - Global Exception Handling 18 | - PostgreSQL 19 | 20 | ## Contributing 21 | Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated. 22 | 23 | 1. Fork the Project 24 | 2. Create your Feature Branch (git checkout -b f/AmazingFeature) 25 | 3. Commit your Changes (git commit -m 'Add some AmazingFeature') 26 | 4. Push to the Branch (git push origin f/AmazingFeature) 27 | 5. Open a Pull Request 28 | 29 | 30 | ## Contact 31 | [![](https://img.shields.io/badge/linkedin-%230077B5.svg?&style=for-the-badge&logo=linkedin&logoColor=white)](https://www.linkedin.com/in/yasin-kahraman-6376a3192/) 32 | [![](https://img.shields.io/badge/medium-%2312100E.svg?&style=for-the-badge&logo=medium&logoColor=white)](https://medium.com/@yasinkahraman66) 33 | [![Mail Badge](https://img.shields.io/badge/yasinkahraman66@gmail.com-c14438?style=for-the-badge&logo=Gmail&logoColor=white&link=mailto:yasinkahraman66@gmail.com)](mailto:yasinkahraman66@gmail.com) 34 | 35 | Project Link: https://github.com/kahramanyasin66/rentACar 36 | ## Acknowledgment 37 | 38 | 🙏engindemirog 39 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/abstracts/AddressService.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlamaio.rentACar.business.requests.addresses.CreateAddressRequest; 6 | import com.kodlamaio.rentACar.business.requests.addresses.DeleteAddressRequest; 7 | import com.kodlamaio.rentACar.business.requests.addresses.UpdateAddressRequest; 8 | import com.kodlamaio.rentACar.business.responses.addresses.AddressResponse; 9 | import com.kodlamaio.rentACar.business.responses.addresses.ListAddressResponse; 10 | import com.kodlamaio.rentACar.core.utilities.results.DataResult; 11 | import com.kodlamaio.rentACar.core.utilities.results.Result; 12 | import com.kodlamaio.rentACar.entities.concretes.Address; 13 | 14 | public interface AddressService { 15 | Result addForIndividualCustomer(CreateAddressRequest createAddressRequest);//individual customer için adres ekleme 16 | Result addForCorporateCustomer(CreateAddressRequest createAddressRequest); //corporate customer için adres ekleme 17 | 18 | Result addInvoiceAddressIfDifferentForIndividualCustomer(CreateAddressRequest createAddressRequest); //individual customer için fatura adresi ekleme 19 | Result addInvoiceAddressIfDifferentForCorporateCustomer(CreateAddressRequest createAddressRequest); //corporate customer için fatura adresi ekleme 20 | 21 | 22 | Result updateForIndividualCustomer(UpdateAddressRequest updateAddressRequest); //individual customer için adres düzenleme 23 | Result updateForCorporateCustomer(UpdateAddressRequest updateAddressRequest); //corporate customer için adres düzenleme 24 | 25 | Result updateIfBothAreSameForIndividualCustomer(UpdateAddressRequest updateAddressRequest);//individual customer için fatura adresi düzenleme 26 | Result updateIfBothAreSameForCorporateCustomer(UpdateAddressRequest updateAddressRequest);//corporate customer için fatura adresi düzenleme 27 | 28 | Result delete(DeleteAddressRequest deleteAddressRequest); 29 | 30 | 31 | DataResult> getAll(); 32 | DataResult getById(int id); 33 | 34 | Address findByAddressId(int id); 35 | 36 | } 37 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/api/controllers/ColorsController.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.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.RequestParam; 12 | import org.springframework.web.bind.annotation.RestController; 13 | 14 | import com.kodlamaio.rentACar.business.abstracts.ColorService; 15 | import com.kodlamaio.rentACar.business.requests.colors.CreateColorRequest; 16 | import com.kodlamaio.rentACar.business.requests.colors.DeleteColorRequest; 17 | import com.kodlamaio.rentACar.business.requests.colors.UpdateColorRequest; 18 | import com.kodlamaio.rentACar.business.responses.colors.ColorResponse; 19 | import com.kodlamaio.rentACar.business.responses.colors.ListColorResponse; 20 | import com.kodlamaio.rentACar.core.utilities.results.DataResult; 21 | import com.kodlamaio.rentACar.core.utilities.results.Result; 22 | 23 | @RestController 24 | @RequestMapping("api/colors") 25 | public class ColorsController { 26 | private ColorService colorService; 27 | 28 | public ColorsController(ColorService colorService) { 29 | 30 | this.colorService = colorService; 31 | } 32 | 33 | @PostMapping("/add") 34 | private Result add(@RequestBody @Valid CreateColorRequest createColorRequest) { 35 | return this.colorService.add(createColorRequest); 36 | 37 | } 38 | 39 | @PostMapping("/update") 40 | public Result update(@RequestBody @Valid UpdateColorRequest updateColorRequest) { 41 | return this.colorService.update(updateColorRequest); 42 | } 43 | 44 | @PostMapping("/delete") 45 | public Result delete(@RequestBody DeleteColorRequest deleteColorRequest) { 46 | return this.colorService.delete(deleteColorRequest); 47 | } 48 | 49 | @GetMapping("/getall") 50 | public DataResult> getAll() { 51 | return this.colorService.getAll(); 52 | } 53 | 54 | @GetMapping("/getbyid") 55 | public DataResult getById(@RequestParam int id) { 56 | return this.colorService.getById(id); 57 | } 58 | 59 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/RentACarApplication.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar; 2 | 3 | import java.util.HashMap; 4 | 5 | import java.util.Map; 6 | 7 | import org.modelmapper.ModelMapper; 8 | import org.springframework.boot.SpringApplication; 9 | import org.springframework.boot.autoconfigure.SpringBootApplication; 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.results.ErrorDataResult; 20 | 21 | @SpringBootApplication 22 | @RestControllerAdvice // hata loglama cash gibi AOP anatosyonu 23 | public class RentACarApplication { 24 | 25 | public static void main(String[] args) { 26 | SpringApplication.run(RentACarApplication.class, args); 27 | } 28 | @Bean 29 | public ModelMapper getModelMapper() { 30 | return new ModelMapper(); 31 | } 32 | @ExceptionHandler 33 | @ResponseStatus(code=HttpStatus.BAD_REQUEST) 34 | public ErrorDataResult handleValidationExceptions(MethodArgumentNotValidException methodArgumentNotValidException){ 35 | 36 | Map validationErrors = new HashMap(); 37 | 38 | 39 | for (FieldError fieldError : methodArgumentNotValidException.getBindingResult().getFieldErrors()) { 40 | 41 | validationErrors.put(fieldError.getField(), fieldError.getDefaultMessage()); 42 | } 43 | 44 | ErrorDataResult errorDataResult = new ErrorDataResult(validationErrors,"VALIDATION.EXCEPTION"); 45 | return errorDataResult; 46 | } 47 | 48 | 49 | @ExceptionHandler //Hata olursa sen çalış 50 | @ResponseStatus(code=HttpStatus.BAD_REQUEST) 51 | public ErrorDataResult handleBusinessExceptions(BusinessException businessExeption){ 52 | ErrorDataResult errorDataResult = new ErrorDataResult(businessExeption.getMessage(),"BUSINESS:EXCEPTION"); 53 | return errorDataResult; 54 | } 55 | 56 | 57 | } 58 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/api/controllers/BrandsController.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.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.RequestParam; 12 | import org.springframework.web.bind.annotation.RestController; 13 | 14 | import com.kodlamaio.rentACar.business.abstracts.BrandService; 15 | import com.kodlamaio.rentACar.business.requests.brands.CreateBrandRequest; 16 | import com.kodlamaio.rentACar.business.requests.brands.DeleteBrandRequest; 17 | import com.kodlamaio.rentACar.business.requests.brands.UpdateBrandRequest; 18 | import com.kodlamaio.rentACar.business.responses.brands.BrandResponse; 19 | import com.kodlamaio.rentACar.business.responses.brands.ListBrandResponse; 20 | import com.kodlamaio.rentACar.core.utilities.results.DataResult; 21 | import com.kodlamaio.rentACar.core.utilities.results.Result; 22 | 23 | @RestController 24 | @RequestMapping("/api/brands") 25 | 26 | public class BrandsController { 27 | private BrandService brandService; 28 | 29 | public BrandsController(BrandService brandService) { 30 | 31 | this.brandService = brandService; 32 | } 33 | 34 | @GetMapping("/sayhello") // endPoint = uç nokta 35 | public String sayHello() { 36 | return "Hello Springboot"; 37 | } 38 | 39 | @PostMapping("/add") 40 | public Result add(@RequestBody @Valid CreateBrandRequest createBrandRequest) { 41 | return this.brandService.add(createBrandRequest); 42 | } 43 | 44 | @PostMapping("/update") 45 | public Result update(@RequestBody @Valid UpdateBrandRequest updateBrandRequest) { 46 | return this.brandService.update(updateBrandRequest); 47 | } 48 | 49 | @PostMapping("/delete") 50 | public Result delete(@RequestBody DeleteBrandRequest deleteBrandRequest) { 51 | return this.brandService.delete(deleteBrandRequest); 52 | } 53 | 54 | @GetMapping("/getall") 55 | public DataResult> getAll() { 56 | return this.brandService.getAll(); 57 | } 58 | 59 | @GetMapping("/getbyid") 60 | public DataResult getById(@RequestParam int id) { 61 | return this.brandService.getById(id); 62 | } 63 | 64 | 65 | 66 | 67 | 68 | } -------------------------------------------------------------------------------- /rentACar/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 javax.validation.Valid; 6 | 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.RequestParam; 12 | import org.springframework.web.bind.annotation.RestController; 13 | 14 | import com.kodlamaio.rentACar.business.abstracts.MaintenanceService; 15 | import com.kodlamaio.rentACar.business.requests.maintenances.CreateMaintenanceRequest; 16 | import com.kodlamaio.rentACar.business.requests.maintenances.DeleteMaintenanceRequest; 17 | import com.kodlamaio.rentACar.business.requests.maintenances.UpdateMaintenanceRequest; 18 | import com.kodlamaio.rentACar.business.responses.maintenances.ListMaintenanceResponse; 19 | import com.kodlamaio.rentACar.business.responses.maintenances.MaintenanceResponse; 20 | import com.kodlamaio.rentACar.core.utilities.results.DataResult; 21 | import com.kodlamaio.rentACar.core.utilities.results.Result; 22 | 23 | @RestController 24 | @RequestMapping("api/maintenances") 25 | public class MaintenancesController { 26 | private MaintenanceService maintenanceService; 27 | 28 | public MaintenancesController(MaintenanceService maintenanceService) { 29 | this.maintenanceService = maintenanceService; 30 | } 31 | 32 | @PostMapping("/add") 33 | public Result add(@RequestBody @Valid CreateMaintenanceRequest createMaintenanceRequest) { 34 | return this.maintenanceService.add(createMaintenanceRequest); 35 | } 36 | 37 | @PostMapping("/update") 38 | public Result update(@RequestBody @Valid UpdateMaintenanceRequest updateMaintenanceRequest) { 39 | return this.maintenanceService.update(updateMaintenanceRequest); 40 | } 41 | 42 | @PostMapping("/delete") 43 | public Result delete(@RequestBody DeleteMaintenanceRequest deleteMaintenanceRequest) { 44 | return this.maintenanceService.delete(deleteMaintenanceRequest); 45 | } 46 | 47 | @GetMapping("/getall") 48 | public DataResult> getAll() { 49 | return this.maintenanceService.getAll(); 50 | 51 | } 52 | 53 | @GetMapping("/getbyid") 54 | public DataResult getById(@RequestParam int id) { 55 | return this.maintenanceService.getById(id); 56 | 57 | } 58 | 59 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/api/controllers/UsersController.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.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.RequestParam; 13 | import org.springframework.web.bind.annotation.RestController; 14 | 15 | import com.kodlamaio.rentACar.business.abstracts.UserService; 16 | import com.kodlamaio.rentACar.business.requests.users.CreateUserRequest; 17 | import com.kodlamaio.rentACar.business.requests.users.DeleteUserRequest; 18 | import com.kodlamaio.rentACar.business.requests.users.UpdateUserRequest; 19 | import com.kodlamaio.rentACar.business.responses.users.ListUserResponse; 20 | import com.kodlamaio.rentACar.business.responses.users.UserResponse; 21 | import com.kodlamaio.rentACar.core.utilities.results.DataResult; 22 | import com.kodlamaio.rentACar.core.utilities.results.Result; 23 | 24 | @RestController 25 | @RequestMapping("api/users") 26 | public class UsersController { 27 | private UserService userService; 28 | 29 | public UsersController(UserService userService) { 30 | 31 | this.userService = userService; 32 | } 33 | 34 | @PostMapping("/add") 35 | public Result add(@RequestBody @Valid CreateUserRequest createUserRequest) 36 | throws NumberFormatException, RemoteException { 37 | return this.userService.add(createUserRequest); 38 | 39 | } 40 | 41 | @PostMapping("/update") 42 | public Result update(@RequestBody @Valid UpdateUserRequest updateUserRequest) { 43 | return this.userService.update(updateUserRequest); 44 | } 45 | 46 | @PostMapping("/delete") 47 | public Result delete(@RequestBody DeleteUserRequest deleteUserRequest) { 48 | return this.userService.delete(deleteUserRequest); 49 | } 50 | 51 | @GetMapping("/getall") 52 | public DataResult> getAll() { 53 | return this.userService.getAll(); 54 | } 55 | 56 | @GetMapping("/getbyid") 57 | public DataResult getById(@RequestParam int id) { 58 | return this.userService.getById(id); 59 | } 60 | 61 | @GetMapping("/getallbypage") 62 | public DataResult> getAllByPage(@RequestParam int pageSize, int pageNo) { 63 | return this.userService.getAll(pageSize, pageNo); 64 | } 65 | 66 | } 67 | -------------------------------------------------------------------------------- /rentACar/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 javax.validation.Valid; 6 | 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.RequestParam; 12 | import org.springframework.web.bind.annotation.RestController; 13 | 14 | import com.kodlamaio.rentACar.business.abstracts.AdditionalItemService; 15 | import com.kodlamaio.rentACar.business.requests.additionalItems.CreateAdditionalItemRequest; 16 | import com.kodlamaio.rentACar.business.requests.additionalItems.DeleteAdditionalItemRequest; 17 | import com.kodlamaio.rentACar.business.requests.additionalItems.UpdateAdditionalItemRequest; 18 | import com.kodlamaio.rentACar.business.responses.additionalItems.AdditionalItemResponse; 19 | import com.kodlamaio.rentACar.business.responses.additionalItems.ListAdditionalItemResponse; 20 | import com.kodlamaio.rentACar.core.utilities.results.DataResult; 21 | import com.kodlamaio.rentACar.core.utilities.results.Result; 22 | 23 | @RestController 24 | @RequestMapping("/api/additionalitems") 25 | public class AdditionalItemsController { 26 | 27 | AdditionalItemService additionalItemService; 28 | 29 | public AdditionalItemsController(AdditionalItemService additionalItemService) { 30 | 31 | this.additionalItemService = additionalItemService; 32 | } 33 | 34 | @PostMapping("/add") 35 | Result add(@RequestBody @Valid CreateAdditionalItemRequest createAdditionalItemRequest) { 36 | return this.additionalItemService.add(createAdditionalItemRequest); 37 | } 38 | 39 | @PostMapping("/uptade") 40 | Result update(@RequestBody @Valid UpdateAdditionalItemRequest updateAdditionalItemRequest) { 41 | return this.additionalItemService.update(updateAdditionalItemRequest); 42 | } 43 | 44 | @PostMapping("/delete") 45 | Result delete(@RequestBody @Valid DeleteAdditionalItemRequest deleteAdditionalItemRequest) { 46 | return this.additionalItemService.delete(deleteAdditionalItemRequest); 47 | } 48 | 49 | @GetMapping("/getall") 50 | DataResult> getAll() { 51 | return this.additionalItemService.getAll(); 52 | } 53 | 54 | @GetMapping("/getbyid") 55 | DataResult getById(@RequestParam int id) { 56 | return this.additionalItemService.getById(id); 57 | } 58 | 59 | } 60 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/api/controllers/CorporateCustomersController.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.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.RequestParam; 12 | import org.springframework.web.bind.annotation.RestController; 13 | 14 | import com.kodlamaio.rentACar.business.abstracts.CorporateCustomerService; 15 | import com.kodlamaio.rentACar.business.requests.corporateCustomers.CreateCorporateCustomerRequest; 16 | import com.kodlamaio.rentACar.business.requests.corporateCustomers.DeleteCorporateCustomerRequest; 17 | import com.kodlamaio.rentACar.business.requests.corporateCustomers.UpdateCorporateCustomerRequest; 18 | import com.kodlamaio.rentACar.business.responses.corporateCustomers.CorporateCustomerResponse; 19 | import com.kodlamaio.rentACar.business.responses.corporateCustomers.ListCorporeteCustomerResponse; 20 | import com.kodlamaio.rentACar.core.utilities.results.DataResult; 21 | import com.kodlamaio.rentACar.core.utilities.results.Result; 22 | 23 | @RestController 24 | @RequestMapping("api/corporatecustomers") 25 | public class CorporateCustomersController { 26 | private CorporateCustomerService corporateCustomerService; 27 | 28 | public CorporateCustomersController(CorporateCustomerService corporateCustomerService) { 29 | 30 | this.corporateCustomerService = corporateCustomerService; 31 | } 32 | 33 | @PostMapping("/add") 34 | public Result add(@RequestBody @Valid CreateCorporateCustomerRequest createCorporateCustomerRequest) { 35 | return this.corporateCustomerService.add(createCorporateCustomerRequest); 36 | } 37 | 38 | @PostMapping("/update") 39 | public Result update(@RequestBody @Valid UpdateCorporateCustomerRequest updateCorporateCustomerRequest) { 40 | return this.corporateCustomerService.update(updateCorporateCustomerRequest); 41 | } 42 | 43 | @PostMapping("/delete") 44 | public Result delete(@RequestBody @Valid DeleteCorporateCustomerRequest deleteCorporateCustomerRequest) { 45 | return this.corporateCustomerService.delete(deleteCorporateCustomerRequest); 46 | } 47 | 48 | @GetMapping("/getall") 49 | public DataResult> getAll() { 50 | return this.corporateCustomerService.getAll(); 51 | } 52 | 53 | @GetMapping("/getbyid") 54 | public DataResult getById(@RequestParam int id) { 55 | return this.corporateCustomerService.getById(id); 56 | } 57 | 58 | } 59 | -------------------------------------------------------------------------------- /rentACar/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.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.RequestParam; 13 | import org.springframework.web.bind.annotation.RestController; 14 | 15 | import com.kodlamaio.rentACar.business.abstracts.IndividualCustomerService; 16 | import com.kodlamaio.rentACar.business.requests.individualCustomers.CreateIndividualCustomerRequest; 17 | import com.kodlamaio.rentACar.business.requests.individualCustomers.DeleteIndividualCustomerRequest; 18 | import com.kodlamaio.rentACar.business.requests.individualCustomers.UpdateIndividualCustomerRequest; 19 | import com.kodlamaio.rentACar.business.responses.individualCustomers.IndividualCustomerResponse; 20 | import com.kodlamaio.rentACar.business.responses.individualCustomers.ListIndividualCustomerResponse; 21 | import com.kodlamaio.rentACar.core.utilities.results.DataResult; 22 | import com.kodlamaio.rentACar.core.utilities.results.Result; 23 | 24 | @RestController 25 | @RequestMapping("api/individualcustomers") 26 | public class IndividualCustomersController { 27 | private IndividualCustomerService individualCustomerService; 28 | 29 | public IndividualCustomersController(IndividualCustomerService individualCustomerService) { 30 | 31 | this.individualCustomerService = individualCustomerService; 32 | } 33 | 34 | @PostMapping("/add") 35 | Result add(@RequestBody @Valid CreateIndividualCustomerRequest createIndividualCustomerRequest) 36 | throws NumberFormatException, RemoteException { 37 | return this.individualCustomerService.add(createIndividualCustomerRequest); 38 | 39 | } 40 | 41 | @PostMapping("/update") 42 | Result update(@RequestBody @Valid UpdateIndividualCustomerRequest updateIndividualCustomerRequest) { 43 | return this.individualCustomerService.update(updateIndividualCustomerRequest); 44 | } 45 | 46 | @PostMapping("/delete") 47 | Result delete(@RequestBody @Valid DeleteIndividualCustomerRequest deleteIndividualCustomerRequest) { 48 | return this.delete(deleteIndividualCustomerRequest); 49 | } 50 | 51 | @GetMapping("/getall") 52 | DataResult> getAll() { 53 | return this.individualCustomerService.getAll(); 54 | } 55 | 56 | @GetMapping("/getbyid") 57 | DataResult getById(@RequestParam int id) { 58 | return this.individualCustomerService.getById(id); 59 | } 60 | 61 | } 62 | -------------------------------------------------------------------------------- /rentACar/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 javax.validation.Valid; 6 | 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.RequestParam; 12 | import org.springframework.web.bind.annotation.RestController; 13 | 14 | import com.kodlamaio.rentACar.business.abstracts.OrderedAdditionalItemService; 15 | import com.kodlamaio.rentACar.business.requests.orderedAdditionalItems.CreateOrderedAdditionalItemRequest; 16 | import com.kodlamaio.rentACar.business.requests.orderedAdditionalItems.DeleteOrderedAdditionalItemRequest; 17 | import com.kodlamaio.rentACar.business.requests.orderedAdditionalItems.UpdateOrderedAdditionalItemRequest; 18 | import com.kodlamaio.rentACar.business.responses.orderedAdditionalItems.ListOrderedAdditionalItemResponse; 19 | import com.kodlamaio.rentACar.business.responses.orderedAdditionalItems.OrderedAdditionalItemResponse; 20 | import com.kodlamaio.rentACar.core.utilities.results.DataResult; 21 | import com.kodlamaio.rentACar.core.utilities.results.Result; 22 | 23 | @RestController 24 | @RequestMapping("/api/orderedadditionalitems") 25 | public class OrderedAdditionalItemsController { 26 | private OrderedAdditionalItemService orderedAdditionalItemService; 27 | 28 | public OrderedAdditionalItemsController(OrderedAdditionalItemService orderedAdditionalItemService) { 29 | 30 | this.orderedAdditionalItemService = orderedAdditionalItemService; 31 | } 32 | 33 | @PostMapping("/add") 34 | Result add(@RequestBody @Valid CreateOrderedAdditionalItemRequest createOrderedAdditionalItemRequest) { 35 | 36 | return this.orderedAdditionalItemService.add(createOrderedAdditionalItemRequest); 37 | 38 | } 39 | 40 | @PostMapping("/update") 41 | Result update(@RequestBody @Valid UpdateOrderedAdditionalItemRequest updateOrderedAdditionalItemRequest) { 42 | return this.orderedAdditionalItemService.update(updateOrderedAdditionalItemRequest); 43 | } 44 | 45 | @PostMapping("/delete") 46 | Result delete(@RequestBody @Valid DeleteOrderedAdditionalItemRequest deleteOrderedAdditionalItemRequest) { 47 | return this.orderedAdditionalItemService.delete(deleteOrderedAdditionalItemRequest); 48 | } 49 | 50 | @GetMapping("/getall") 51 | DataResult> getAll() { 52 | return this.orderedAdditionalItemService.getAll(); 53 | } 54 | 55 | @GetMapping("/getbyid") 56 | DataResult getById(@RequestParam int id) { 57 | return this.orderedAdditionalItemService.getById(id); 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /rentACar/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 javax.validation.Valid; 6 | 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.RequestParam; 12 | import org.springframework.web.bind.annotation.RestController; 13 | 14 | import com.kodlamaio.rentACar.business.abstracts.RentalService; 15 | import com.kodlamaio.rentACar.business.requests.rentals.CreateRentalRequest; 16 | import com.kodlamaio.rentACar.business.requests.rentals.DeleteRentalRequest; 17 | import com.kodlamaio.rentACar.business.requests.rentals.UpdateRentalRequest; 18 | import com.kodlamaio.rentACar.business.responses.rentals.ListRentalResponse; 19 | import com.kodlamaio.rentACar.business.responses.rentals.RentalResponse; 20 | import com.kodlamaio.rentACar.core.utilities.results.DataResult; 21 | import com.kodlamaio.rentACar.core.utilities.results.Result; 22 | 23 | @RestController 24 | @RequestMapping("/api/rentals") 25 | public class RentalsController { 26 | private RentalService rentalService; 27 | 28 | public RentalsController(RentalService rentalService) { 29 | 30 | this.rentalService = rentalService; 31 | } 32 | 33 | @PostMapping("/addindividualcustomer") 34 | public Result addIndividualCustomer(@RequestBody @Valid CreateRentalRequest createRentalRequest) { 35 | return this.rentalService.addIndividualCustomer(createRentalRequest); 36 | 37 | } 38 | @PostMapping("/addcorporatecustomer") 39 | public Result addCorporateCustomer(@RequestBody @Valid CreateRentalRequest createRentalRequest) { 40 | return this.rentalService.addCorporateCustomer(createRentalRequest); 41 | 42 | } 43 | 44 | @PostMapping("/updatecorporatecustomer") 45 | public Result updateCorporateCustomer(@RequestBody @Valid UpdateRentalRequest updateRentalRequest) { 46 | return this.rentalService.updateCorporateCustomer(updateRentalRequest); 47 | } 48 | 49 | @PostMapping("/updateindividualcustomer") 50 | public Result updateIndividualCustomer(@RequestBody @Valid UpdateRentalRequest updateRentalRequest) { 51 | return this.rentalService.updateIndividualCustomer(updateRentalRequest); 52 | } 53 | 54 | @PostMapping("/delete") 55 | public Result delete(@RequestBody DeleteRentalRequest deleteRentalRequest) { 56 | return this.rentalService.delete(deleteRentalRequest); 57 | } 58 | 59 | @GetMapping("/getall") 60 | public DataResult> getAll() { 61 | return this.rentalService.getall(); 62 | 63 | } 64 | 65 | @GetMapping("/getbyid") 66 | public DataResult getById(@RequestParam int id) { 67 | return this.rentalService.getById(id); 68 | } 69 | @GetMapping("/getallbypage") 70 | public DataResult> getAllByPage(@RequestParam int pageSize, int pageNo) { 71 | return this.rentalService.getAll(pageSize, pageNo); 72 | } 73 | 74 | 75 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/concretes/CityManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.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.business.abstracts.CityService; 10 | import com.kodlamaio.rentACar.business.requests.cities.CreateCityRequest; 11 | import com.kodlamaio.rentACar.business.requests.cities.DeleteCityRequest; 12 | import com.kodlamaio.rentACar.business.requests.cities.UpdateCityRequest; 13 | import com.kodlamaio.rentACar.business.responses.cities.CityResponse; 14 | import com.kodlamaio.rentACar.business.responses.cities.ListCityResponse; 15 | import com.kodlamaio.rentACar.core.utilities.mapping.ModelMapperService; 16 | import com.kodlamaio.rentACar.core.utilities.results.DataResult; 17 | import com.kodlamaio.rentACar.core.utilities.results.Result; 18 | import com.kodlamaio.rentACar.core.utilities.results.SuccessDataResult; 19 | import com.kodlamaio.rentACar.core.utilities.results.SuccessResult; 20 | import com.kodlamaio.rentACar.dataAccess.abstracts.CityRepository; 21 | import com.kodlamaio.rentACar.entities.concretes.City; 22 | 23 | @Service 24 | public class CityManager implements CityService { 25 | CityRepository cityRepository; 26 | ModelMapperService modelMapperService; 27 | 28 | @Autowired 29 | public CityManager(CityRepository cityRepository, ModelMapperService modelMapperService) { 30 | this.cityRepository = cityRepository; 31 | this.modelMapperService = modelMapperService; 32 | } 33 | 34 | @Override 35 | public Result add(CreateCityRequest createCityRequest) { 36 | City city = modelMapperService.forRequest().map(createCityRequest, City.class); 37 | this.cityRepository.save(city); 38 | return new SuccessResult("CITY.ADDED"); 39 | } 40 | 41 | @Override 42 | public Result update(UpdateCityRequest updateCityRequest) { 43 | City cityToUpdate = this.modelMapperService.forRequest().map(updateCityRequest, City.class); 44 | this.cityRepository.save(cityToUpdate); 45 | 46 | return new SuccessResult("CITY.UPDATED"); 47 | } 48 | 49 | @Override 50 | public Result delete(DeleteCityRequest deleteCityRequest) { 51 | City deleteToCity = this.modelMapperService.forRequest().map(deleteCityRequest, City.class); 52 | this.cityRepository.delete(deleteToCity); 53 | return new SuccessResult("CITY.DELETED"); 54 | } 55 | 56 | @Override 57 | public DataResult> getall() { 58 | List cities = this.cityRepository.findAll(); 59 | List response = cities.stream() 60 | .map(city -> this.modelMapperService.forResponse().map(city, ListCityResponse.class)) 61 | .collect(Collectors.toList()); 62 | return new SuccessDataResult>(response, "CITIES.LISTED"); 63 | } 64 | 65 | @Override 66 | public DataResult getById(int id) { 67 | City city = this.cityRepository.findById(id); 68 | CityResponse response = this.modelMapperService.forResponse().map(city, CityResponse.class); 69 | 70 | return new SuccessDataResult(response, "CITY.GETTED"); 71 | } 72 | 73 | } 74 | -------------------------------------------------------------------------------- /rentACar/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.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.RequestParam; 12 | import org.springframework.web.bind.annotation.RestController; 13 | 14 | import com.kodlamaio.rentACar.business.abstracts.CarService; 15 | import com.kodlamaio.rentACar.business.requests.cars.CreateCarRequest; 16 | import com.kodlamaio.rentACar.business.requests.cars.DeleteCarRequest; 17 | import com.kodlamaio.rentACar.business.requests.cars.UpdateCarRequest; 18 | import com.kodlamaio.rentACar.business.responses.cars.CarResponse; 19 | import com.kodlamaio.rentACar.business.responses.cars.ListCarResponse; 20 | import com.kodlamaio.rentACar.core.utilities.results.DataResult; 21 | import com.kodlamaio.rentACar.core.utilities.results.Result; 22 | 23 | @RestController 24 | @RequestMapping("api/cars") 25 | public class CarsController { 26 | private CarService carService; 27 | 28 | public CarsController(CarService carService) { 29 | this.carService = carService; 30 | } 31 | 32 | @PostMapping("/add") 33 | public Result add(@RequestBody @Valid CreateCarRequest createCarRequest) { 34 | return this.carService.add(createCarRequest); 35 | 36 | } 37 | 38 | @PostMapping("/update") 39 | public Result update(@RequestBody @Valid UpdateCarRequest updateCarRequest) { 40 | return this.carService.update(updateCarRequest); 41 | } 42 | 43 | @PostMapping("/delete") 44 | public Result delete(@RequestBody DeleteCarRequest deleteCarRequest) { 45 | return this.carService.delete(deleteCarRequest); 46 | } 47 | 48 | @GetMapping("/getall") 49 | public DataResult> getAll() { 50 | return this.carService.getAll(); 51 | } 52 | 53 | @GetMapping("/getbyid") 54 | public DataResult getById(@RequestParam int id) { 55 | return this.carService.getById(id); 56 | // this.carService.getById(id); 57 | } 58 | /*-------------------------OTHERS----------------------------*/ 59 | @GetMapping("/getbystate") 60 | public DataResult> getByState(@RequestParam int state) { 61 | return this.carService.getByState(state); 62 | } 63 | 64 | @GetMapping("/getbycityname") 65 | public DataResult> getByCityName(@RequestParam String cityname) { 66 | return this.carService.getByCityName(cityname); 67 | } 68 | 69 | @GetMapping("/getbybrandandcolorname") 70 | public DataResult> getByBrandAndColor(String brandName,String colorName) { 71 | return this.carService.getByBrandAndColor(brandName,colorName); 72 | } 73 | 74 | @GetMapping("/getallsortedbyfindeksnumber") 75 | public DataResult> getAllSortedByFindeksNumber() { 76 | return this.carService.getAllSortedByFindeksNumber(); 77 | } 78 | 79 | @GetMapping("/getallsortedbyfindeksnumberandkilometer") 80 | public DataResult> getAllSortedByFindeksNumberAndKilometer() { 81 | return this.carService.getAllSortedByFindeksNumberAndKilometer(); 82 | } 83 | 84 | @GetMapping("/getdailypricegreaterthan") 85 | public DataResult> getDailyPriceGreaterThan(double dailyPrice) { 86 | return this.carService.getDailyPriceGreaterThan(dailyPrice); 87 | } 88 | 89 | 90 | 91 | 92 | 93 | } -------------------------------------------------------------------------------- /rentACar/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | org.springframework.boot 6 | spring-boot-starter-parent 7 | 2.7.0 8 | 9 | 10 | com.kodlamaio 11 | rentAcar 12 | 0.0.1-SNAPSHOT 13 | rentAcar 14 | Demo project for Casgem camp 15 | 16 | 17 17 | 18 | 19 | 20 | 21 | 22 | 23 | com.thoughtworks.paranamer 24 | paranamer 25 | 2.8 26 | 27 | 28 | 29 | 30 | org.springframework.boot 31 | spring-boot-starter-aop 32 | 33 | 34 | 35 | com.fasterxml.jackson.core 36 | jackson-databind 37 | 2.10.3 38 | 39 | 40 | 41 | org.modelmapper 42 | modelmapper 43 | 3.1.0 44 | 45 | 46 | 47 | org.springframework.boot 48 | spring-boot-starter-data-jpa 49 | 50 | 51 | 52 | 53 | org.springframework.boot 54 | spring-boot-starter-validation 55 | 56 | 57 | org.springframework.boot 58 | spring-boot-starter-web 59 | 60 | 61 | 62 | org.springframework.boot 63 | spring-boot-devtools 64 | runtime 65 | true 66 | 67 | 68 | org.postgresql 69 | postgresql 70 | runtime 71 | 72 | 73 | org.projectlombok 74 | lombok 75 | true 76 | 77 | 78 | org.springframework.boot 79 | spring-boot-starter-test 80 | test 81 | 82 | 83 | 84 | commons-logging 85 | commons-logging 86 | 1.2 87 | 88 | 89 | 90 | org.apache.logging.log4j 91 | log4j-jcl 92 | 2.17.2 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | org.springframework.boot 102 | spring-boot-maven-plugin 103 | 104 | 105 | 106 | org.projectlombok 107 | lombok 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | -------------------------------------------------------------------------------- /rentACar/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.io.IOException; 7 | //import java.time.LocalDate; 8 | // 9 | //import org.aspectj.lang.JoinPoint; 10 | //import org.aspectj.lang.annotation.Aspect; 11 | //import org.aspectj.lang.annotation.Before; 12 | //import org.aspectj.lang.reflect.MethodSignature; 13 | //import org.springframework.stereotype.Component; 14 | // 15 | //import com.fasterxml.jackson.databind.ObjectMapper; 16 | // 17 | //@Aspect 18 | //@Component 19 | // 20 | //public class LoggingAspect { 21 | // 22 | // @Before("execution(* com.kodlamaio.rentACar.business.concretes.*.*(..))") // önce kullanacağım // için before .. 23 | // // bütün metodlarda çalışması için 24 | // public void beforeLog(JoinPoint joinPoint) { 25 | // ObjectMapper mapper = new ObjectMapper(); 26 | // try { 27 | // MethodSignature signature = (MethodSignature) joinPoint.getSignature(); 28 | // StringBuilder stringBuilder = new StringBuilder(); 29 | // 30 | // stringBuilder.append("\n{"); 31 | // stringBuilder.append("\n\"date\":" + mapper.writeValueAsString(LocalDate.now().toString())); 32 | // stringBuilder.append( 33 | // "\n\"className\":" + mapper.writeValueAsString(joinPoint.getTarget().getClass().getSimpleName())); 34 | // stringBuilder.append("\n\"methodName\":" + signature.getMethod().getName()); 35 | // 36 | // if (signature.getMethod().getName() != "getAll") { 37 | // stringBuilder.append("\n\"parameters\":" + mapper.writeValueAsString(joinPoint.getArgs())); 38 | // 39 | // } else { 40 | // stringBuilder.append("\"parameters\":" + "none"); 41 | // 42 | // } 43 | // 44 | // 45 | // 46 | // 47 | // 48 | // stringBuilder.append("\n}"); 49 | // File file = new File("C:\\logs\\operations.json"); 50 | // 51 | // try (BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(file, true))) { 52 | // bufferedWriter.write(stringBuilder.toString()); 53 | // 54 | // } catch (IOException e) { 55 | // System.out.println("Unable to read file " + file.toString()); 56 | // } 57 | // 58 | // } catch (Throwable e) { 59 | // 60 | // e.printStackTrace(); 61 | // } 62 | // ; 63 | // } 64 | //} 65 | 66 | // stringBuilder.append("{ " + "\n"); 67 | // 68 | // stringBuilder.append("," + "\n " + "}"); 69 | 70 | // 71 | /* 72 | * @Before("execution (*com.kodlamaio.rentACar.business.concretes.BrandManager.deleteById(int)" 73 | * ) // önce kullanacağım // için before public void beforeLog(JoinPoint 74 | * joinPoint) { // Advice MethodSignature signature = (MethodSignature) 75 | * joinPoint.getSignature(); 76 | * 77 | * System.out.println("before brand manager deleteById"); 78 | * //System.out.println(joinPoint.getArgs()[0]); //ilk parametresi 79 | * //System.out.println(joinPoint.getSignature()); // metod imzası gösterir 80 | * System.out.println(joinPoint.FIELD_GET); 81 | * System.out.println(signature.getParameterNames()[0]); 82 | * 83 | * } 84 | * 85 | */ 86 | 87 | /* 88 | * 89 | * @Before("public void pointcut() {}") //önce kullanacağım için public void 90 | * beforeLog() { // Advice 91 | * 92 | * System.out.println("before brand manager delete"); 93 | * 94 | * } 95 | * 96 | * @After("public void pointcut() {}") //önce kullanacağım için public void 97 | * afterLog() { // Advice 98 | * 99 | * System.out.println("before brand manager delete"); 100 | * 101 | * } 102 | * 103 | * @Pointcut("execution (* com.kodlamaio.rentACar.business.concretes.BrandManager.deleteById(int)" 104 | * ) public void pointcut() {} //damy metodu 105 | * 106 | */ 107 | 108 | //} 109 | // 110 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/concretes/UserManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.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.business.abstracts.UserService; 13 | import com.kodlamaio.rentACar.business.requests.users.CreateUserRequest; 14 | import com.kodlamaio.rentACar.business.requests.users.DeleteUserRequest; 15 | import com.kodlamaio.rentACar.business.requests.users.UpdateUserRequest; 16 | import com.kodlamaio.rentACar.business.responses.users.ListUserResponse; 17 | import com.kodlamaio.rentACar.business.responses.users.UserResponse; 18 | import com.kodlamaio.rentACar.core.utilities.mapping.ModelMapperService; 19 | import com.kodlamaio.rentACar.core.utilities.results.DataResult; 20 | import com.kodlamaio.rentACar.core.utilities.results.Result; 21 | import com.kodlamaio.rentACar.core.utilities.results.SuccessDataResult; 22 | import com.kodlamaio.rentACar.core.utilities.results.SuccessResult; 23 | import com.kodlamaio.rentACar.dataAccess.abstracts.UserRepository; 24 | import com.kodlamaio.rentACar.entities.concretes.User; 25 | 26 | @Service 27 | public class UserManager implements UserService { 28 | UserRepository userRepository; 29 | ModelMapperService modelMapperService; 30 | 31 | @Autowired 32 | public UserManager(UserRepository userRepository, ModelMapperService modelMapperService) { 33 | this.userRepository = userRepository; 34 | this.modelMapperService = modelMapperService; 35 | } 36 | 37 | @Override 38 | public Result add(CreateUserRequest createUserRequest) throws NumberFormatException, RemoteException { 39 | 40 | 41 | User user = this.modelMapperService.forRequest().map(createUserRequest, User.class); 42 | 43 | this.userRepository.save(user); 44 | return new SuccessResult("USER.ADDED"); 45 | 46 | } 47 | 48 | @Override 49 | public Result update(UpdateUserRequest updateUserRequest) { 50 | User userToUpdate = this.modelMapperService.forRequest().map(updateUserRequest, User.class); 51 | this.userRepository.save(userToUpdate); 52 | return new SuccessResult("USER.UPDATED"); 53 | } 54 | 55 | @Override 56 | public Result delete(DeleteUserRequest deleteUserRequest) { 57 | User deleteToUser = this.modelMapperService.forRequest().map(deleteUserRequest, User.class); 58 | this.userRepository.delete(deleteToUser); 59 | return new SuccessResult("USER.DELETED"); 60 | } 61 | 62 | @Override 63 | public DataResult> getAll() { 64 | List users = this.userRepository.findAll(); 65 | List response = users.stream() 66 | .map(user -> this.modelMapperService.forResponse().map(user, ListUserResponse.class)) 67 | .collect(Collectors.toList()); 68 | 69 | return new SuccessDataResult>(response, "USERS.LISTED"); 70 | } 71 | 72 | @Override 73 | public DataResult getById(int id) { 74 | User userId = this.userRepository.findById(id); 75 | UserResponse response = this.modelMapperService.forResponse().map(userId, UserResponse.class); 76 | return new SuccessDataResult(response, "USER.GETTED"); 77 | } 78 | 79 | @Override 80 | public DataResult> getAll(Integer pageNo, Integer pageSize) { 81 | Pageable pageable = PageRequest.of(pageNo - 1, pageSize); 82 | 83 | List users = this.userRepository.findAll(pageable).getContent(); 84 | List response = users.stream() 85 | .map(user -> this.modelMapperService.forResponse().map(user, ListUserResponse.class)) 86 | .collect(Collectors.toList()); 87 | return new SuccessDataResult>(response); 88 | 89 | } 90 | 91 | 92 | 93 | } 94 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/core/utilities/aspects/logging.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.core.utilities.aspects; 2 | 3 | import java.io.BufferedWriter; 4 | 5 | import java.io.File; 6 | import java.io.FileWriter; 7 | import java.io.IOException; 8 | import java.lang.reflect.Method; 9 | import java.lang.reflect.Parameter; 10 | import java.time.LocalDate; 11 | import java.util.ArrayList; 12 | import java.util.List; 13 | 14 | import org.aspectj.lang.JoinPoint; 15 | import org.aspectj.lang.annotation.Before; 16 | import org.aspectj.lang.reflect.MethodSignature; 17 | 18 | import com.fasterxml.jackson.databind.ObjectMapper; 19 | 20 | public class logging { 21 | 22 | @Before("execution(* com.kodlamaio.rentACar.business.concretes.*.*(..))") // önce kullanacağım // için before .. 23 | // bütün metodlarda çalışması için 24 | public void beforeLog(JoinPoint joinPoint) { 25 | 26 | MethodSignature signature = (MethodSignature) joinPoint.getSignature(); // BUXING ÖRNEĞİ 27 | 28 | StringBuilder stringBuilder = new StringBuilder(); 29 | stringBuilder.append("[ \n"); 30 | 31 | stringBuilder.append(" {" + "\n"); 32 | stringBuilder.append("\"date\"" + " : \" " + (LocalDate.now() + "\"" + ", \n")); 33 | stringBuilder.append("\"className\":" + joinPoint.getTarget().getClass().getSimpleName()); 34 | stringBuilder.append("\"methodName\"" + " : \""+ 35 | signature.getMethod().getName() + "\" ," + " \n"); 36 | 37 | if (signature.getMethod().getName() != "getAll") { 38 | stringBuilder.append("parameters : " + joinPoint.getArgs()[0]); 39 | } 40 | 41 | else { 42 | stringBuilder.append("parameters :" + "none"); 43 | } 44 | 45 | Class str = stringBuilder.getClass(); 46 | 47 | Method[] methods = str.getMethods(); 48 | 49 | for (Method method : methods) { 50 | 51 | Parameter[] parameters = method.getParameters(); 52 | 53 | List parameterNames = new ArrayList<>(); 54 | 55 | 56 | for (Parameter parameter : parameters) { 57 | 58 | String parameterName = parameter.getName(); 59 | 60 | parameterNames.add(parameterName); 61 | } 62 | 63 | for (String pName : parameterNames) { 64 | 65 | System.out.println("pName"); 66 | } 67 | 68 | 69 | 70 | } 71 | stringBuilder.append("\n ]"); 72 | 73 | File file = new File("C:\\logs\\operations.json"); 74 | try (BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(file, true))) { 75 | 76 | bufferedWriter.write(stringBuilder.toString()); 77 | 78 | } catch (IOException e) { 79 | System.out.println("Unable to read file " + file.toString()); 80 | } 81 | 82 | } 83 | } 84 | 85 | // stringBuilder.append("{ " + "\n"); 86 | // 87 | // stringBuilder.append("," + "\n " + "}"); 88 | 89 | // 90 | /* 91 | * @Before("execution (*com.kodlamaio.rentACar.business.concretes.BrandManager.deleteById(int)" 92 | * ) // önce kullanacağım // için before public void beforeLog(JoinPoint 93 | * joinPoint) { // Advice MethodSignature signature = (MethodSignature) 94 | * joinPoint.getSignature(); 95 | * 96 | * System.out.println("before brand manager deleteById"); 97 | * //System.out.println(joinPoint.getArgs()[0]); //ilk parametresi 98 | * //System.out.println(joinPoint.getSignature()); // metod imzası gösterir 99 | * System.out.println(joinPoint.FIELD_GET); 100 | * System.out.println(signature.getParameterNames()[0]); 101 | * 102 | * } 103 | * 104 | */ 105 | 106 | /* 107 | * 108 | * @Before("public void pointcut() {}") //önce kullanacağım için public void 109 | * beforeLog() { // Advice 110 | * 111 | * System.out.println("before brand manager delete"); 112 | * 113 | * } 114 | * 115 | * @After("public void pointcut() {}") //önce kullanacağım için public void 116 | * afterLog() { // Advice 117 | * 118 | * System.out.println("before brand manager delete"); 119 | * 120 | * } 121 | * 122 | * @Pointcut("execution (* com.kodlamaio.rentACar.business.concretes.BrandManager.deleteById(int)" 123 | * ) public void pointcut() {} //damy metodu 124 | * 125 | */ 126 | 127 | //Class str = joinPoint.getTarget().getClass(); 128 | // 129 | //Method method = str.getMethod(signature.getMethod().getName(), str); 130 | // 131 | //Parameter[] parameters = method.getParameters(); 132 | //List fields = parameters[0]; 133 | -------------------------------------------------------------------------------- /rentACar/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 javax.validation.Valid; 6 | 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.RequestParam; 12 | import org.springframework.web.bind.annotation.RestController; 13 | 14 | import com.kodlamaio.rentACar.business.abstracts.AddressService; 15 | import com.kodlamaio.rentACar.business.requests.addresses.CreateAddressRequest; 16 | import com.kodlamaio.rentACar.business.requests.addresses.DeleteAddressRequest; 17 | import com.kodlamaio.rentACar.business.requests.addresses.UpdateAddressRequest; 18 | import com.kodlamaio.rentACar.business.responses.addresses.AddressResponse; 19 | import com.kodlamaio.rentACar.business.responses.addresses.ListAddressResponse; 20 | import com.kodlamaio.rentACar.core.utilities.results.DataResult; 21 | import com.kodlamaio.rentACar.core.utilities.results.Result; 22 | 23 | @RestController 24 | @RequestMapping("/api/addresses") 25 | public class AddressesController { 26 | private AddressService addressService; 27 | 28 | public AddressesController(AddressService addressService) { 29 | 30 | this.addressService = addressService; 31 | } 32 | 33 | /*------------------------- ADD --------------------------------*/ 34 | 35 | @PostMapping("/addforcorporatecustomer") 36 | Result addForCorporateCustomer(@RequestBody @Valid CreateAddressRequest createAddressRequest) { 37 | return this.addressService.addForCorporateCustomer(createAddressRequest); 38 | } 39 | 40 | @PostMapping("/addforindividualcustomer") 41 | Result addForIndividualCustomer(@RequestBody @Valid CreateAddressRequest createAddressRequest) { 42 | return this.addressService.addForIndividualCustomer(createAddressRequest); 43 | } 44 | 45 | @PostMapping("/addinvoiceaddressifdifferentforindividualcustomer") 46 | Result addInvoiceAddressIfDifferentForIndividualCustomer( 47 | @RequestBody @Valid CreateAddressRequest createAddressRequest) { 48 | return this.addressService.addInvoiceAddressIfDifferentForIndividualCustomer(createAddressRequest); 49 | } 50 | 51 | @PostMapping("/addinvoiceaddressifdifferentforcorporatecustomer") 52 | Result addInvoiceAddressIfDifferentForCorporateCustomer( 53 | @RequestBody @Valid CreateAddressRequest createAddressRequest) { 54 | return this.addressService.addInvoiceAddressIfDifferentForCorporateCustomer(createAddressRequest); 55 | } 56 | 57 | /*------------------------- UPDATE --------------------------------*/ 58 | @PostMapping("/updateforindividualcustomer") 59 | Result updateForIndividualCustomer(@RequestBody @Valid UpdateAddressRequest updateAddressRequest) { 60 | return this.addressService.updateForIndividualCustomer(updateAddressRequest); 61 | } 62 | 63 | @PostMapping("/updateforcorporatecustomer") 64 | Result updateForCorporateCustomer(@RequestBody @Valid UpdateAddressRequest updateAddressRequest) { 65 | return this.addressService.updateForCorporateCustomer(updateAddressRequest); 66 | } 67 | 68 | @PostMapping("/updateifbotharesameforindividualcustomer") 69 | Result updateIfBothAreSameForIndividualCustomer(@RequestBody @Valid UpdateAddressRequest updateAddressRequest) { 70 | return this.addressService.updateIfBothAreSameForIndividualCustomer(updateAddressRequest); 71 | } 72 | 73 | @PostMapping("/updateifbotharesameforcorporatecustomer") 74 | Result updateIfBothAreSameForCorporateCustomer(@RequestBody @Valid UpdateAddressRequest updateAddressRequest) { 75 | return this.addressService.updateIfBothAreSameForCorporateCustomer(updateAddressRequest); 76 | 77 | } 78 | 79 | /*------------------------- OTHERS --------------------------------*/ 80 | 81 | @PostMapping("/delete") 82 | Result delete(@RequestBody @Valid DeleteAddressRequest deleteAddressRequest) { 83 | return this.addressService.delete(deleteAddressRequest); 84 | } 85 | 86 | @GetMapping("/getall") 87 | DataResult> getall() { 88 | return this.addressService.getAll(); 89 | } 90 | 91 | @GetMapping("/getbyid") 92 | DataResult getById(@RequestParam int id) { 93 | return this.addressService.getById(id); 94 | } 95 | 96 | } 97 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/concretes/ColorManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.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.business.abstracts.ColorService; 10 | import com.kodlamaio.rentACar.business.requests.colors.CreateColorRequest; 11 | import com.kodlamaio.rentACar.business.requests.colors.DeleteColorRequest; 12 | import com.kodlamaio.rentACar.business.requests.colors.UpdateColorRequest; 13 | import com.kodlamaio.rentACar.business.responses.colors.ColorResponse; 14 | import com.kodlamaio.rentACar.business.responses.colors.ListColorResponse; 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.results.DataResult; 18 | import com.kodlamaio.rentACar.core.utilities.results.Result; 19 | import com.kodlamaio.rentACar.core.utilities.results.SuccessDataResult; 20 | import com.kodlamaio.rentACar.core.utilities.results.SuccessResult; 21 | import com.kodlamaio.rentACar.dataAccess.abstracts.ColorRepository; 22 | import com.kodlamaio.rentACar.entities.concretes.Color; 23 | 24 | @Service 25 | public class ColorManager implements ColorService { 26 | ColorRepository colorRepository; 27 | ModelMapperService modelMapperService; 28 | 29 | @Autowired 30 | public ColorManager(ColorRepository colorRepository, ModelMapperService modelMapperService) { 31 | this.colorRepository = colorRepository; 32 | this.modelMapperService = modelMapperService; 33 | } 34 | 35 | @Override 36 | public Result add(CreateColorRequest creteColorRequest) { 37 | checkIfColorExistsByName(creteColorRequest.getName()); 38 | Color color = this.modelMapperService.forRequest().map(creteColorRequest, Color.class); 39 | this.colorRepository.save(color); 40 | return new SuccessResult("COLOR.ADDED"); 41 | 42 | } 43 | 44 | @Override 45 | public Result delete(DeleteColorRequest deleteColorRequest) { 46 | checkIfColorExistsById(deleteColorRequest.getId()); 47 | Color deleteToColor = this.modelMapperService.forRequest().map(deleteColorRequest, Color.class); 48 | this.colorRepository.delete(deleteToColor); 49 | return new SuccessResult("COLOR.DELETED"); 50 | } 51 | 52 | @Override 53 | public Result update(UpdateColorRequest updateColorRequest) { 54 | /* 55 | * Color colorToUpdate = colorRepository.findById(updateColorRequest.getId()); 56 | * updateColorRequest.setName(colorToUpdate.getName()); 57 | */ 58 | 59 | checkIfColorExistsById(updateColorRequest.getId()); 60 | Color color = this.modelMapperService.forRequest().map(updateColorRequest, Color.class); 61 | this.colorRepository.save(color); 62 | return new SuccessResult("COLOR.UPDATED"); 63 | 64 | } 65 | 66 | @Override 67 | public DataResult> getAll() { 68 | List colors = this.colorRepository.findAll(); 69 | List response = colors.stream() 70 | .map(color -> this.modelMapperService.forResponse().map(color, ListColorResponse.class)) 71 | .collect(Collectors.toList()); 72 | 73 | return new SuccessDataResult>(response, "COLORS.LISTED"); 74 | 75 | // new SuccessDataResult>(this.colorRepository.findAll()); 76 | } 77 | 78 | @Override 79 | public DataResult getById(int id) { 80 | checkIfColorExistsById(id); 81 | Color color = this.colorRepository.findById(id); 82 | ColorResponse response = this.modelMapperService.forResponse().map(color, ColorResponse.class); 83 | 84 | return new SuccessDataResult(response, "COLOR.GETTED"); 85 | // SuccessDataResult(this.colorRepository.findById(colorResponse.getId())); 86 | } 87 | 88 | private void checkIfColorExistsByName(String name) { 89 | Color currentColor = this.colorRepository.findByName(name); 90 | if (currentColor != null) { 91 | throw new BusinessException("COLOR.NAME.EXISTS"); 92 | } 93 | } 94 | 95 | private void checkIfColorExistsById(int id) { 96 | Color color = this.colorRepository.findById(id); 97 | if (color == null) { 98 | throw new BusinessException("COLOR.EXISTS"); 99 | } 100 | } 101 | 102 | @Override 103 | public Color findByColorId(int id) { 104 | checkIfColorExistsById(id); 105 | Color color = this.colorRepository.findById(id); 106 | return color; 107 | } 108 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/concretes/BrandManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.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.business.abstracts.BrandService; 10 | import com.kodlamaio.rentACar.business.requests.brands.CreateBrandRequest; 11 | import com.kodlamaio.rentACar.business.requests.brands.DeleteBrandRequest; 12 | import com.kodlamaio.rentACar.business.requests.brands.UpdateBrandRequest; 13 | import com.kodlamaio.rentACar.business.responses.brands.BrandResponse; 14 | import com.kodlamaio.rentACar.business.responses.brands.ListBrandResponse; 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.results.DataResult; 18 | import com.kodlamaio.rentACar.core.utilities.results.Result; 19 | import com.kodlamaio.rentACar.core.utilities.results.SuccessDataResult; 20 | import com.kodlamaio.rentACar.core.utilities.results.SuccessResult; 21 | import com.kodlamaio.rentACar.dataAccess.abstracts.BrandRepository; 22 | import com.kodlamaio.rentACar.entities.concretes.Brand; 23 | 24 | //BrandServiceImpl görebilirsin 25 | @Service 26 | public class BrandManager implements BrandService { 27 | 28 | private BrandRepository brandRepository; 29 | private ModelMapperService modelMapperService; 30 | 31 | @Autowired // Git construtor parametresine bak somutunu new'le bana getir 32 | public BrandManager(BrandRepository brandRepository, ModelMapperService modelMapperService) { 33 | 34 | this.brandRepository = brandRepository; 35 | this.modelMapperService = modelMapperService; 36 | } 37 | 38 | @Override 39 | public Result add(CreateBrandRequest createBrandRequest) { 40 | 41 | /* 42 | * Brand brand = new Brand(); brand.setName(createBrandRequest.getName()); 43 | * this.brandRepository.save(brand); 44 | */ 45 | 46 | checkIfBrandExistsByName(createBrandRequest.getName()); 47 | Brand brand = this.modelMapperService.forRequest().map(createBrandRequest, Brand.class); 48 | this.brandRepository.save(brand); 49 | return new SuccessResult("BRAND.ADDED"); 50 | 51 | } 52 | 53 | @Override 54 | public Result delete(DeleteBrandRequest deleteBrandRequest) { 55 | checkIfBrandExistsById(deleteBrandRequest.getId()); 56 | Brand deleteToBrand = this.modelMapperService.forRequest().map(deleteBrandRequest, Brand.class); 57 | this.brandRepository.delete(deleteToBrand); 58 | return new SuccessResult("BRAND.DELETED"); 59 | 60 | } 61 | 62 | @Override 63 | public Result update(UpdateBrandRequest updateBrandRequest) { 64 | checkIfBrandExistsById(updateBrandRequest.getId()); 65 | 66 | Brand brandToUpdate = modelMapperService.forRequest().map(updateBrandRequest, Brand.class); 67 | 68 | // brandToUpdate.setName(updateBrandRequest.getName()); 69 | this.brandRepository.save(brandToUpdate); 70 | return new SuccessResult("BRAND.UPDATED"); 71 | 72 | } 73 | 74 | @Override 75 | public DataResult> getAll() { 76 | // return new SuccessDataResult>(this.brandRepository.findAll()); 77 | 78 | // brand'leri tek tek dolaş her bir brand için this. bilmem çalıştır collect 79 | // listede topla 80 | 81 | List brands = this.brandRepository.findAll(); 82 | 83 | List response = brands.stream() 84 | .map(brand -> this.modelMapperService.forResponse().map(brand, ListBrandResponse.class)) 85 | .collect(Collectors.toList()); 86 | 87 | return new SuccessDataResult>(response, "BRAND.LISTED"); 88 | 89 | } 90 | 91 | @Override 92 | public DataResult getById(int id) { 93 | Brand brand = brandRepository.findById(id); 94 | BrandResponse response = this.modelMapperService.forResponse().map(brand, BrandResponse.class); 95 | return new SuccessDataResult(response, "BRAND.GETTED"); 96 | // new 97 | // SuccessDataResult(this.brandRepository.findById(brandResponse.getId())); 98 | } 99 | 100 | private void checkIfBrandExistsByName(String name) { // aynı isimde marka varsa hata döndür 101 | Brand currentBrand = this.brandRepository.findByName(name); 102 | if (currentBrand != null) { 103 | throw new BusinessException("BRAND.NAME.EXISTS"); 104 | } 105 | } 106 | 107 | private void checkIfBrandExistsById(int id) { 108 | Brand brand = this.brandRepository.findById(id); 109 | if (brand != null) { 110 | throw new BusinessException("BRAND.EXISTS"); 111 | } 112 | } 113 | 114 | @Override 115 | public Brand findByBrandId(int id) { // BrandService Kullanan böyle bir marka var mı bilecek. 116 | checkIfBrandExistsById(id); 117 | Brand brand = this.brandRepository.findById(id); 118 | return brand; 119 | } 120 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/concretes/CorporateCustomerManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.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.business.abstracts.CorporateCustomerService; 10 | import com.kodlamaio.rentACar.business.requests.corporateCustomers.CreateCorporateCustomerRequest; 11 | import com.kodlamaio.rentACar.business.requests.corporateCustomers.DeleteCorporateCustomerRequest; 12 | import com.kodlamaio.rentACar.business.requests.corporateCustomers.UpdateCorporateCustomerRequest; 13 | import com.kodlamaio.rentACar.business.responses.corporateCustomers.CorporateCustomerResponse; 14 | import com.kodlamaio.rentACar.business.responses.corporateCustomers.ListCorporeteCustomerResponse; 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.results.DataResult; 18 | import com.kodlamaio.rentACar.core.utilities.results.Result; 19 | import com.kodlamaio.rentACar.core.utilities.results.SuccessDataResult; 20 | import com.kodlamaio.rentACar.core.utilities.results.SuccessResult; 21 | import com.kodlamaio.rentACar.dataAccess.abstracts.CorporateCustomerRepository; 22 | import com.kodlamaio.rentACar.entities.concretes.CorporateCustomer; 23 | 24 | @Service 25 | public class CorporateCustomerManager implements CorporateCustomerService { 26 | ModelMapperService modelMapperService; 27 | CorporateCustomerRepository corporateCustomerRepository; 28 | 29 | @Autowired 30 | public CorporateCustomerManager(ModelMapperService modelMapperService, 31 | CorporateCustomerRepository corporateCustomerRepository) { 32 | 33 | this.modelMapperService = modelMapperService; 34 | this.corporateCustomerRepository = corporateCustomerRepository; 35 | } 36 | 37 | @Override 38 | public Result add(CreateCorporateCustomerRequest corporateCustomerRequest) { 39 | CorporateCustomer corporateCustomer = this.modelMapperService.forRequest().map(corporateCustomerRequest, 40 | CorporateCustomer.class); 41 | 42 | this.corporateCustomerRepository.save(corporateCustomer); 43 | 44 | return new SuccessResult("CORPORATE.CUSTOMER.ADDED"); 45 | } 46 | 47 | @Override 48 | public Result update(UpdateCorporateCustomerRequest updateCorporateCustomerRequest) { 49 | checkIfCorporateCustomerExistsById(updateCorporateCustomerRequest.getId()); 50 | CorporateCustomer updateToCorporateCustomer = this.modelMapperService.forRequest() 51 | .map(updateCorporateCustomerRequest, CorporateCustomer.class); 52 | this.corporateCustomerRepository.save(updateToCorporateCustomer); 53 | return new SuccessResult("CORPORATE.CUSTOMER.UPDATED"); 54 | } 55 | 56 | @Override 57 | public Result delete(DeleteCorporateCustomerRequest deleteCorporateCustomerRequest) { 58 | checkIfCorporateCustomerExistsById(deleteCorporateCustomerRequest.getId()); 59 | CorporateCustomer deleteToCorporateCustomer = this.modelMapperService.forRequest() 60 | .map(deleteCorporateCustomerRequest, CorporateCustomer.class); 61 | this.corporateCustomerRepository.delete(deleteToCorporateCustomer); 62 | 63 | return new SuccessResult("CORPORATE.CUSTOMER.DELETED"); 64 | } 65 | 66 | @Override 67 | public DataResult> getAll() { 68 | List corporateCustomers = this.corporateCustomerRepository.findAll(); 69 | 70 | List response = corporateCustomers.stream() 71 | .map(corporateCustomer -> this.modelMapperService.forResponse().map(corporateCustomer, 72 | ListCorporeteCustomerResponse.class)) 73 | .collect(Collectors.toList()); 74 | 75 | return new SuccessDataResult>(response, "CORPORATE.CUSTOMERS.LISTED"); 76 | } 77 | 78 | @Override 79 | public DataResult getById(int id) { 80 | checkIfCorporateCustomerExistsById(id); 81 | CorporateCustomer corporateCustomerId = this.corporateCustomerRepository.findById(id); 82 | CorporateCustomerResponse response = this.modelMapperService.forResponse().map(corporateCustomerId, 83 | CorporateCustomerResponse.class); 84 | 85 | return new SuccessDataResult(response, "CORPORATE.CUSTOMER.GETTED"); 86 | } 87 | 88 | private void checkIfCorporateCustomerExistsById(int id) { 89 | CorporateCustomer corporateCustomer = this.corporateCustomerRepository.findById(id); 90 | if (corporateCustomer == null) { 91 | throw new BusinessException("CORPORATE.CUSTOMER.EXISTS"); 92 | } 93 | } 94 | 95 | @Override 96 | public CorporateCustomer findByCorporateCustomerId(int id) { 97 | checkIfCorporateCustomerExistsById(id); 98 | CorporateCustomer corporateCustomer = this.corporateCustomerRepository.findById(id); 99 | return corporateCustomer; 100 | } 101 | 102 | } 103 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/concretes/MaintenanceManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.concretes; 2 | 3 | import java.time.LocalDate; 4 | import java.util.List; 5 | import java.util.stream.Collectors; 6 | 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | import org.springframework.stereotype.Service; 9 | 10 | import com.kodlamaio.rentACar.business.abstracts.CarService; 11 | import com.kodlamaio.rentACar.business.abstracts.MaintenanceService; 12 | import com.kodlamaio.rentACar.business.requests.maintenances.CreateMaintenanceRequest; 13 | import com.kodlamaio.rentACar.business.requests.maintenances.DeleteMaintenanceRequest; 14 | import com.kodlamaio.rentACar.business.requests.maintenances.UpdateMaintenanceRequest; 15 | import com.kodlamaio.rentACar.business.responses.maintenances.ListMaintenanceResponse; 16 | import com.kodlamaio.rentACar.business.responses.maintenances.MaintenanceResponse; 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.results.DataResult; 20 | import com.kodlamaio.rentACar.core.utilities.results.Result; 21 | import com.kodlamaio.rentACar.core.utilities.results.SuccessDataResult; 22 | import com.kodlamaio.rentACar.core.utilities.results.SuccessResult; 23 | import com.kodlamaio.rentACar.dataAccess.abstracts.MaintenanceRepository; 24 | import com.kodlamaio.rentACar.entities.concretes.Car; 25 | import com.kodlamaio.rentACar.entities.concretes.Maintenance; 26 | 27 | @Service 28 | public class MaintenanceManager implements MaintenanceService { 29 | 30 | MaintenanceRepository maintenanceRepository; 31 | CarService carService; 32 | ModelMapperService modelMapperService; 33 | 34 | @Autowired 35 | public MaintenanceManager(MaintenanceRepository maintenanceRepository, ModelMapperService modelMapperService, 36 | CarService carService) { 37 | 38 | this.maintenanceRepository = maintenanceRepository; 39 | this.modelMapperService = modelMapperService; 40 | this.carService = carService; 41 | } 42 | 43 | @Override 44 | public Result add(CreateMaintenanceRequest createMaintenanceRequest) { 45 | 46 | Maintenance maintenance = this.modelMapperService.forRequest().map(createMaintenanceRequest, Maintenance.class); 47 | Car car = this.carService.findByCarId(createMaintenanceRequest.getCarId()); 48 | car.setCarState(2); 49 | this.maintenanceRepository.save(maintenance); 50 | 51 | return new SuccessResult("MAINTENANCE.SAVED"); 52 | } 53 | 54 | @Override 55 | public Result delete(DeleteMaintenanceRequest deleteMaintenanceRequest) { 56 | checkIfMaintenanceExistsById(deleteMaintenanceRequest.getId()); 57 | 58 | Maintenance deleteToMaintenance = this.modelMapperService.forRequest().map(deleteMaintenanceRequest, 59 | Maintenance.class); 60 | this.maintenanceRepository.delete(deleteToMaintenance); 61 | return new SuccessResult("MAINTENANCE.DELETED"); 62 | 63 | } 64 | 65 | @Override 66 | public Result update(UpdateMaintenanceRequest updateMaintenanceRequest) { 67 | checkIfMaintenanceExistsById(updateMaintenanceRequest.getId()); 68 | 69 | Maintenance maintenanceToUpdate = this.modelMapperService.forRequest().map(updateMaintenanceRequest, 70 | Maintenance.class); 71 | Car car = this.carService.findByCarId(updateMaintenanceRequest.getCarId()); 72 | LocalDate itsToday = LocalDate.now(); 73 | if (itsToday.equals(updateMaintenanceRequest.getDateReturned())) { 74 | car.setCarState(2); 75 | } 76 | this.maintenanceRepository.save(maintenanceToUpdate); 77 | 78 | return new SuccessResult("MAINTENANCE.UPDATED"); 79 | } 80 | 81 | @Override 82 | public DataResult> getAll() { 83 | List maintenances = this.maintenanceRepository.findAll(); 84 | List response = maintenances.stream().map( 85 | maintenance -> this.modelMapperService.forResponse().map(maintenances, ListMaintenanceResponse.class)) 86 | .collect(Collectors.toList()); 87 | 88 | return new SuccessDataResult>(response, "MAINTENANCES.GETTED"); 89 | 90 | } 91 | 92 | @Override 93 | public DataResult getById(int id) { 94 | checkIfMaintenanceExistsById(id); 95 | Maintenance maintenance = this.maintenanceRepository.findById(id); 96 | MaintenanceResponse response = this.modelMapperService.forResponse().map(maintenance, 97 | MaintenanceResponse.class); 98 | 99 | return new SuccessDataResult(response, "MAINTENANCE.GETTED"); 100 | 101 | } 102 | 103 | private void checkIfMaintenanceExistsById(int id) { 104 | Maintenance maintenance = this.maintenanceRepository.findById(id); 105 | if (maintenance == null) { 106 | throw new BusinessException("MAINTENANCE.EXISTS"); 107 | } 108 | } 109 | 110 | @Override 111 | public Maintenance findByMaintenanceId(int id) { 112 | checkIfMaintenanceExistsById(id); 113 | Maintenance maintenance = this.maintenanceRepository.findById(id); 114 | return maintenance; 115 | } 116 | 117 | } -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/concretes/AdditionalItemManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.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.business.abstracts.AdditionalItemService; 10 | import com.kodlamaio.rentACar.business.requests.additionalItems.CreateAdditionalItemRequest; 11 | import com.kodlamaio.rentACar.business.requests.additionalItems.DeleteAdditionalItemRequest; 12 | import com.kodlamaio.rentACar.business.requests.additionalItems.UpdateAdditionalItemRequest; 13 | import com.kodlamaio.rentACar.business.responses.additionalItems.AdditionalItemResponse; 14 | import com.kodlamaio.rentACar.business.responses.additionalItems.ListAdditionalItemResponse; 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.results.DataResult; 18 | import com.kodlamaio.rentACar.core.utilities.results.Result; 19 | import com.kodlamaio.rentACar.core.utilities.results.SuccessDataResult; 20 | import com.kodlamaio.rentACar.core.utilities.results.SuccessResult; 21 | import com.kodlamaio.rentACar.dataAccess.abstracts.AdditionalItemRepository; 22 | import com.kodlamaio.rentACar.entities.concretes.AdditionalItem; 23 | @Service 24 | 25 | public class AdditionalItemManager implements AdditionalItemService{ 26 | private AdditionalItemRepository additionalItemRepository; 27 | private ModelMapperService modelMapperService; 28 | 29 | @Autowired 30 | public AdditionalItemManager(AdditionalItemRepository additionalItemRepository, 31 | ModelMapperService modelMapperService) { 32 | 33 | this.additionalItemRepository = additionalItemRepository; 34 | this.modelMapperService = modelMapperService; 35 | } 36 | 37 | @Override 38 | public Result add(CreateAdditionalItemRequest createAdditionalItemRequest) { 39 | checkIfAdditionalItemExistsByName(createAdditionalItemRequest.getName()); 40 | AdditionalItem additionalItem = this.modelMapperService.forRequest().map(createAdditionalItemRequest, AdditionalItem.class); 41 | checkIfAdditionalItemExistsByName(createAdditionalItemRequest.getName()); 42 | this.additionalItemRepository.save(additionalItem); 43 | 44 | return new SuccessResult("ADDITONAL.ITEM.ADDED"); 45 | } 46 | 47 | @Override 48 | public Result update(UpdateAdditionalItemRequest updateAdditionalItemRequest) { 49 | checkIfAdditionalItemExistsById(updateAdditionalItemRequest.getId()); 50 | AdditionalItem updateToAdditionalItem = this.modelMapperService.forRequest().map(updateAdditionalItemRequest, AdditionalItem.class); 51 | checkIfAdditionalItemExistsByName(updateAdditionalItemRequest.getName()); 52 | this.additionalItemRepository.save(updateToAdditionalItem); 53 | 54 | return new SuccessResult("ADDITONAL.ITEM.UPDATED"); 55 | } 56 | 57 | @Override 58 | public Result delete(DeleteAdditionalItemRequest deleteAdditionalItemRequest) { 59 | checkIfAdditionalItemExistsById(deleteAdditionalItemRequest.getId()); 60 | AdditionalItem deleteToAdditionalItem = this.modelMapperService.forRequest().map(deleteAdditionalItemRequest, AdditionalItem.class); 61 | this.additionalItemRepository.delete(deleteToAdditionalItem); 62 | 63 | return new SuccessResult("ADDITONAL.ITEM.DELETED"); 64 | } 65 | 66 | @Override 67 | public DataResult> getAll() { 68 | List additionalItems = this.additionalItemRepository.findAll(); 69 | 70 | List response = additionalItems.stream() 71 | .map(additionalItem -> this.modelMapperService.forResponse().map(additionalItem, 72 | ListAdditionalItemResponse.class)) 73 | .collect(Collectors.toList()); 74 | 75 | return new SuccessDataResult>(response,"ADDITIONAL.ITEMS.LISTED"); 76 | } 77 | 78 | @Override 79 | public DataResult getById(int id) { 80 | AdditionalItem additionalItemId = this.additionalItemRepository.findById(id); 81 | AdditionalItemResponse response = this.modelMapperService.forResponse() 82 | .map(additionalItemId,AdditionalItemResponse.class); 83 | 84 | return new SuccessDataResult(response,"ADDITIONAL.ITEM.GETTED"); 85 | } 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | private void checkIfAdditionalItemExistsByName(String name) { 95 | AdditionalItem additionalItem = this.additionalItemRepository.findByName(name); 96 | if (additionalItem != null) { 97 | throw new BusinessException("THERE.IS.NOT.ADDITIONAL.ITEM.NAME"); 98 | } 99 | } 100 | private void checkIfAdditionalItemExistsById(int id) { 101 | AdditionalItem additionaltem = this.additionalItemRepository.findById(id); 102 | if(additionaltem == null) { 103 | throw new BusinessException("THERE.IS.NOT.ADDITIONAL.ITEM"); 104 | } 105 | } 106 | 107 | @Override 108 | public AdditionalItem findByAdditionalItemId(int additionalItemId) { 109 | checkIfAdditionalItemExistsById(additionalItemId); 110 | AdditionalItem additionalItem = this.additionalItemRepository.findById(additionalItemId); 111 | return additionalItem; 112 | } 113 | 114 | } 115 | -------------------------------------------------------------------------------- /rentACar/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 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/concretes/IndividualCustomerManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.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.stereotype.Service; 9 | 10 | import com.kodlamaio.rentACar.business.abstracts.IndividualCustomerService; 11 | import com.kodlamaio.rentACar.business.requests.individualCustomers.CreateIndividualCustomerRequest; 12 | import com.kodlamaio.rentACar.business.requests.individualCustomers.DeleteIndividualCustomerRequest; 13 | import com.kodlamaio.rentACar.business.requests.individualCustomers.UpdateIndividualCustomerRequest; 14 | import com.kodlamaio.rentACar.business.responses.individualCustomers.IndividualCustomerResponse; 15 | import com.kodlamaio.rentACar.business.responses.individualCustomers.ListIndividualCustomerResponse; 16 | import com.kodlamaio.rentACar.core.utilities.adapters.abstracts.PersonCheckService; 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.results.DataResult; 20 | import com.kodlamaio.rentACar.core.utilities.results.Result; 21 | import com.kodlamaio.rentACar.core.utilities.results.SuccessDataResult; 22 | import com.kodlamaio.rentACar.core.utilities.results.SuccessResult; 23 | import com.kodlamaio.rentACar.dataAccess.abstracts.IndividualCustomerRepository; 24 | import com.kodlamaio.rentACar.entities.concretes.IndividualCustomer; 25 | 26 | @Service 27 | public class IndividualCustomerManager implements IndividualCustomerService { 28 | private IndividualCustomerRepository individualCustomerRepository; 29 | private ModelMapperService modelMapperService; 30 | private PersonCheckService personCheckService; 31 | 32 | @Autowired 33 | public IndividualCustomerManager(IndividualCustomerRepository individualCustomerRepository, 34 | ModelMapperService modelMapperService, PersonCheckService personCheckService) { 35 | this.individualCustomerRepository = individualCustomerRepository; 36 | this.modelMapperService = modelMapperService; 37 | this.personCheckService = personCheckService; 38 | } 39 | 40 | /*-------------------------------------------------------------------*/ 41 | @Override 42 | public Result add(CreateIndividualCustomerRequest createIndividualCustomerRequest) 43 | throws NumberFormatException, RemoteException { 44 | 45 | IndividualCustomer individualCustomer = this.modelMapperService.forRequest() 46 | .map(createIndividualCustomerRequest, IndividualCustomer.class); 47 | checkUserExistsByNationalityId(individualCustomer); 48 | this.individualCustomerRepository.save(individualCustomer); 49 | 50 | return new SuccessResult("INDIVIDUAL.CUSTOMER.ADDED"); 51 | } 52 | 53 | private void checkUserExistsByNationalityId(IndividualCustomer individualCustomer) 54 | throws NumberFormatException, RemoteException { 55 | // TC Kimlik Numarasının Doğruluğunu Kontrol Ediyoruz 56 | if (!personCheckService.checkPerson(individualCustomer)) { 57 | 58 | throw new BusinessException("USER.WASN'T.ADDED"); 59 | } 60 | } 61 | 62 | /*-------------------------------------------------------------------------*/ 63 | 64 | @Override 65 | public Result update(UpdateIndividualCustomerRequest updateIndividualCustomerRequest) { 66 | 67 | checkIfIndividualCustomerExistsById(updateIndividualCustomerRequest.getId()); 68 | IndividualCustomer updateToIndividualCustomer = this.modelMapperService.forRequest() 69 | .map(updateIndividualCustomerRequest, IndividualCustomer.class); 70 | 71 | this.individualCustomerRepository.save(updateToIndividualCustomer); 72 | 73 | return new SuccessResult("INDIVIDUAL.CUSTOMER.UPDATED"); 74 | } 75 | 76 | @Override 77 | public Result delete(DeleteIndividualCustomerRequest deleteIndividualCustomerRequest) { 78 | checkIfIndividualCustomerExistsById(deleteIndividualCustomerRequest.getId()); 79 | IndividualCustomer deleteToIndividualCustomer = this.modelMapperService.forRequest() 80 | .map(deleteIndividualCustomerRequest, IndividualCustomer.class); 81 | this.individualCustomerRepository.delete(deleteToIndividualCustomer); 82 | 83 | return new SuccessResult("INDIVIDUAL.CUSTOMER.DELETED"); 84 | } 85 | 86 | @Override 87 | public DataResult> getAll() { 88 | List individualCustomers = this.individualCustomerRepository.findAll(); 89 | 90 | List response = individualCustomers.stream() 91 | .map(individualCustomer -> this.modelMapperService.forRequest().map(individualCustomer, 92 | ListIndividualCustomerResponse.class)) 93 | .collect(Collectors.toList()); 94 | 95 | return new SuccessDataResult>(response, "INDIVIDUAL.CUSTOMERS.LISTED"); 96 | } 97 | 98 | @Override 99 | public DataResult getById(int id) { 100 | checkIfIndividualCustomerExistsById(id); 101 | 102 | IndividualCustomer individualCustomer = this.individualCustomerRepository.findById(id); 103 | IndividualCustomerResponse response = this.modelMapperService.forResponse().map(individualCustomer, 104 | IndividualCustomerResponse.class); 105 | 106 | return new SuccessDataResult(response, "INDIVIDUAL.CUSTOMER.GETTED"); 107 | } 108 | 109 | private void checkIfIndividualCustomerExistsById(int id) { 110 | IndividualCustomer individualCustomer = this.individualCustomerRepository.findById(id); 111 | if (individualCustomer == null) { 112 | throw new BusinessException("INDIVIDUAL.CUSTOMER.EXISTS"); 113 | } 114 | } 115 | 116 | @Override 117 | public IndividualCustomer findByIndividualCustomerId(int id) { 118 | checkIfIndividualCustomerExistsById(id); 119 | IndividualCustomer individualCustomer = this.individualCustomerRepository.findById(id); 120 | return individualCustomer; 121 | } 122 | 123 | } 124 | -------------------------------------------------------------------------------- /rentACar/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 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/concretes/InvoiceManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.concretes; 2 | 3 | import java.util.ArrayList; 4 | 5 | import java.util.List; 6 | import java.util.stream.Collectors; 7 | 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | import org.springframework.stereotype.Service; 10 | 11 | import com.kodlamaio.rentACar.business.abstracts.AdditionalItemService; 12 | import com.kodlamaio.rentACar.business.abstracts.InvoiceService; 13 | import com.kodlamaio.rentACar.business.abstracts.OrderedAdditionalItemService; 14 | import com.kodlamaio.rentACar.business.abstracts.RentalService; 15 | import com.kodlamaio.rentACar.business.requests.invoices.CreateInvoiceRequest; 16 | import com.kodlamaio.rentACar.business.requests.invoices.DeleteInvoiceRequest; 17 | import com.kodlamaio.rentACar.business.requests.invoices.UpdateInvoiceRequest; 18 | import com.kodlamaio.rentACar.business.responses.invoices.InvoiceResponse; 19 | import com.kodlamaio.rentACar.business.responses.invoices.ListInvoiceResponse; 20 | import com.kodlamaio.rentACar.core.utilities.exceptions.BusinessException; 21 | import com.kodlamaio.rentACar.core.utilities.mapping.ModelMapperService; 22 | import com.kodlamaio.rentACar.core.utilities.results.DataResult; 23 | import com.kodlamaio.rentACar.core.utilities.results.Result; 24 | import com.kodlamaio.rentACar.core.utilities.results.SuccessDataResult; 25 | import com.kodlamaio.rentACar.core.utilities.results.SuccessResult; 26 | import com.kodlamaio.rentACar.dataAccess.abstracts.InvoiceRepository; 27 | import com.kodlamaio.rentACar.dataAccess.abstracts.RentalRepository; 28 | import com.kodlamaio.rentACar.entities.concretes.AdditionalItem; 29 | import com.kodlamaio.rentACar.entities.concretes.Invoice; 30 | import com.kodlamaio.rentACar.entities.concretes.OrderedAdditionalItem; 31 | import com.kodlamaio.rentACar.entities.concretes.Rental; 32 | 33 | @Service 34 | public class InvoiceManager implements InvoiceService { 35 | private InvoiceRepository invoiceRepository; 36 | private RentalService rentalService; 37 | private OrderedAdditionalItemService orderedAdditionalItemService; 38 | private AdditionalItemService additionalItemService; 39 | 40 | private ModelMapperService modelMapperService; 41 | 42 | @Autowired 43 | 44 | public InvoiceManager(InvoiceRepository invoiceRepository, RentalService rentalService, 45 | OrderedAdditionalItemService orderedAdditionalItemService, AdditionalItemService additionalItemService, 46 | ModelMapperService modelMapperService) { 47 | this.invoiceRepository = invoiceRepository; 48 | this.rentalService = rentalService; 49 | this.orderedAdditionalItemService = orderedAdditionalItemService; 50 | this.additionalItemService = additionalItemService; 51 | this.modelMapperService = modelMapperService; 52 | } 53 | 54 | 55 | @Override 56 | public Result add(CreateInvoiceRequest createInvoiceRequest) { 57 | checkIfInvoiceStatusZero(createInvoiceRequest.getRentalId()); 58 | checkIfInvoiceNumberExists(createInvoiceRequest.getInvoiceNumber()); 59 | checkIfRentalIdExists(createInvoiceRequest.getRentalId()); 60 | 61 | 62 | Invoice invoice = this.modelMapperService.forRequest().map(createInvoiceRequest, Invoice.class); 63 | invoice.setTotalPrice(calculateTotalPrice(createInvoiceRequest.getRentalId())); 64 | invoice.setState(0); 65 | this.invoiceRepository.save(invoice); 66 | 67 | 68 | return new SuccessResult("INVOICE.ADDED"); 69 | } 70 | 71 | @Override 72 | public DataResult> getAll() { 73 | List invoices = this.invoiceRepository.findAll(); 74 | List response = invoices.stream() 75 | .map(invoice -> this.modelMapperService.forResponse().map(invoices, ListInvoiceResponse.class)) 76 | .collect(Collectors.toList()); 77 | return new SuccessDataResult>(response, "INVOICES.LISTED"); 78 | } 79 | 80 | @Override 81 | public DataResult getById(int id) { 82 | checkIfInvoiceIdExists(id); 83 | Invoice invoice = this.invoiceRepository.findById(id); 84 | InvoiceResponse response = this.modelMapperService.forResponse().map(invoice, InvoiceResponse.class); 85 | return new SuccessDataResult(response, "INVOICE.GETTED"); 86 | } 87 | 88 | 89 | @Override 90 | public Result delete(DeleteInvoiceRequest deleteInvoiceRequest) { 91 | checkIfInvoiceIdExists(deleteInvoiceRequest.getId()); 92 | Invoice invoice = this.modelMapperService.forRequest().map(deleteInvoiceRequest, Invoice.class); 93 | invoice.setState(1); 94 | this.invoiceRepository.delete(invoice); 95 | return new SuccessResult("INVOICE.DELETED"); 96 | } 97 | 98 | 99 | @Override 100 | public Result update(UpdateInvoiceRequest updateInvoiceRequest) { 101 | 102 | return null; 103 | } 104 | 105 | 106 | @Override 107 | public DataResult> getAllAdditionalItemByRentalId(int rentalId) { 108 | // List orderedAdditionalItems = this.orderedAdditionalItemService.findByOrderedAdditionalItemId(rentalId); 109 | // 110 | // List additionalItems = new ArrayList(); 111 | // for(OrderedAdditionalItem orderedAdditionalItem : orderedAdditionalItems) { 112 | // AdditionalItem additionalItem = this.additionalItemService.findByAdditionalItemId(orderedAdditionalItem.getAdditionalItem().getId()); 113 | // additionalItems.add(additionalItem); 114 | // 115 | // } 116 | // 117 | // return new SuccessDataResult>("ADDITIONAL.ITEM.GETTED",additionalItems); 118 | return null ; 119 | } 120 | 121 | private double calculateTotalPrice(int rentalId) { 122 | Rental rental = this.rentalService.findByRentalId(rentalId); 123 | double price = calculateTotalPriceOfOrderedAdditionalItemByRentalId(rentalId); 124 | double totalPrice = rental.getTotalPrice() + price; 125 | return totalPrice; 126 | } 127 | 128 | private double calculateTotalPriceOfOrderedAdditionalItemByRentalId(int id) 129 | { 130 | Rental rental = this.rentalService.findByRentalId(id); 131 | List lists = rental.getOrderedAdditionalItems(); 132 | double totalPrice = 0; 133 | for (OrderedAdditionalItem additionalFeatureService : lists) { 134 | totalPrice += additionalFeatureService.getTotalPrice(); 135 | } 136 | return totalPrice; 137 | 138 | } 139 | private void checkIfInvoiceStatusZero(int id) { 140 | Invoice invoicefromDb = this.invoiceRepository.findById(id); //rentalId 141 | if ((invoicefromDb != null) && (invoicefromDb.getState() != 1)) { 142 | throw new BusinessException("RENTAL.HAVE.ALREADY.A.INVOICE"); 143 | } 144 | } 145 | private void checkIfInvoiceNumberExists(int invoiceNumber) { 146 | Invoice invoice = this.invoiceRepository.findByInvoiceNumber(invoiceNumber); 147 | if (invoice != null) { 148 | throw new BusinessException("INVOICE.NUMBER.EXISTS"); 149 | } 150 | } 151 | private void checkIfInvoiceIdExists(int id) { 152 | Invoice invoice = this.invoiceRepository.findById(id); 153 | if(invoice == null) { 154 | throw new BusinessException("THERE.IS.NOT.INVOICE"); 155 | } 156 | } 157 | private void checkIfRentalIdExists(int rentalId) { 158 | Rental rental = this.rentalService.findByRentalId(rentalId); 159 | if(rental == null) { 160 | throw new BusinessException("THERE.IS.NO.RENTED.CAR2"); 161 | } 162 | } 163 | 164 | } 165 | -------------------------------------------------------------------------------- /rentACar/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 | -------------------------------------------------------------------------------- /rentACar/src/main/java/com/kodlamaio/rentACar/business/concretes/AddressManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlamaio.rentACar.business.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.business.abstracts.AddressService; 9 | import com.kodlamaio.rentACar.business.abstracts.CorporateCustomerService; 10 | import com.kodlamaio.rentACar.business.abstracts.IndividualCustomerService; 11 | import com.kodlamaio.rentACar.business.requests.addresses.CreateAddressRequest; 12 | import com.kodlamaio.rentACar.business.requests.addresses.DeleteAddressRequest; 13 | import com.kodlamaio.rentACar.business.requests.addresses.UpdateAddressRequest; 14 | import com.kodlamaio.rentACar.business.responses.addresses.AddressResponse; 15 | import com.kodlamaio.rentACar.business.responses.addresses.ListAddressResponse; 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.results.DataResult; 19 | import com.kodlamaio.rentACar.core.utilities.results.Result; 20 | import com.kodlamaio.rentACar.core.utilities.results.SuccessDataResult; 21 | import com.kodlamaio.rentACar.core.utilities.results.SuccessResult; 22 | import com.kodlamaio.rentACar.dataAccess.abstracts.AddressRepository; 23 | import com.kodlamaio.rentACar.dataAccess.abstracts.CustomerRepository; 24 | import com.kodlamaio.rentACar.entities.concretes.Address; 25 | 26 | @Service 27 | public class AddressManager implements AddressService { 28 | private ModelMapperService modelMapperService; 29 | private AddressRepository addressRepository; 30 | private CustomerRepository customerRepository; 31 | private IndividualCustomerService individualCustomerService; 32 | private CorporateCustomerService corporateCustomerService; 33 | 34 | public AddressManager(ModelMapperService modelMapperService, AddressRepository addressRepository, 35 | CustomerRepository customerRepository, IndividualCustomerService individualCustomerService, 36 | CorporateCustomerService corporateCustomerService) { 37 | 38 | this.modelMapperService = modelMapperService; 39 | this.addressRepository = addressRepository; 40 | this.customerRepository = customerRepository; 41 | this.individualCustomerService = individualCustomerService; 42 | this.corporateCustomerService = corporateCustomerService; 43 | } 44 | 45 | @Override 46 | public Result delete(DeleteAddressRequest deleteAddressRequest) { 47 | Address address = this.modelMapperService.forRequest().map(deleteAddressRequest, Address.class); 48 | this.addressRepository.delete(address); 49 | 50 | return new SuccessResult("ADDRESS.DELETED"); 51 | } 52 | 53 | @Override 54 | public DataResult> getAll() { 55 | List
addresses = this.addressRepository.findAll(); 56 | List response = addresses.stream() 57 | .map(address -> this.modelMapperService.forResponse().map(address, ListAddressResponse.class)) 58 | .collect(Collectors.toList()); 59 | 60 | return new SuccessDataResult>(response, "ADDRESS.LISTED"); 61 | } 62 | 63 | @Override 64 | public DataResult getById(int id) { 65 | Address address = this.addressRepository.findById(id); 66 | 67 | AddressResponse response = this.modelMapperService.forResponse().map(address, AddressResponse.class); 68 | 69 | return new SuccessDataResult(response, "ADDRESS.GETTED"); 70 | } 71 | 72 | @Override 73 | public Result addForIndividualCustomer(CreateAddressRequest createAddressRequest) { 74 | // checkIfIndividualCustomerIdExists(createAddressRequest.getCustomerId()); 75 | 76 | Address address = this.modelMapperService.forRequest().map(createAddressRequest, Address.class); 77 | address.setInvoiceAddress(createAddressRequest.getRealAddress()); 78 | this.addressRepository.save(address); 79 | return new SuccessResult("ADDRESS.ADDED.FOR.INDIVIDUAL.CUSTOMER"); 80 | } 81 | 82 | @Override 83 | public Result addForCorporateCustomer(CreateAddressRequest createAddressRequest) { 84 | // checkIfCorporateCustomerIdExists(createAddressRequest.getCustomerId()); 85 | 86 | Address address = this.modelMapperService.forRequest().map(createAddressRequest, Address.class); 87 | address.setInvoiceAddress(createAddressRequest.getRealAddress()); 88 | this.addressRepository.save(address); 89 | return new SuccessResult("ADDRESS.ADDED.FOR.CORPORATE.CUSTOMER"); 90 | } 91 | 92 | @Override 93 | public Result addInvoiceAddressIfDifferentForIndividualCustomer(CreateAddressRequest createAddressRequest) { 94 | // checkIfIndividualCustomerIdExists(createAddressRequest.getCustomerId()); 95 | 96 | Address address = this.modelMapperService.forRequest().map(createAddressRequest, Address.class); 97 | this.addressRepository.save(address); 98 | return new SuccessResult("INVOICE.ADDRESS.ADDED.FOR.INDIVIDUAL.CUSTOMER"); 99 | } 100 | 101 | @Override 102 | public Result addInvoiceAddressIfDifferentForCorporateCustomer(CreateAddressRequest createAddressRequest) { 103 | // checkIfCorporateCustomerIdExists(createAddressRequest.getCustomerId()); 104 | 105 | Address address = this.modelMapperService.forRequest().map(createAddressRequest, Address.class); 106 | this.addressRepository.save(address); 107 | return new SuccessResult("INVOICE.ADDRESS.ADDED.FOR.CORPORATE.CUSTOMER"); 108 | } 109 | 110 | @Override 111 | public Result updateForIndividualCustomer(UpdateAddressRequest updateAddressRequest) { 112 | checkIfAddressExistsById(updateAddressRequest.getId()); 113 | // checkIfIndividualCustomerIdExists(updateAddressRequest.getCustomerId()); 114 | 115 | Address address = this.modelMapperService.forRequest().map(updateAddressRequest, Address.class); 116 | this.addressRepository.save(address); 117 | return new SuccessResult("ADDRESS.UPDATED.FOR.INDIVIDUAL.CUSTOMER"); 118 | } 119 | 120 | @Override 121 | public Result updateForCorporateCustomer(UpdateAddressRequest updateAddressRequest) { 122 | checkIfAddressExistsById(updateAddressRequest.getId()); 123 | // checkIfCorporateCustomerIdExists(updateAddressRequest.getCustomerId()); 124 | 125 | Address address = this.modelMapperService.forRequest().map(updateAddressRequest, Address.class); 126 | this.addressRepository.save(address); 127 | return new SuccessResult("ADDRESS.UPDATED.FOR.CORPORATE.CUSTOMER"); 128 | } 129 | 130 | @Override 131 | public Result updateIfBothAreSameForIndividualCustomer(UpdateAddressRequest updateAddressRequest) { 132 | checkIfAddressExistsById(updateAddressRequest.getId()); 133 | // checkIfCorporateCustomerIdExists(updateAddressRequest.getCustomerId()); 134 | 135 | Address address = this.modelMapperService.forRequest().map(updateAddressRequest, Address.class); 136 | address.setInvoiceAddress(updateAddressRequest.getRealAddress()); 137 | this.addressRepository.save(address); 138 | return new SuccessResult("ADDRESS.UPDATED.FOR.INDIVIDUAL.CUSTOMER"); 139 | } 140 | 141 | @Override 142 | public Result updateIfBothAreSameForCorporateCustomer(UpdateAddressRequest updateAddressRequest) { 143 | checkIfAddressExistsById(updateAddressRequest.getId()); 144 | // checkIfCorporateCustomerIdExists(updateAddressRequest.getCustomerId()); 145 | 146 | Address address = this.modelMapperService.forRequest().map(updateAddressRequest, Address.class); 147 | address.setInvoiceAddress(updateAddressRequest.getRealAddress()); 148 | this.addressRepository.save(address); 149 | return new SuccessResult("ADDRESS.UPDATED.FOR.CORPORATE.CUSTOMER"); 150 | } 151 | 152 | private void checkIfAddressExistsById(int id) { 153 | Address address = this.addressRepository.findById(id); 154 | if (address == null) { 155 | throw new BusinessException("THERE.IS.NOT.ADDRESS"); 156 | } 157 | } 158 | 159 | @Override 160 | public Address findByAddressId(int id) { // AddressService Kullanan böyle bir adres var mı bilecek. 161 | checkIfAddressExistsById(id); 162 | Address address = this.addressRepository.findById(id); 163 | return address; 164 | } 165 | 166 | } 167 | --------------------------------------------------------------------------------