This repository has been archived by the owner on Mar 22, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 4
/
ShopRepository.php
87 lines (74 loc) · 2.61 KB
/
ShopRepository.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?php declare(strict_types=1);
namespace App\Repository;
use App\SwagAppsystem\Credentials;
use Doctrine\DBAL\Connection;
class ShopRepository
{
/**
* @var Connection
*/
private $connection;
public function __construct(Connection $connection)
{
$this->connection = $connection;
}
public function updateAccessKeysForShop(string $shopId, string $apiKey, string $secretKey): void
{
$queryBuilder = $this->connection->createQueryBuilder();
$queryBuilder
->update('shop')
->set('api_key', ':api_key')
->set('secret_key', ':secret_key')
->where('shop_id = :shop_id')
->setParameter('api_key', $apiKey)
->setParameter('secret_key', $secretKey)
->setParameter('shop_id', $shopId);
$queryBuilder->execute();
}
public function createShop(string $shopId, string $shopUrl, string $shopSecret): void
{
$queryBuilder = $this->connection->createQueryBuilder();
$queryBuilder
->insert('shop')
->setValue('shop_id', ':shop_id')
->setValue('shop_url', ':shop_url')
->setValue('shop_secret', ':shop_secret')
->setParameter('shop_id', $shopId)
->setParameter('shop_url', $shopUrl)
->setParameter('shop_secret', $shopSecret);
$queryBuilder->execute();
}
public function removeShop(string $shopId): void
{
$queryBuilder = $this->connection->createQueryBuilder();
$queryBuilder
->delete('shop')
->where('shop_id = :shop_id')
->setParameter('shop_id', $shopId);
$queryBuilder->execute();
}
public function getSecretByShopId(string $shopId): string
{
$queryBuilder = $this->connection->createQueryBuilder();
$queryBuilder
->select('shop_secret')
->from('shop')
->where('shop_id = :shop_id')
->setParameter('shop_id', $shopId);
$query = $queryBuilder->execute();
$data = $query->fetch();
return $data['shop_secret'];
}
public function getCredentialsForShopId(string $shopId): Credentials
{
$queryBuilder = $this->connection->createQueryBuilder();
$queryBuilder
->select('shop_url', 'api_key', 'secret_key')
->from('shop')
->where('shop_id = :shop_id')
->setParameter('shop_id', $shopId);
$query = $queryBuilder->execute();
$data = $query->fetch();
return Credentials::fromKeys($data['shop_url'], $data['api_key'], $data['secret_key']);
}
}