Как добавить обмен валюты http://fixer.io к моему REST Api - PullRequest
0 голосов
/ 30 мая 2019

У меня есть мой простой REST для покупок, и последнее, что мне нужно сделать, это метод: сообщить 2019 грн. - эта команда должна взять список курсов обмена валют между http://fixer.io (зарегистрироваться для свободный план), рассчитать общий доход за указанный год, конвертировать и представить его в указанной валюте, где: 2019 - год, за который должен быть рассчитан общий доход Гривна - валюта, в которой представлен общий доход. Я даже не представляю, как с этим бороться. Даже не знаю, как лучше всего сохранить мою валюту, какие данные использовать.

 @Entity
@Table (name="purchase")
public class Purchase {

@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

 @Column(name = "name")
 private String name;

 @CreationTimestamp
 @Temporal(TemporalType.DATE)
 @Column(name="createat")
    private Date created;

 @Column(name="price")
 private BigDecimal price;


@Column(name="currency")
private String currency;}

 @Repository
public interface PurchaseRepository extends CrudRepository<Purchase, Long 
> {
List<Purchase> findById(Long id);
List<Purchase> findAllByOrderByCreatedAsc();
String deleteByCurrency(String currency);
long deleteByCreated(Date date);
}

@Service
public class PurchaseService {

@Autowired
private PurchaseRepository purchaseRepository;

public void addPurchase(Purchase purchase) {
    purchaseRepository.save(purchase);
}

public List<Purchase> getAllPurchase(){
    List<Purchase> purchase = new ArrayList<>();
    purchaseRepository.findAll().forEach(purchase::add);
    return purchase;
}
public List<Purchase> findAllSorted(){
    List<Purchase> persons = purchaseRepository.findById((long) 2);
    return persons;

}

@Transactional
public List<Purchase> findAllByOrderByCreatedAsc() {
    List<Purchase> persons = 
purchaseRepository.findAllByOrderByCreatedAsc();
    return persons;
}

@Transactional
public String deleteByCurrency(String currency) {
    return purchaseRepository.deleteByCurrency(currency);

};

@Transactional
public long deleteAllByDate(Date date){
    return purchaseRepository.deleteByCreated(date);
}
}

@RestController
public class PurchaseController {

@Autowired
private PurchaseService purchaseService;

@PostMapping("/purchase")
public void addPurchase (@RequestBody Purchase purchase) {
    purchaseService.addPurchase(purchase);}

    @RequestMapping("/purchase")
    public List<Purchase> getAllTopics(){
        return purchaseService.getAllPurchase();            
    }
    @RequestMapping("/purchasee")
    public List<Purchase> getAllbyName(){
        return purchaseService.findAllSorted();         
    }

    @RequestMapping("/purchases")
    public List<Purchase> getAllByDate(){
        return purchaseService.findAllByOrderByCreatedAsc();            
    }

    @RequestMapping(method=RequestMethod.DELETE, 
 value="/purchase/{created}")
    String deleteByDate(@PathVariable  String currency) {
        return purchaseService.deleteByCurrency(currency);

Метод отчета 2019 грн. - эта команда должна взять список курсов обмена валют между http://fixer.io (зарегистрироваться для бесплатного плана), рассчитать общий доход за указанный год, конвертировать и представить его в указанной валюте где:

2019 - год, за который должен быть рассчитан общий доход UAH - валюта, в которой представлен общий доход

...