Skip to content

Commit

Permalink
Merge pull request #29 from anasabbal/day-2
Browse files Browse the repository at this point in the history
begin cod in carrier service
  • Loading branch information
anasabbal authored Jan 24, 2023
2 parents 2c15e7f + cf301a2 commit c77933b
Show file tree
Hide file tree
Showing 26 changed files with 195 additions and 83 deletions.
9 changes: 9 additions & 0 deletions carrier-service/carrier-service.iml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
</content>
</component>
</module>
Original file line number Diff line number Diff line change
@@ -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<JobCommand> jobCommands;
}
Original file line number Diff line number Diff line change
@@ -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;
}
14 changes: 14 additions & 0 deletions carrier-service/src/main/java/com/nas/carrier/dto/CarrierDto.java
Original file line number Diff line number Diff line change
@@ -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<JobDto> jobs;
}
15 changes: 15 additions & 0 deletions carrier-service/src/main/java/com/nas/carrier/dto/JobDto.java
Original file line number Diff line number Diff line change
@@ -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<ApplicationSubmitDto> applicationSubmitSet;
}
10 changes: 8 additions & 2 deletions carrier-service/src/main/java/com/nas/carrier/model/Carrier.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
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;

import javax.persistence.Entity;
import javax.persistence.OneToMany;
import java.util.Set;
import java.util.stream.Collectors;

@Entity
@NoArgsConstructor(access = AccessLevel.PROTECTED)
Expand All @@ -18,10 +21,13 @@ public class Carrier extends BaseEntity{
@OneToMany
private Set<Job> 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<Job> createSetOfJobs(Set<JobCommand> jobCommands){
return jobCommands.stream().map(Job::create).collect(Collectors.toSet());
}
}
Original file line number Diff line number Diff line change
@@ -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<ApplicationSubmit, String> {
}
Original file line number Diff line number Diff line change
@@ -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<Carrier, String> {
}
Original file line number Diff line number Diff line change
@@ -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<Job, String> {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package com.nas.carrier.service.carrier;

public interface CarrierService {
}
Original file line number Diff line number Diff line change
@@ -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{
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package com.nas.carrier.service.job;

public interface JobService {
}
Original file line number Diff line number Diff line change
@@ -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{
}
25 changes: 25 additions & 0 deletions carrier-service/src/main/resources/application.yml
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.nas.carrier;


import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
public class CarrierServiceApplicationTest {
}
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ public ResponseEntity<String> sendRequestToDriver(@RequestBody final CustomerReq
return ResponseEntity.ok("Message send successfully");
}
@GetMapping
public ResponseEntity<Page<CustomerDto>> getAll(Pageable pageable, CustomerCriteria customerCriteria){
final Page<Customer> customers = customerService.findAllByDeletedFalse(pageable, customerCriteria);
public ResponseEntity<Page<CustomerDto>> getAll(Pageable pageable){
final Page<Customer> customers = customerService.findAllByDeletedFalse(pageable);
return ResponseEntity.ok(customers.map(customerMapper::toDto));
}
@GetMapping("/driver/available")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,43 +1,15 @@
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;
import org.springframework.data.jpa.repository.JpaRepository;
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<Customer, String> , JpaSpecificationExecutor<Customer> {
default Page<Customer> findCustomersByDeletedFalse(Pageable pageable, CustomerCriteria customerCriteria){
return findAll((root, query, builder) -> {
List<Predicate> 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<Customer> findCustomersByDeletedFalse(Pageable pageable);
Customer findByDriverId(String driverId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

public interface CustomerService {
Customer create(final CustomerCommand customerCommand);
Page<Customer> findAllByDeletedFalse(Pageable pageable, CustomerCriteria customerCriteria);
Page<Customer> findAllByDeletedFalse(Pageable pageable);
Customer findById(String customerId);
void updateInfo(final CustomerInfoUpdateCmd customerCommand, String customerId);
Set<Driver> getDriversAvailable();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@ public Customer create(CustomerCommand customerCommand) {
}

@Override
public Page<Customer> findAllByDeletedFalse(Pageable pageable, CustomerCriteria customerCriteria) {
return customerRepository.findCustomersByDeletedFalse(pageable, customerCriteria);
public Page<Customer> findAllByDeletedFalse(Pageable pageable) {
return customerRepository.findCustomersByDeletedFalse(pageable);
}
@Override
public Customer findById(String customerId) {
Expand Down Expand Up @@ -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) {
Expand Down
2 changes: 1 addition & 1 deletion driver-location-service/target/classes/application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@ public ResponseEntity<DriverDto> create(@RequestBody final DriverCommand driverC
return ResponseEntity.created(uri).body(driverMapper.toDto(driver));
}
@GetMapping("/available")
public ResponseEntity<Set<DriverDto>> getAllAvailable(Pageable pageable, DriverCriteria driverCriteria){
return ResponseEntity.ok(driverService.getDriversAvailable(pageable, driverCriteria)
public ResponseEntity<Set<DriverDto>> getAllAvailable(Pageable pageable){
return ResponseEntity.ok(driverService.getDriversAvailable(pageable)
.stream().map(driverMapper::toDto)
.collect(Collectors.toSet()));
}
Expand All @@ -46,8 +46,8 @@ public ResponseEntity<DriverDto> getDriverById(@PathVariable("driverId") final S
return ResponseEntity.ok(driverMapper.toDto(driver));
}
@GetMapping
public ResponseEntity<Page<DriverDto>> getAll(Pageable pageable, DriverCriteria driverCriteria){
return ResponseEntity.ok(driverService.getAll(pageable, driverCriteria).map(driverMapper::toDto));
public ResponseEntity<Page<DriverDto>> getAll(Pageable pageable){
return ResponseEntity.ok(driverService.getAll(pageable).map(driverMapper::toDto));
}
@PutMapping("/{driverId}")
public ResponseEntity<Void> updateInfo(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.nas.driver.criteria;


import com.nas.driver.enums.DriverStatus;
import lombok.Getter;
import lombok.Setter;

Expand All @@ -9,5 +10,5 @@
public class DriverCriteria {
private String firstName;
private String lastName;
private String status;
private DriverStatus status;
}
6 changes: 2 additions & 4 deletions driver-service/src/main/java/com/nas/driver/model/Driver.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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")
Expand Down
Loading

0 comments on commit c77933b

Please sign in to comment.