Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package ro.raffa.curs.configuration.raffa;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;

import ro.raffa.curs.model.Car;
import ro.raffa.curs.repository.MemoryRepository;

@Configuration
@Profile("raffa")
public class CarRepositoryConfigRaffa {

List<Car> list;

@Bean
public void loadDataRaffa() {
list = new ArrayList<Car>();
addCarIntoList("BMW", "21C", "Green", 2019, BigDecimal.valueOf(200000), "EUR", 4, 2, 23);
addCarIntoList("Toyota", "Chinese-Version", "Skye", 2021, BigDecimal.valueOf(302100), "EUR", 4, 4, 23);
addCarIntoList("Tesla", "Truck", "Cream", 2022, BigDecimal.valueOf(199999.99), "EUR", 2, 4, 3);
addCarIntoList("Tesla", "3-Wheelie", "Rose", 2023, BigDecimal.valueOf(60000), "EUR", 3, 2, 4);
addCarIntoList("Mustang", "Thanos", "Purple", 2023, BigDecimal.valueOf(9000000), "EUR", 6, 4, 1);

MemoryRepository.carList = list;
}

private void addCarIntoList(String maker, String model, String color, Integer year, BigDecimal price,
String currency, Integer numberOfWheels, Integer numberOfDoors, Integer numberInStock) {
Car c = new Car();
c.setMaker(maker);
c.setModel(model);
c.setColor(color);
c.setYear(year);
c.setPrice(price);
c.setCurrency(currency);
c.setNumberOfWheels(numberOfWheels);
c.setNumberOfDoors(numberOfDoors);
c.setNumberInStock(numberInStock);

list.add(c);
}
}
20 changes: 20 additions & 0 deletions src/main/java/ro/raffa/curs/controller/v1/CarController.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,24 @@ public List<CarDto> getExpensiveCars(@RequestParam Integer percent) {
List<Car> list = carService.getExpensiveCars(percent);
return carMapper.map(list);
}

// TEMA

@GetMapping("/car/list/modify/stocks/increase")
public List<CarDto> getIncreasedStocks(@RequestParam Integer integer) {
List<Car> list = carService.increaseStocks(integer);
return carMapper.map(list);
}

@GetMapping("/car/list/modify/stocks/0")
public List<CarDto> setNoStocks() {
List<Car> list = carService.setCarStockEmpty();
return carMapper.map(list);
}

@GetMapping("/car/list/modify/stock/car")
public List<CarDto> modifyCarStock(@RequestParam String model, @RequestParam Integer integer) {
List<Car> list = carService.modifyCarStock(model, integer);
return carMapper.map(list);
}
}
6 changes: 6 additions & 0 deletions src/main/java/ro/raffa/curs/dto/CarDto.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,10 @@ public class CarDto {
private String color;
private Integer year;
private PriceDto price;

// TEMA
private Integer numberOfWheels;
private Integer numberOfDoors;
private Integer numberInStock;

}
5 changes: 5 additions & 0 deletions src/main/java/ro/raffa/curs/mapper/CarMapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,11 @@ public CarDto map(Car car) {

carDto.setPrice(priceDto);

// TEMA
carDto.setNumberInStock(car.getNumberInStock());
carDto.setNumberOfDoors(car.getNumberOfDoors());
carDto.setNumberOfWheels(car.getNumberOfWheels());

return carDto;
}

Expand Down
5 changes: 5 additions & 0 deletions src/main/java/ro/raffa/curs/model/Car.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,9 @@ public class Car {
private Integer year;
private BigDecimal price;
private String currency;

// TEMA
private Integer numberOfWheels;
private Integer numberOfDoors;
private Integer numberInStock;
}
35 changes: 35 additions & 0 deletions src/main/java/ro/raffa/curs/service/CarService.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,39 @@ public List<Car> getExpensiveCars(Integer percent) {
}
return cars;
}

// TEMA

public List<Car> increaseStocks(Integer value) {
List<Car> cars = carRepository.getAllCars();
for (Car car : cars) {
car.setNumberInStock(car.getNumberInStock() + value);
}
return cars;
}

public List<Car> setCarStockEmpty() {
List<Car> cars = carRepository.getAllCars();
for (Car car : cars) {
car.setNumberInStock(0);
}
return cars;
}

public List<Car> modifyCarStock(String model, Integer value) {
List<Car> cars = carRepository.getAllCars();
boolean found = false;
for (Car car : cars) {
if (car.getModel().equals(model)) {
car.setNumberInStock(car.getNumberInStock() + value);
found = !found;
}
}
if (!found) {
System.out.println(
"EXCEPTION: Request for modifyCarStock(String model, Integer value) hasn't found the model name");
}
return cars;
}

}