Current path: home/webdevt/cryptoimpot.fr/module/Application/src/Service/ApiHistorical/
?? Go up: /home/webdevt/cryptoimpot.fr/module/Application/src/Service
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
namespace Application\Service\ApiHistorical;
use Application\Entity\CoursDevise;
use Application\Entity\Devise;
use Application\Entity\Source;
use Application\Mapper\CoursDeviseMapper;
use Application\Mapper\SourceMapper;
use Doctrine\ORM\EntityManager;
/**
* Description of ExchangeRatesAPIService
*
* @author jimmy
*/
class ExchangeRatesAPIService
{
public function __construct(EntityManager $entityManager, CoursDeviseMapper $coursDeviseMapper, SourceMapper $sourceMapper)
{
$this->entityManager = $entityManager;
$this->sourceMapper = $sourceMapper;
$this->mapperCoursDevise = $coursDeviseMapper;
$this->source = $this->sourceMapper->findByUrl('http://api.exchangeratesapi.io');
}
public function insertCoursDevise(Devise $devise, \DateTime $dateTime, $prixUnitaireEuro, Source $source)
{
$insertCoursDevise = new CoursDevise();
$insertCoursDevise->setDateCours($dateTime);
$insertCoursDevise->setDevise($devise);
$insertCoursDevise->setCoursEuro($prixUnitaireEuro);
$insertCoursDevise->setSource($source);
$this->mapperCoursDevise->insert($insertCoursDevise);
}
/*
*
*/
public function getUnitPriceInEur(Devise $devise, \DateTime $dateTime)
{
//$this->getCurrencyCodeList();
$urlApi = 'http://api.exchangeratesapi.io/';
$urlApi .= $dateTime->format('Y-m-d');
$urlApi .= '?base=EUR';
$urlApi .= '&symbols=' . $devise->getCode();
$urlApi .= '&access_key=2b5b64a252e695d681021df1b3698414';
// asset fsym
// fetch data
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $urlApi);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$rawData = curl_exec($curl);
$data = json_decode($rawData, true);
curl_close($curl);
// 73db4525d47bff9731b96e71a2eef868
if ($data['success'] == true) {
$prixUnitaireEuro = !empty($data['rates']['USD']) ? (1 / $data['rates']['USD']) : 0;
$this->insertCoursDevise($devise, $dateTime, $prixUnitaireEuro, $this->source);
return $prixUnitaireEuro;
} else {
throw new \Exception('Prix en EUR le ' . $dateTime->format('Y-m-d H:i:s') . ' de : ' . $devise->getCode() . ' non trouvé sur ' . $this->source->getUrl());
}
}
public function getCurrencyCodeList()
{
$urlApi = ' https://api.exchangeratesapi.io/v1/symbols';
$urlApi .= '?access_key=2b5b64a252e695d681021df1b3698414';
// asset fsym
echo $urlApi;
echo 'first exit'; exit;
// fetch data
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $urlApi);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$rawData = curl_exec($curl);
curl_close($curl);
}
//
// // asset fsym
//
//
//
//
// // fetch data
// $curl = curl_init();
// curl_setopt($curl, CURLOPT_URL, $urlApi);
// curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
// $rawData = curl_exec($curl);
// curl_close($curl);
//
//// decode to array
// $data = json_decode($rawData, true);
// if (!isset($data['rates'][$currency])) {
// goto api2;
// //throw new Exception('Market value not found');
// //var_dump($data['rates']);
// //echo $dateTime->format('Y-m-d');
// $price = 0;
// } else {
// return $data['rates'][$currency];
// }
}