Skip to content

Commit

Permalink
Add document storage
Browse files Browse the repository at this point in the history
  • Loading branch information
mustanggb authored Feb 15, 2024
1 parent 65a24be commit b81fb50
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 27 deletions.
44 changes: 17 additions & 27 deletions src/PairHistory/DocumentPairHistoryManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@

use DateTime;
use DateTimeInterface;
use Doctrine\DBAL\Types\Types;
use Doctrine\ODM\MongoDB\DocumentManager;
use Tbbc\MoneyBundle\Document\DocumentRatioHistory;
use Tbbc\MoneyBundle\MoneyException;
Expand All @@ -31,20 +30,17 @@ public function getRatioAtDate(string $currencyCode, DateTimeInterface $savedAt)
}

$qb = $this->dm->createQueryBuilder();
$qb->select('rh')
->from(\Tbbc\MoneyBundle\Document\DocumentRatioHistory::class, 'rh')
->where('rh.currencyCode = :currencyCode')
->orderBy('rh.savedAt', 'DESC')
->andWhere('rh.savedAt <= :historyDate')
->setParameter('historyDate', $savedAt, Types::DATETIME_MUTABLE)
->setParameter('currencyCode', $currencyCode)
->setMaxResults(1)
$qb->find(\Tbbc\MoneyBundle\Document\DocumentRatioHistory::class)
->field('currencyCode')->equals($currencyCode)
->field('savedAt')->lte($savedAt)
->sort('savedAt', 'DESC')
->limit(1)
;
$query = $qb->getQuery();
try {
/** @var RatioHistory $ratioHistory */
$ratioHistory = $query->getSingleResult();
} catch (NoResultException) {
/** @var DocumentRatioHistory $ratioHistory */
$ratioHistory = $query->getSingleResult();

if (!isset($ratioHistory)) {
return null;
}

Expand All @@ -60,27 +56,21 @@ public function getRatioAtDate(string $currencyCode, DateTimeInterface $savedAt)
*/
public function getRatioHistory(string $currencyCode, ?DateTimeInterface $startDate = null, ?DateTimeInterface $endDate = null): array
{
return [];
$qb = $this->dm->createQueryBuilder();
$qb->select('rh')
->from(\Tbbc\MoneyBundle\Document\DocumentRatioHistory::class, 'rh')
->where('rh.currencyCode = :currencyCode')
->andWhere('rh.referenceCurrencyCode = :referenceCurrencyCode')
->orderBy('rh.savedAt', 'ASC')
->setParameter('currencyCode', $currencyCode)
->setParameter('referenceCurrencyCode', $this->referenceCurrencyCode)
$qb->find(\Tbbc\MoneyBundle\Document\DocumentRatioHistory::class)
->field('currencyCode')->equals($currencyCode)
->field('referenceCurrencyCode')->equals($this->referenceCurrencyCode)
->sort('savedAt', 'ASC')
;
if ($startDate instanceof DateTime) {
$qb->andWhere('rh.savedAt >= :startDate')
->setParameter('startDate', $startDate, Types::DATETIME_MUTABLE);
$qb->field('savedAt')->gte($startDate);
}
if ($endDate instanceof DateTime) {
$qb->andWhere('rh.savedAt <= :endDate')
->setParameter('endDate', $endDate, Types::DATETIME_MUTABLE);
$qb->field('savedAt')->lte($endDate);
}
$query = $qb->getQuery();
/** @var RatioHistory[] $resultList */
$resultList = $query->getResult();
/** @var DocumentRatioHistory[] $resultList */
$resultList = $query->execute();
$res = [];

foreach ($resultList as $ratioHistory) {
Expand Down
7 changes: 7 additions & 0 deletions src/Resources/config/services.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
<parameter key="tbbc_money.pair_manager_interface.class">Tbbc\MoneyBundle\Pair\PairManagerInterface</parameter>
<parameter key="tbbc_money.money_manager.class">Tbbc\MoneyBundle\Money\MoneyManager</parameter>
<parameter key="tbbc_money.pair_history_manager.class">Tbbc\MoneyBundle\PairHistory\PairHistoryManager</parameter>
<parameter key="tbbc_money.pair_history_manager_interface.class">Tbbc\MoneyBundle\PairHistory\PairHistoryManagerInterface</parameter>
<parameter key="tbbc_money.pair.csv_storage.class">Tbbc\MoneyBundle\Pair\Storage\CsvStorage</parameter>
<parameter key="tbbc_money.pair_manager.ratio_file_name">%kernel.project_dir%/../data/tbbc_money/ratio_file_name.csv</parameter>
<parameter key="tbbc_money.ratio_provider.ecb.class">Tbbc\MoneyBundle\Pair\RatioProvider\ECBRatioProvider</parameter>
Expand All @@ -28,6 +29,12 @@
</service>
<service id="%tbbc_money.pair_manager_interface.class%" alias="tbbc_money.pair_manager" public="false">
</service>
<service id="tbbc_money.pair_history_manager" class="%tbbc_money.pair_history_manager.class%" public="true">
<argument type="service" id="doctrine.orm.entity_manager"/>
<argument>%tbbc_money.reference_currency%</argument>
</service>
<service id="%tbbc_money.pair_history_manager_interface.class%" alias="tbbc_money.pair_history_manager" public="false">
</service>
<service id="tbbc_money.money_manager" class="%tbbc_money.money_manager.class%" public="true">
<argument>%tbbc_money.reference_currency%</argument>
<argument>%tbbc_money.decimals%</argument>
Expand Down

0 comments on commit b81fb50

Please sign in to comment.