?? GreyFile — Mystic File Browser

Current path: home/webdevt/cryptoimpot.fr/module/Application/src/Service/ApiHistorical/



?? Go up: /home/webdevt/cryptoimpot.fr/module/Application/src/Service

?? Viewing: ExchangeRatesAPIService.php

<?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];
//        }

}


??

??