Changeset df4089c


Ignore:
Timestamp:
02/02/22 17:25:17 (2 years ago)
Author:
andrejTavchioski <andrej.tavchioski@…>
Branches:
master
Children:
98f448a
Parents:
9dd526f
Message:

updateParkingZone fixes

Location:
sources
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • sources/app/src/main/java/parkup/controllers/ParkingZoneController.java

    r9dd526f rdf4089c  
    2525
    2626    @GetMapping({"/parkingZone/{parkingZoneId}"})
    27     public ParkingZone getParkingZone(@PathVariable int parkingZoneId) {
    28         ParkingZone parkingZone = parkingZoneService.findById(parkingZoneId);
     27    public ParkingZoneAdminView getParkingZone(@PathVariable int parkingZoneId) {
     28        ParkingZoneAdminView parkingZone = parkingZoneService.findById(parkingZoneId);
    2929        if (parkingZone != null) {
    3030            return parkingZone;
     
    5050
    5151    @PutMapping({"/parkingZone/{parkingZoneId}"})
    52     public ParkingZone updateParkingZone(@PathVariable int parkingZoneId, @RequestBody ParkingZoneAdminView parkingZone) {
     52    public ParkingZoneAdminView updateParkingZone(@PathVariable int parkingZoneId, @RequestBody ParkingZoneAdminView parkingZone) {
    5353        return this.parkingZoneService.updateParkingZone(parkingZoneId, parkingZone.getPzName(), parkingZone.getPrice(),
    54                 parkingZone.getAddress(), parkingZone.getTime_from(), parkingZone.getTime_to(), parkingZone.getColor(),
     54                parkingZone.getAddress(), parkingZone.getFrom(), parkingZone.getTo(), parkingZone.getColor(),
    5555                parkingZone.getParkingSpaces(), parkingZone.getParkingZoneLocation(),parkingZone.getResponsibleWorkers());
    56 
    5756    }
    5857
  • sources/app/src/main/java/parkup/controllers/VrabotenController.java

    r9dd526f rdf4089c  
    2424
    2525    @GetMapping({"/vraboten"})
    26     public List<Worker> getAllVraboten() {
     26    public List<WorkerDemo> getAllVraboten() {
    2727        return this.workerService.getWorkers();
    2828    }
  • sources/app/src/main/java/parkup/data/ParkingZoneAdminView.java

    r9dd526f rdf4089c  
    22
    33import parkup.entities.ParkingSpace;
     4import parkup.entities.ParkingZone;
    45
    56import java.util.List;
     
    910    private String pzName;
    1011    private int price;
    11     private int time_from;
    12     private int time_to;
     12    private int from;
     13    private int to;
    1314    private String address;
    1415    private String color;
    1516    private List<ParkingSpace> parkingSpaces;
    1617    private ParkingZoneLocation parkingZoneLocation;
    17     private List<Integer> responsibleWorkers;
     18    private List<WorkerDemo> responsibleWorkers;
    1819
    19     public ParkingZoneAdminView(int pzId, String pzName, int price, int time_from, int time_to, String address, String color, List<ParkingSpace> parkingSpaces, ParkingZoneLocation parkingZoneLocation, List<Integer> responsibleWorkers) {
    20         this.pzId = pzId;
    21         this.pzName = pzName;
    22         this.price = price;
    23         this.time_from = time_from;
    24         this.time_to = time_to;
    25         this.address = address;
    26         this.color = color;
    27         this.parkingSpaces = parkingSpaces;
    28         this.parkingZoneLocation = parkingZoneLocation;
     20    public ParkingZoneAdminView(ParkingZone pz,List<WorkerDemo> responsibleWorkers) {
     21        this.pzId = pz.getId();
     22        this.pzName = pz.getPzName();
     23        this.price = pz.getPrice();
     24        this.from = pz.getFrom();
     25        this.to = pz.getTo();
     26        this.address = pz.getAddress();
     27        this.color = pz.getColor();
     28        this.parkingSpaces = pz.getParkingSpaces();
     29        this.parkingZoneLocation = pz.getParkingZoneLocation();
    2930        this.responsibleWorkers = responsibleWorkers;
    3031    }
    3132
    3233    public ParkingZoneAdminView() {}
     34
     35
    3336
    3437    public int getPzId() {
     
    5659    }
    5760
    58     public int getTime_from() {
    59         return time_from;
     61    public int getFrom() {
     62        return from;
    6063    }
    6164
    62     public void setTime_from(int time_from) {
    63         this.time_from = time_from;
     65    public void setFrom(int from) {
     66        this.from = from;
    6467    }
    6568
    66     public int getTime_to() {
    67         return time_to;
     69    public int getTo() {
     70        return to;
    6871    }
    6972
    70     public void setTime_to(int time_to) {
    71         this.time_to = time_to;
     73    public void setTo(int to) {
     74        this.to = to;
    7275    }
    7376
     
    104107    }
    105108
    106     public List<Integer> getResponsibleWorkers() {
     109    public List<WorkerDemo> getResponsibleWorkers() {
    107110        return responsibleWorkers;
    108111    }
    109112
    110     public void setResponsibleWorkers(List<Integer> responsibleWorkers) {
     113    public void setResponsibleWorkers(List<WorkerDemo> responsibleWorkers) {
    111114        this.responsibleWorkers = responsibleWorkers;
    112115    }
  • sources/app/src/main/java/parkup/data/WorkerDemo.java

    r9dd526f rdf4089c  
    11package parkup.data;
     2
     3import parkup.entities.Worker;
    24
    35public class WorkerDemo {
     
    911    public WorkerDemo() {}
    1012
    11     public WorkerDemo(int id, String firstName, String lastName, String email) {
    12         this.workerId =id;
    13         this.firstName = firstName;
    14         this.lastName = lastName;
    15         this.email = email;
     13    public WorkerDemo(Worker w) {
     14        this.workerId =w.getWorkerId();
     15        this.firstName = w.getFirstName();
     16        this.lastName = w.getLastName();
     17        this.email = w.getEmail();
    1618    }
     19
    1720
    1821    public int getWorkerId() {
  • sources/app/src/main/java/parkup/services/ParkingZoneService.java

    r9dd526f rdf4089c  
    33import org.springframework.beans.factory.annotation.Autowired;
    44import org.springframework.stereotype.Service;
     5import parkup.data.ParkingZoneAdminView;
    56import parkup.data.ParkingZoneLocation;
     7import parkup.data.WorkerDemo;
    68import parkup.entities.ParkingSpace;
    79import parkup.entities.ParkingZone;
     
    1719import java.util.Objects;
    1820import java.util.Optional;
     21import java.util.stream.Collectors;
    1922
    2023@Service
     
    3639        List<ParkingZone> parkingZones= parkingZoneRepository.findAll();
    3740        for(ParkingZone pz:parkingZones){
    38             setTransientVariables(pz.getId());
     41            setTransientVariables(pz);
    3942        }
    4043        return parkingZones;
    4144    }
    4245
    43     public ParkingZone findById(int parkingZoneId) {
     46    public ParkingZoneAdminView findById(int parkingZoneId) {
    4447        Optional<ParkingZone> parkingZone = Optional.ofNullable(this.parkingZoneRepository.findByPzId(parkingZoneId));
    4548        if (!parkingZone.isPresent()) {
    4649            throw new IllegalStateException("ParkingZone does not exist");
    4750        }
    48         setTransientVariables(parkingZone.get().getId());
    49         return parkingZone.get();
     51        setTransientVariables(parkingZone.get());
     52        return new ParkingZoneAdminView(parkingZone.get(),getResponsibleWorkers(parkingZoneId));
    5053    }
    5154
     
    8386    //TODO proveri dali ima odgovorni i dokolku ima dali postojat vo bazata
    8487    @Transactional
    85     public ParkingZone updateParkingZone(int parkingZoneId, String pzName, int price,
     88    public ParkingZoneAdminView updateParkingZone(int parkingZoneId, String pzName, int price,
    8689                                         String location, int from, int to, String color,
    87                                          List<ParkingSpace> parkingSpaces, ParkingZoneLocation parkingZoneLocation, List<Integer> odgovorniLica) {
     90                                         List<ParkingSpace> parkingSpaces, ParkingZoneLocation parkingZoneLocation, List<WorkerDemo> responsibleWorkers) {
    8891
    8992        //TODO prati niza od objekti ParkingSpaces i prati objekt ParkingZoneLocation
     
    124127
    125128                if (!parkingSpaces.isEmpty()) {
     129                    List<String> psNamesInZone=parkingZoneNov.getParkingSpaces().stream().map(ParkingSpace::getPsName).collect(Collectors.toList());
     130                    List<ParkingSpace> psToAdd=parkingSpaces.stream().filter(ps->!psNamesInZone.contains(ps.getPsName())).collect(Collectors.toList());
     131                    for(ParkingSpace ps:psToAdd){
     132                        parkingZoneNov.getParkingSpaces().add(ps);
     133                    }
     134                }
     135                if (!responsibleWorkers.isEmpty()) {
    126136                    ParkingZone parkingZone = parkingZoneRepository.findByPzId(parkingZoneId);
    127 //                    for(ParkingSpace space :parkingZone.getParkingSpaces()){
    128 //                        if(!parkingSpaces.contains(space)){
    129 //                            for(ParkingSession session: parkingSessionRepository.findByParkingZonePzName(pzName)){
    130 //                                if(session.getParkingSpace().getPsId()==space.getPsId())
    131 //                                    throw new IllegalStateException("Vlegov vo iffot");
    132 //                            }
    133 //                        }
    134 //                    }
    135                     //TODO: treba da se opravi
    136                     parkingZone.setParkingSpaces(null);
    137                     List<ParkingSpace> spacesToAdd = new ArrayList<>(parkingSpaces);
    138                     parkingZone.setParkingSpaces(spacesToAdd);
    139                 }
    140                 if (!odgovorniLica.isEmpty()) {
    141                     ParkingZone parkingZone = parkingZoneRepository.findByPzId(parkingZoneId);
    142                     for (Integer vrabotenId : odgovorniLica) {
    143                         Worker workerToAdd = workerRepository.findByWorkerId(vrabotenId);
     137                    for (Integer workerId : responsibleWorkers.stream().map(WorkerDemo::getWorkerId).collect(Collectors.toList())) {
     138                        Worker workerToAdd = workerRepository.findByWorkerId(workerId);
    144139                        if(workerToAdd !=null)
    145140                        workerToAdd.getParkingZones().add(parkingZone);
     
    147142                }
    148143
    149 
    150                 return parkingZoneNov;
     144                setTransientVariables(parkingZoneNov);
     145                return new ParkingZoneAdminView(parkingZoneNov,getResponsibleWorkers(parkingZoneId));
    151146            } else {
    152147                throw new IllegalStateException("There ParkingZone does not exist");
     
    159154            Optional<ParkingZone> parkingZoneOpt = Optional.ofNullable(parkingZoneRepository.findByPzId(parkingZoneId));
    160155            if (parkingZoneOpt.isPresent()) {
     156                parkingZoneOpt.get().setParkingSpaces(null);
     157                parkingZoneOpt.get().setParkingZoneLocation(null);
    161158                parkingZoneRepository.deleteByPzId(parkingZoneId);
    162159            } else {
     
    174171            return parkingZone.getParkingSpaces().size();
    175172        }
    176         public void setTransientVariables(int pzId){
    177             calculateCapacity(pzId);
    178             calculateTakenSpaces(pzId);
     173        public void setTransientVariables(ParkingZone pz){
     174            pz.setCapacity(calculateCapacity(pz.getId()));
     175            pz.setTakenSpaces(calculateTakenSpaces(pz.getId()));
     176        }
     177        public List<WorkerDemo> getResponsibleWorkers(int pzId){
     178            ParkingZone parkingZone =parkingZoneRepository.findByPzId(pzId);
     179            return workerRepository.findAll().stream().filter(w->w.getParkingZones().contains(parkingZone)).map(WorkerDemo::new).collect(Collectors.toList());
    179180        }
    180181    }
  • sources/app/src/main/java/parkup/services/WorkerService.java

    r9dd526f rdf4089c  
    3131    }
    3232
    33     public List<Worker> getWorkers() {
    34         return this.workerRepository.findAll();
     33    public List<WorkerDemo> getWorkers() {
     34        return this.workerRepository.findAll().stream().map(WorkerDemo::new).collect(Collectors.toList());
    3535    }
    3636
     
    4444        List<Worker> workers = this.workerRepository.findAll();
    4545        List<WorkerDemo> workerDemos = new ArrayList<>();
    46         for (Worker v : workers){
    47             WorkerDemo vd = new WorkerDemo(v.getWorkerId(),v.getFirstName(), v.getLastName(), v.getEmail());
     46        for (Worker w : workers){
     47            WorkerDemo vd = new WorkerDemo(w);
    4848            workerDemos.add(vd);
    4949        }
  • sources/app/target/classes/application.properties

    r9dd526f rdf4089c  
    22spring.datasource.username=postgres
    33spring.datasource.password=1234
    4 spring.jpa.hibernate.ddl-auto=create-drop
     4spring.jpa.hibernate.ddl-auto=update
    55spring.jpa.show-sql=true
    66spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
Note: See TracChangeset for help on using the changeset viewer.