diff --git a/carrier-service/carrier-service.iml b/carrier-service/carrier-service.iml
new file mode 100644
index 0000000..640cd48
--- /dev/null
+++ b/carrier-service/carrier-service.iml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/carrier-service/src/main/java/com/nas/carrier/command/CarrierCommand.java b/carrier-service/src/main/java/com/nas/carrier/command/CarrierCommand.java
new file mode 100644
index 0000000..0d142aa
--- /dev/null
+++ b/carrier-service/src/main/java/com/nas/carrier/command/CarrierCommand.java
@@ -0,0 +1,13 @@
+package com.nas.carrier.command;
+
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Set;
+
+@Getter
+@Setter
+public class CarrierCommand {
+ private Set jobCommands;
+}
diff --git a/carrier-service/src/main/java/com/nas/carrier/dto/ApplicationSubmitDto.java b/carrier-service/src/main/java/com/nas/carrier/dto/ApplicationSubmitDto.java
new file mode 100644
index 0000000..641b036
--- /dev/null
+++ b/carrier-service/src/main/java/com/nas/carrier/dto/ApplicationSubmitDto.java
@@ -0,0 +1,14 @@
+package com.nas.carrier.dto;
+
+
+import lombok.Getter;
+import lombok.Setter;
+
+
+@Getter
+@Setter
+public class ApplicationSubmitDto {
+ private String id;
+ private String fullName;
+ private String email;
+}
diff --git a/carrier-service/src/main/java/com/nas/carrier/dto/CarrierDto.java b/carrier-service/src/main/java/com/nas/carrier/dto/CarrierDto.java
new file mode 100644
index 0000000..45d2d29
--- /dev/null
+++ b/carrier-service/src/main/java/com/nas/carrier/dto/CarrierDto.java
@@ -0,0 +1,14 @@
+package com.nas.carrier.dto;
+
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Set;
+
+@Getter
+@Setter
+public class CarrierDto {
+ private String id;
+ private Set jobs;
+}
diff --git a/carrier-service/src/main/java/com/nas/carrier/dto/JobDto.java b/carrier-service/src/main/java/com/nas/carrier/dto/JobDto.java
new file mode 100644
index 0000000..6b08a9c
--- /dev/null
+++ b/carrier-service/src/main/java/com/nas/carrier/dto/JobDto.java
@@ -0,0 +1,15 @@
+package com.nas.carrier.dto;
+
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Set;
+
+@Getter
+@Setter
+public class JobDto {
+ private String id;
+ private String description;
+ private Set applicationSubmitSet;
+}
diff --git a/carrier-service/src/main/java/com/nas/carrier/model/Carrier.java b/carrier-service/src/main/java/com/nas/carrier/model/Carrier.java
index b300e82..40e3c08 100644
--- a/carrier-service/src/main/java/com/nas/carrier/model/Carrier.java
+++ b/carrier-service/src/main/java/com/nas/carrier/model/Carrier.java
@@ -1,6 +1,8 @@
package com.nas.carrier.model;
+import com.nas.carrier.command.CarrierCommand;
+import com.nas.carrier.command.JobCommand;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
@@ -8,6 +10,7 @@
import javax.persistence.Entity;
import javax.persistence.OneToMany;
import java.util.Set;
+import java.util.stream.Collectors;
@Entity
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@@ -18,10 +21,13 @@ public class Carrier extends BaseEntity{
@OneToMany
private Set jobs;
-
- public static Carrier create(){
+ public static Carrier create(final CarrierCommand carrierCommand){
final Carrier carrier = new Carrier();
+ carrier.jobs = createSetOfJobs(carrierCommand.getJobCommands());
return carrier;
}
+ public static Set createSetOfJobs(Set jobCommands){
+ return jobCommands.stream().map(Job::create).collect(Collectors.toSet());
+ }
}
diff --git a/carrier-service/src/main/java/com/nas/carrier/repository/ApplicationSubmitRepository.java b/carrier-service/src/main/java/com/nas/carrier/repository/ApplicationSubmitRepository.java
new file mode 100644
index 0000000..39ea0ff
--- /dev/null
+++ b/carrier-service/src/main/java/com/nas/carrier/repository/ApplicationSubmitRepository.java
@@ -0,0 +1,10 @@
+package com.nas.carrier.repository;
+
+import com.nas.carrier.model.ApplicationSubmit;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+
+@Repository
+public interface ApplicationSubmitRepository extends JpaRepository {
+}
diff --git a/carrier-service/src/main/java/com/nas/carrier/repository/CarrierRepository.java b/carrier-service/src/main/java/com/nas/carrier/repository/CarrierRepository.java
new file mode 100644
index 0000000..6c0e3b6
--- /dev/null
+++ b/carrier-service/src/main/java/com/nas/carrier/repository/CarrierRepository.java
@@ -0,0 +1,10 @@
+package com.nas.carrier.repository;
+
+import com.nas.carrier.model.Carrier;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+
+@Repository
+public interface CarrierRepository extends JpaRepository {
+}
diff --git a/carrier-service/src/main/java/com/nas/carrier/repository/JobRepository.java b/carrier-service/src/main/java/com/nas/carrier/repository/JobRepository.java
new file mode 100644
index 0000000..93e4d6a
--- /dev/null
+++ b/carrier-service/src/main/java/com/nas/carrier/repository/JobRepository.java
@@ -0,0 +1,10 @@
+package com.nas.carrier.repository;
+
+import com.nas.carrier.model.Job;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+
+@Repository
+public interface JobRepository extends JpaRepository {
+}
diff --git a/carrier-service/src/main/java/com/nas/carrier/service/carrier/CarrierService.java b/carrier-service/src/main/java/com/nas/carrier/service/carrier/CarrierService.java
new file mode 100644
index 0000000..fce896c
--- /dev/null
+++ b/carrier-service/src/main/java/com/nas/carrier/service/carrier/CarrierService.java
@@ -0,0 +1,4 @@
+package com.nas.carrier.service.carrier;
+
+public interface CarrierService {
+}
diff --git a/carrier-service/src/main/java/com/nas/carrier/service/carrier/CarrierServiceImpl.java b/carrier-service/src/main/java/com/nas/carrier/service/carrier/CarrierServiceImpl.java
new file mode 100644
index 0000000..c10a621
--- /dev/null
+++ b/carrier-service/src/main/java/com/nas/carrier/service/carrier/CarrierServiceImpl.java
@@ -0,0 +1,12 @@
+package com.nas.carrier.service.carrier;
+
+
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+@Service
+@Slf4j
+@RequiredArgsConstructor
+public class CarrierServiceImpl implements CarrierService{
+}
diff --git a/carrier-service/src/main/java/com/nas/carrier/service/job/JobService.java b/carrier-service/src/main/java/com/nas/carrier/service/job/JobService.java
new file mode 100644
index 0000000..aed12ee
--- /dev/null
+++ b/carrier-service/src/main/java/com/nas/carrier/service/job/JobService.java
@@ -0,0 +1,4 @@
+package com.nas.carrier.service.job;
+
+public interface JobService {
+}
diff --git a/carrier-service/src/main/java/com/nas/carrier/service/job/JobServiceImpl.java b/carrier-service/src/main/java/com/nas/carrier/service/job/JobServiceImpl.java
new file mode 100644
index 0000000..9ca38f0
--- /dev/null
+++ b/carrier-service/src/main/java/com/nas/carrier/service/job/JobServiceImpl.java
@@ -0,0 +1,12 @@
+package com.nas.carrier.service.job;
+
+
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+@Service
+@Slf4j
+@RequiredArgsConstructor
+public class JobServiceImpl implements JobService{
+}
diff --git a/carrier-service/src/main/resources/application.yml b/carrier-service/src/main/resources/application.yml
new file mode 100644
index 0000000..aa6dd79
--- /dev/null
+++ b/carrier-service/src/main/resources/application.yml
@@ -0,0 +1,25 @@
+spring:
+ devtools:
+ livereload:
+ enabled: true
+ jpa:
+ properties:
+ hibernate:
+ dialect: org.hibernate.dialect.PostgreSQLDialect
+ hibernate:
+ ddl-auto: update
+ show-sql: true
+ datasource:
+ driverClassName: org.postgresql.Driver
+ url: jdbc:postgresql://localhost:5432/carrier
+ username: postgres
+ password: postgres
+
+ application:
+ name: driver
+ profiles:
+ active: default
+
+
+server:
+ port: 8084
diff --git a/carrier-service/src/test/java/com.nas.carrier/CarrierServiceApplicationTest.java b/carrier-service/src/test/java/com.nas.carrier/CarrierServiceApplicationTest.java
new file mode 100644
index 0000000..4bdd938
--- /dev/null
+++ b/carrier-service/src/test/java/com.nas.carrier/CarrierServiceApplicationTest.java
@@ -0,0 +1,8 @@
+package com.nas.carrier;
+
+
+import org.springframework.boot.test.context.SpringBootTest;
+
+@SpringBootTest
+public class CarrierServiceApplicationTest {
+}
diff --git a/customer-service/src/main/java/com/nas/customer/service/controller/CustomerController.java b/customer-service/src/main/java/com/nas/customer/service/controller/CustomerController.java
index 952eca1..d5e2ab5 100644
--- a/customer-service/src/main/java/com/nas/customer/service/controller/CustomerController.java
+++ b/customer-service/src/main/java/com/nas/customer/service/controller/CustomerController.java
@@ -43,8 +43,8 @@ public ResponseEntity sendRequestToDriver(@RequestBody final CustomerReq
return ResponseEntity.ok("Message send successfully");
}
@GetMapping
- public ResponseEntity> getAll(Pageable pageable, CustomerCriteria customerCriteria){
- final Page customers = customerService.findAllByDeletedFalse(pageable, customerCriteria);
+ public ResponseEntity> getAll(Pageable pageable){
+ final Page customers = customerService.findAllByDeletedFalse(pageable);
return ResponseEntity.ok(customers.map(customerMapper::toDto));
}
@GetMapping("/driver/available")
diff --git a/customer-service/src/main/java/com/nas/customer/service/repository/CustomerRepository.java b/customer-service/src/main/java/com/nas/customer/service/repository/CustomerRepository.java
index 2043578..7f7ed5e 100644
--- a/customer-service/src/main/java/com/nas/customer/service/repository/CustomerRepository.java
+++ b/customer-service/src/main/java/com/nas/customer/service/repository/CustomerRepository.java
@@ -1,7 +1,5 @@
package com.nas.customer.service.repository;
-import com.nas.core.util.PatternUtil;
-import com.nas.customer.service.criteria.CustomerCriteria;
import com.nas.customer.service.model.Customer;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
@@ -9,35 +7,9 @@
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Repository;
-import javax.persistence.criteria.Predicate;
-import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import static com.nas.customer.service.model.BaseEntity_.ACTIVE;
-import static com.nas.customer.service.model.Customer_.FIRST_NAME;
-import static com.nas.customer.service.model.Customer_.LAST_NAME;
-
@Repository
public interface CustomerRepository extends JpaRepository , JpaSpecificationExecutor {
- default Page findCustomersByDeletedFalse(Pageable pageable, CustomerCriteria customerCriteria){
- return findAll((root, query, builder) -> {
- List predicates = new ArrayList<>(Arrays.asList(
- builder.greaterThanOrEqualTo(root.get(FIRST_NAME), LocalDateTime.now())
- ));
- if (customerCriteria.getLastName() != null) {
- String pattern = PatternUtil.likePattern(customerCriteria.getLastName().toUpperCase());
- predicates.add(builder.like(builder.upper(root.get(LAST_NAME)), pattern));
- }
- if (customerCriteria.getActive() != null) {
- predicates.add(builder.equal(root.get(ACTIVE), customerCriteria.getActive()));
- }
- query.orderBy(builder.desc(root.get(ACTIVE)));
- return builder.and(predicates.toArray(new Predicate[]{}));
-
- }, pageable);
- }
+ Page findCustomersByDeletedFalse(Pageable pageable);
Customer findByDriverId(String driverId);
}
diff --git a/customer-service/src/main/java/com/nas/customer/service/service/CustomerService.java b/customer-service/src/main/java/com/nas/customer/service/service/CustomerService.java
index 17606c0..8ad3e87 100644
--- a/customer-service/src/main/java/com/nas/customer/service/service/CustomerService.java
+++ b/customer-service/src/main/java/com/nas/customer/service/service/CustomerService.java
@@ -13,7 +13,7 @@
public interface CustomerService {
Customer create(final CustomerCommand customerCommand);
- Page findAllByDeletedFalse(Pageable pageable, CustomerCriteria customerCriteria);
+ Page findAllByDeletedFalse(Pageable pageable);
Customer findById(String customerId);
void updateInfo(final CustomerInfoUpdateCmd customerCommand, String customerId);
Set getDriversAvailable();
diff --git a/customer-service/src/main/java/com/nas/customer/service/service/CustomerServiceImpl.java b/customer-service/src/main/java/com/nas/customer/service/service/CustomerServiceImpl.java
index cf1f270..f6dd07a 100644
--- a/customer-service/src/main/java/com/nas/customer/service/service/CustomerServiceImpl.java
+++ b/customer-service/src/main/java/com/nas/customer/service/service/CustomerServiceImpl.java
@@ -44,8 +44,8 @@ public Customer create(CustomerCommand customerCommand) {
}
@Override
- public Page findAllByDeletedFalse(Pageable pageable, CustomerCriteria customerCriteria) {
- return customerRepository.findCustomersByDeletedFalse(pageable, customerCriteria);
+ public Page findAllByDeletedFalse(Pageable pageable) {
+ return customerRepository.findCustomersByDeletedFalse(pageable);
}
@Override
public Customer findById(String customerId) {
@@ -75,10 +75,10 @@ public void sendRequestDriver(CustomerRequestDriver requestDriver){
.findAny().orElseThrow(
() -> new BusinessException(ExceptionPayloadFactory.DRIVER_LOCATION_NOT_FOUND.get())
);
- final Customer customer = findById(requestDriver.getCustomerId());
- log.info("Begin sending message");
- rabbitTemplate.convertAndSend("customer.exchange", "customer.routingkey", requestDriver);
- log.info("message send good");
+ final Customer customer = findById(requestDriver.getCustomerId());
+ log.info("Begin sending message");
+ rabbitTemplate.convertAndSend("customer.exchange", "customer.routingkey", requestDriver);
+ log.info("message send good");
}
@Override
public void updateInfo(CustomerInfoUpdateCmd customerCommand, String customerId) {
diff --git a/driver-location-service/target/classes/application.yml b/driver-location-service/target/classes/application.yml
index d7f7c1f..34e179f 100644
--- a/driver-location-service/target/classes/application.yml
+++ b/driver-location-service/target/classes/application.yml
@@ -4,7 +4,7 @@ spring:
hibernate:
dialect: org.hibernate.dialect.PostgreSQLDialect
hibernate:
- ddl-auto: create-drop
+ ddl-auto: update
show-sql: true
datasource:
driverClassName: org.postgresql.Driver
diff --git a/driver-service/src/main/java/com/nas/driver/controller/DriverController.java b/driver-service/src/main/java/com/nas/driver/controller/DriverController.java
index d2e1105..ea739fc 100644
--- a/driver-service/src/main/java/com/nas/driver/controller/DriverController.java
+++ b/driver-service/src/main/java/com/nas/driver/controller/DriverController.java
@@ -35,8 +35,8 @@ public ResponseEntity create(@RequestBody final DriverCommand driverC
return ResponseEntity.created(uri).body(driverMapper.toDto(driver));
}
@GetMapping("/available")
- public ResponseEntity> getAllAvailable(Pageable pageable, DriverCriteria driverCriteria){
- return ResponseEntity.ok(driverService.getDriversAvailable(pageable, driverCriteria)
+ public ResponseEntity> getAllAvailable(Pageable pageable){
+ return ResponseEntity.ok(driverService.getDriversAvailable(pageable)
.stream().map(driverMapper::toDto)
.collect(Collectors.toSet()));
}
@@ -46,8 +46,8 @@ public ResponseEntity getDriverById(@PathVariable("driverId") final S
return ResponseEntity.ok(driverMapper.toDto(driver));
}
@GetMapping
- public ResponseEntity> getAll(Pageable pageable, DriverCriteria driverCriteria){
- return ResponseEntity.ok(driverService.getAll(pageable, driverCriteria).map(driverMapper::toDto));
+ public ResponseEntity> getAll(Pageable pageable){
+ return ResponseEntity.ok(driverService.getAll(pageable).map(driverMapper::toDto));
}
@PutMapping("/{driverId}")
public ResponseEntity updateInfo(
diff --git a/driver-service/src/main/java/com/nas/driver/criteria/DriverCriteria.java b/driver-service/src/main/java/com/nas/driver/criteria/DriverCriteria.java
index 8e0437a..f7266ee 100644
--- a/driver-service/src/main/java/com/nas/driver/criteria/DriverCriteria.java
+++ b/driver-service/src/main/java/com/nas/driver/criteria/DriverCriteria.java
@@ -1,6 +1,7 @@
package com.nas.driver.criteria;
+import com.nas.driver.enums.DriverStatus;
import lombok.Getter;
import lombok.Setter;
@@ -9,5 +10,5 @@
public class DriverCriteria {
private String firstName;
private String lastName;
- private String status;
+ private DriverStatus status;
}
diff --git a/driver-service/src/main/java/com/nas/driver/model/Driver.java b/driver-service/src/main/java/com/nas/driver/model/Driver.java
index 0c88246..7ecb963 100644
--- a/driver-service/src/main/java/com/nas/driver/model/Driver.java
+++ b/driver-service/src/main/java/com/nas/driver/model/Driver.java
@@ -6,10 +6,7 @@
import com.nas.driver.enums.DriverStatus;
import lombok.*;
-import javax.persistence.CascadeType;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.OneToMany;
+import javax.persistence.*;
import java.time.LocalDateTime;
import java.util.Set;
import java.util.stream.Collectors;
@@ -25,6 +22,7 @@ public class Driver extends BaseEntity{
private String carId;
private String firstName;
private String lastName;
+ @Enumerated(EnumType.STRING)
private DriverStatus driverStatus;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, mappedBy = "driver")
diff --git a/driver-service/src/main/java/com/nas/driver/repository/DriverRepository.java b/driver-service/src/main/java/com/nas/driver/repository/DriverRepository.java
index f600a67..0a0e618 100644
--- a/driver-service/src/main/java/com/nas/driver/repository/DriverRepository.java
+++ b/driver-service/src/main/java/com/nas/driver/repository/DriverRepository.java
@@ -1,7 +1,6 @@
package com.nas.driver.repository;
-import com.nas.core.util.PatternUtil;
-import com.nas.driver.criteria.DriverCriteria;
+
import com.nas.driver.model.Driver;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
@@ -9,34 +8,10 @@
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Repository;
-import javax.persistence.criteria.Predicate;
-import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-
-import static com.nas.driver.model.Driver_.*;
@Repository
public interface DriverRepository extends JpaRepository , JpaSpecificationExecutor {
- default Page findAllByDeletedFalse(Pageable pageable, DriverCriteria driverCriteria){
- return findAll((root, query, builder) -> {
- List predicates = new ArrayList<>(Arrays.asList(
- builder.greaterThanOrEqualTo(root.get(FIRST_NAME), LocalDateTime.now())
- ));
- if (driverCriteria.getLastName() != null) {
- String pattern = PatternUtil.likePattern(driverCriteria.getLastName().toUpperCase());
- predicates.add(builder.like(builder.upper(root.get(LAST_NAME)), pattern));
- }
- if (driverCriteria.getStatus() != null) {
- predicates.add(builder.equal(root.get(ACTIVE), driverCriteria.getStatus()));
- }
- query.orderBy(builder.desc(root.get(DRIVER_STATUS)));
- return builder.and(predicates.toArray(new Predicate[]{}));
-
- }, pageable);
- }
+ Page findAllByDeletedFalse(Pageable pageable);
}
diff --git a/driver-service/src/main/java/com/nas/driver/service/driver/DriverService.java b/driver-service/src/main/java/com/nas/driver/service/driver/DriverService.java
index 9554718..40fffa9 100644
--- a/driver-service/src/main/java/com/nas/driver/service/driver/DriverService.java
+++ b/driver-service/src/main/java/com/nas/driver/service/driver/DriverService.java
@@ -12,8 +12,8 @@
public interface DriverService {
Driver create(final DriverCommand driverCommand);
void update(String driverId, DriverCommand driverCommand);
- Page getAll(Pageable pageable, DriverCriteria driverCriteria);
+ Page getAll(Pageable pageable);
Driver findById(String driverId);
- Set getDriversAvailable(Pageable pageable, DriverCriteria driverCriteria);
+ Set getDriversAvailable(Pageable pageable);
void listenToMessage(CustomerRequestDriver message);
}
diff --git a/driver-service/src/main/java/com/nas/driver/service/driver/DriverServiceImpl.java b/driver-service/src/main/java/com/nas/driver/service/driver/DriverServiceImpl.java
index f4d6556..a55c764 100644
--- a/driver-service/src/main/java/com/nas/driver/service/driver/DriverServiceImpl.java
+++ b/driver-service/src/main/java/com/nas/driver/service/driver/DriverServiceImpl.java
@@ -54,8 +54,8 @@ public void update(String driverId, DriverCommand driverCommand) {
log.info("Driver with id {} updated successfully", driver.getId());
}
@Override
- public Set getDriversAvailable(Pageable pageable, DriverCriteria driverCriteria) {
- return getAll(pageable, driverCriteria).stream().filter(
+ public Set getDriversAvailable(Pageable pageable) {
+ return getAll(pageable).stream().filter(
dv -> dv.getDriverStatus() == DriverStatus.AVAILABLE)
.collect(Collectors.toSet());
@@ -78,7 +78,7 @@ public Driver findById(String driverId){
return driver;
}
@Override
- public Page getAll(Pageable pageable, DriverCriteria driverCriteria) {
- return driverRepository.findAllByDeletedFalse(pageable, driverCriteria);
+ public Page getAll(Pageable pageable) {
+ return driverRepository.findAllByDeletedFalse(pageable);
}
}