diff --git a/.gitignore b/.gitignore index c578c40..e8e4cc1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ data/*.pem data/*.txt data/*.json -data/cache/*.json +data/cache data/user/*.json log/*.txt public/static/user diff --git a/public/static/style-openprovider.css b/public/static/style-openprovider.css index de192ff..91ab8e0 100644 --- a/public/static/style-openprovider.css +++ b/public/static/style-openprovider.css @@ -6,7 +6,10 @@ textarea { height: 300px; } -button { +button, a.op-button { + text-decoration: none; + padding: 4px; + margin: 4px; border: 1px solid #ea79d8; color: #fcfcfc; border-radius: 4px; @@ -15,10 +18,59 @@ button { transition: background-color 0.2s ease-in-out; } -button:hover { +a.op-button-delete { + text-decoration: none; + padding: 4px; + margin: 4px; + border: 1px solid #ee5040; + color: #fcfcfc; + border-radius: 4px; + background: #ee5040; + font-size: 16px; + transition: background-color 0.2s ease-in-out; +} + +a.op-button-create { + text-decoration: none; + padding: 4px; + margin: 4px; + border: 1px solid #17c73d; + color: #fcfcfc; + border-radius: 4px; + background: #17c73d; + font-size: 16px; + transition: background-color 0.2s ease-in-out; +} + +a.op-button-edit { + text-decoration: none; + padding: 4px; + margin: 4px; + border: 1px solid #dbd81d; + color: #232023; + border-radius: 4px; + background: #dbd81d; + font-size: 16px; + transition: background-color, color 0.2s ease-in-out; +} + +button:hover, a.op-button:hover { background-color: #b421f8; } +a.op-button-delete:hover { + background-color: #8d0707; +} + +a.op-button-create:hover { + background-color: #077907; +} + +a.op-button-edit:hover { + background-color: #9fa10d; + color: #fcfcfc; +} + tr.status-free { background-color: #34860e; color: #fff; } tr.status-reserved { background-color: #c59e1d; color: #fff; } tr.status-use { background-color: #850000; color: #fff; } diff --git a/route.php b/route.php index 758e027..459d3f2 100644 --- a/route.php +++ b/route.php @@ -97,7 +97,8 @@ if (ATOM_ENABLED) { if (OPENPROVIDER_ENABLED) { $routes[] = Route::add('GET', 'openprovider', Op::class.'@index'); $routes[] = Route::add('GET', 'openprovider/listcustomers', Op::class.'@opListCustomers'); - $routes[] = Route::add('GET', 'openprovider/createcustomer', Op::class.'@opCreateCustomers'); + $routes[] = Route::add('GET', 'openprovider/createcustomer', Op::class.'@opCreateCustomer'); + $routes[] = Route::add('GET', 'openprovider/deletecustomer/{handle}', Op::class.'@opDeleteCustomer'); $routes[] = Route::add('GET', 'openprovider/getcustomer/{handle}', Op::class.'@opGetCustomer'); $routes[] = Route::add('GET', 'openprovider/listtlds', Op::class.'@opListTlds'); $routes[] = Route::add('GET', 'openprovider/gettld/{tld}', Op::class.'@opGetTld'); diff --git a/src/Site/Controller/Op.php b/src/Site/Controller/Op.php index 592c496..e2c87cc 100644 --- a/src/Site/Controller/Op.php +++ b/src/Site/Controller/Op.php @@ -40,8 +40,8 @@ namespace Site\Controller; use Site\Controller\Mods; use Std\Lib\Auth; use Std\Lib\Template; - use Std\Lib\Openprovider; +use Roles; class Op { use Mods; @@ -63,7 +63,7 @@ class Op { $tmpl->assign('menu', $this->getMenu()); $tmpl->assign('description', $description); - if (!$user || $user->role !== \Roles::ADMIN) goto noaccess; + if (!$user || $user->role !== Roles::ADMIN) goto noaccess; $tmpl->addCss('table'); $tmpl->render('index'); exit(); @@ -92,7 +92,7 @@ class Op { $tmpl->assign('menu', $this->getMenu()); $tmpl->assign('description', $description); - if (!$user || $user->role !== \Roles::ADMIN) goto noaccess; + if (!$user || $user->role !== Roles::ADMIN) goto noaccess; $op = new Openprovider(); $op->login(); $data = $op->listCustomers(); @@ -111,39 +111,44 @@ class Op { public function opCreateCustomer(array $params): void { try { - kys('sasa'); - if (isset($_POST)) kys($_POST); $payload = [ 'additional_data' => [ - 'company_registration_number' => '', - 'company_url' => '', + 'company_registration_number' => $_POST['company_registration_number'] ?? '', + 'company_url' => $_POST['company_url'] ?? '', + 'birth_date' => $_POST['birth_year'] !== '' && $_POST['birth_month'] !== '' && $_POST['birth_day'] !== '' ? $_POST['birth_year'].'-'.$_POST['birth_month'].'-'.$_POST['birth_day'] : '', + 'trading_name' => $_POST['company_name'] ?? '', ], 'address' => [ - 'city' => '', - 'country' => '', - 'number' => '', - 'state' => '', - 'street' => '', - 'zipcode' => '', + 'city' => $_POST['address_city'] ?? '', + 'country' => $_POST['address_country'] ?? 'JP', + 'number' => $_POST['address_number'] ?? '', + 'state' => $_POST['address_state'] ?? '', + 'street' => $_POST['address_street'] ?? '', + 'zipcode' => $_POST['address_zipcode'] ?? '', ], - 'comments' => '', - 'company_name' => '', - 'email' => '', + 'birth' => [ + 'year' => $_POST['birth_year'] ?? '', + 'month' => $_POST['birth_month'] ?? '', + 'day' => $_POST['birth_day'] ?? '', + ], + 'comments' => $_POST['comments'] ?? '', + 'company_name' => $_POST['company_name'] ?? '', + 'email' => $_POST['email'] ?? '', 'fax' => [ - 'area_code' => '', - 'country_code' => '', - 'subscriber_number' => '', + 'area_code' => $_POST['fax_area_code'] ?? '', + 'country_code' => $_POST['fax_country_code'] ?? '', + 'subscriber_number' => $_POST['fax_subscriber_number'] ?? '', ], 'locale' => 'ja_JP', 'name' => [ - 'first_name' => '', - 'full_name' => '', - 'last_name' => '', + 'first_name' => $_POST['first_name'] ?? '', + 'full_name' => $_POST['first_name'] !== '' && $_POST['last_name'] !== '' ? $_POST['first_name'].' '.$_POST['last_name'] : '', + 'last_name' => $_POST['last_name'] ?? '', ], 'phone' => [ - 'area_code' => '', - 'country_code' => '', - 'subscriber_number' => '', + 'area_code' => $_POST['phone_area_code'] ?? '', + 'country_code' => $_POST['phone_country_code'] ?? '', + 'subscriber_number' => $_POST['phone_subscriber_number'] ?? '', ], ]; $tmpl = new Template('/openprovider/'); @@ -161,19 +166,43 @@ class Op { $tmpl->assign('menu', $this->getMenu()); $tmpl->assign('description', $description); - if (!$user || $user->role !== \Roles::ADMIN) goto noaccess; - if (isset($_POST)) { + $err = []; + + if (!$user || $user->role !== Roles::ADMIN) goto noaccess; + + if (!empty($_POST)) { + if (NULL === $_POST['last_name'] || $_POST['last_name'] === '' + || NULL === $_POST['first_name'] || $_POST['first_name'] === '') $err[] = '姓名をご入力下さい。'; + if (NULL === $_POST['phone_country_code'] || $_POST['phone_country_code'] === '' + || NULL === $_POST['phone_area_code'] || $_POST['phone_area_code'] === '' + || NULL === $_POST['phone_subscriber_number'] || $_POST['phone_subscriber_number'] === '') $err[] = '電話番号をご入力下さい。'; + if (NULL === $_POST['email'] || $_POST['email'] === '') $err[] = 'メールアドレスをご入力下さい。'; + if (NULL === $_POST['address_zipcode'] || $_POST['address_zipcode'] === '') $err[] = '郵便番号をご入力下さい。'; + if (NULL === $_POST['address_state'] || $_POST['address_state'] === '') $err[] = '都道府県をご入力下さい。'; + if (NULL === $_POST['address_city'] || $_POST['address_city'] === '') $err[] = '市区町村をご入力下さい。'; + if (NULL === $_POST['address_street'] || $_POST['address_street'] === '') $err[] = '町名をご入力下さい。'; + if (NULL === $_POST['address_number'] || $_POST['address_number'] === '') $err[] = '番地をご入力下さい。'; + if (!empty($err)) goto render; + + if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) $err[] = 'メールアドレスは不正です。'; + if (!str_starts_with($_POST['phone_country_code'], '+')) $err[] = '電話番号の国コードは「+」ご始まり下さい。'; + if ($_POST['fax_country_code'] !== '' && !str_starts_with($_POST['fax_country_code'], '+')) $err[] = 'FAXの国コードは「+」ご始まり下さい。'; + if ((!filter_var($_POST['phone_area_code'], FILTER_VALIDATE_INT)) || (!filter_var($_POST['phone_subscriber_number'], FILTER_VALIDATE_INT))) $err[] = '電話番号は数字をご入力下さい。'; + if (($_POST['fax_area_code'] !== '' || $_POST['fax_subscriber_number'] !== '') && (!filter_var($_POST['fax_area_code'], FILTER_VALIDATE_INT) || !filter_var($_POST['fax_subscriber_number'], FILTER_VALIDATE_INT))) $err[] = 'FAXは数字をご入力下さい。'; + if (!empty($err)) goto render; + $op = new Openprovider(); $op->login(); - $data = $op->createCustomer($_POST, true); - kys($data->data); - header("Location: /openprovider/getcustomer/{$data->data['handle']}"); + $data = $op->createCustomer($payload, true); + header("Location: /openprovider/getcustomer/{$data->data['data']['handle']}"); exit(); } + render: + $tmpl->assign('err', $err); $tmpl->assign('data', $payload); + $tmpl->addCss('openprovider'); $tmpl->render('createcustomer'); - kys('sasa'); exit(); @@ -207,13 +236,14 @@ class Op { $tmpl->assign('menu', $this->getMenu()); $tmpl->assign('description', $description); - if (!$user || $user->role !== \Roles::ADMIN) goto noaccess; + if (!$user || $user->role !== Roles::ADMIN) goto noaccess; $op = new Openprovider(); $op->login(); $data = $op->getCustomer($handle, true); $tmpl->assign('data', $data->data); $tmpl->addCss('table'); + $tmpl->addCss('openprovider'); $tmpl->render('getcustomer'); exit(); @@ -224,6 +254,58 @@ class Op { } } + public function opDeleteCustomer(array $params): void { + try { + $handle = ''; + if (isset($params['handle'])) $handle = $params['handle']; + if ($handle === '') { + header('Location: /openprovider/listcustomers'); + exit(); + } + assert_not_null($handle); + $tmpl = new Template('/openprovider/'); + $pagetit = "OpenProvider管理 - 顧客様「{$handle}」の表示"; + $description = ''; + + // ユーザー + $auth = new Auth(); + $user = $auth->getLoggedInUser(); + $tmpl->assign('user', $user); + + $tmpl->assign('pagetit', $pagetit); + $tmpl->assign('curPage', 'openprovider'); + $tmpl->assign('custCss', true); + $tmpl->assign('menu', $this->getMenu()); + $tmpl->assign('description', $description); + + if (!$user || $user->role !== Roles::ADMIN) goto noaccess; + if (empty($_POST)) goto render_confirm; + + if (isset($_POST['delete_reject'])) { + header("Location: /openprovider/getcustomer/{$handle}"); + exit(); + } else if (isset($_POST['delete_confirm'])) { + $op = new Openprovider(); + $op->login(); + $op->deleteCustomer($handle); + } + + header('Location: /openprovider/listcustomers'); + exit(); + + render_confirm: + $tmpl->assign('handle', $handle); + $tmpl->addCss('openprovider'); + $tmpl->render('deletecustomer'); + exit(); + + noaccess: + $tmpl->render('nopermission'); + } catch (\Exception $e) { + throw new \Exception($e->getMessage()); + } + } + public function opListTlds(array $params): void { try { $tmpl = new Template('/openprovider/'); @@ -241,7 +323,7 @@ class Op { $tmpl->assign('menu', $this->getMenu()); $tmpl->assign('description', $description); - if (!$user || $user->role !== \Roles::ADMIN) goto noaccess; + if (!$user || $user->role !== Roles::ADMIN) goto noaccess; $op = new Openprovider(); $op->login(); $data = $op->listTlds(); @@ -281,7 +363,7 @@ class Op { $tmpl->assign('menu', $this->getMenu()); $tmpl->assign('description', $description); - if (!$user || $user->role !== \Roles::ADMIN) goto noaccess; + if (!$user || $user->role !== Roles::ADMIN) goto noaccess; $op = new Openprovider(); $op->login(); $data = $op->getTld($tld); @@ -315,7 +397,7 @@ class Op { $tmpl->assign('menu', $this->getMenu()); $tmpl->assign('description', $description); - if (!$user || $user->role !== \Roles::ADMIN) goto noaccess; + if (!$user || $user->role !== Roles::ADMIN) goto noaccess; $op = new Openprovider(); $op->login(); $data = $op->listDomains($domains, true); @@ -355,7 +437,7 @@ class Op { $tmpl->assign('menu', $this->getMenu()); $tmpl->assign('description', $description); - if (!$user || $user->role !== \Roles::ADMIN) goto noaccess; + if (!$user || $user->role !== Roles::ADMIN) goto noaccess; $op = new Openprovider(); $op->login(); if (!empty($domains)) { @@ -398,7 +480,7 @@ class Op { $tmpl->assign('menu', $this->getMenu()); $tmpl->assign('description', $description); - if (!$user || $user->role !== \Roles::ADMIN) goto noaccess; + if (!$user || $user->role !== Roles::ADMIN) goto noaccess; $op = new Openprovider(); $op->login(); $data = $op->getDomainPrices(['domain.name' => $domainname, 'domain.extension' => $domainext]); @@ -432,14 +514,14 @@ class Op { $tmpl->assign('menu', $this->getMenu()); $tmpl->assign('description', $description); - if (!$user || $user->role !== \Roles::ADMIN) goto noaccess; + if (!$user || $user->role !== Roles::ADMIN) goto noaccess; $op = new Openprovider(); $op->login(); $data = $op->listDnsZones(); $tmpl->assign('data', $data->data); $tmpl->addCss('table'); - if ($user && $user->role & (\Roles::ADMIN)) $tmpl->render('listdnszones'); + if ($user && $user->role & (Roles::ADMIN)) $tmpl->render('listdnszones'); else goto noaccess; exit(); @@ -473,7 +555,7 @@ class Op { $tmpl->assign('menu', $this->getMenu()); $tmpl->assign('description', $description); - if (!$user || $user->role !== \Roles::ADMIN) goto noaccess; + if (!$user || $user->role !== Roles::ADMIN) goto noaccess; $op = new Openprovider(); $op->login(); $data = ['rec' => $op->listZoneRecords($domain), 'zone' => $op->getDnsZone($domain)]; diff --git a/src/Std/Lib/Openprovider.php b/src/Std/Lib/Openprovider.php index e9156cd..d53e7c9 100644 --- a/src/Std/Lib/Openprovider.php +++ b/src/Std/Lib/Openprovider.php @@ -38,9 +38,10 @@ OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. namespace Std\Lib; use Std\Lib\Curl; +use Result; class Openprovider { - protected string $dataDir = ROOT."/data/cache/"; + protected string $dataDir = ROOT."/data/cache/openprovider/"; protected int $tokenDuration = 172800; // 48時間 protected int $dataDuration = 1800; // 30分 @@ -60,19 +61,19 @@ class Openprovider { $this->ip = OPENPROVIDER['ip']; } - /*** + /** * トークンの受け取り。 * このライブリリーを使ったら、一回「login()」を実行する事が必須となります。 * * @return Result 結果 */ - public function login(): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function login(): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $cache = $this->getCache('login'); if (time() < ($this->lastAuth + $this->tokenDuration)) { $this->token = $cache['data']['token']; $this->lastAuth = $cache['last_auth']; - return \Result::Success('', $cache); + return Result::Success('', $cache); } $curl = new Curl("{$this->BASEURL}/auth/login"); @@ -91,7 +92,7 @@ class Openprovider { if (!$res->isSuccess) { $err = "CURLの実行に失敗: ".$curl->message; assert_unless_success($res, $err); - return \Result::Error($err); + return Result::Error($err); } $body = $curl->getResponseBody(); @@ -99,7 +100,7 @@ class Openprovider { $err = json_decode($body, true); assert_not_null($err, "エラーの受け取りに失敗。"); assert($curl->getResponseCode() == 200, $err['desc']); - return \Result::Error(); + return Result::Error(); } assert_not_null($body, "返事ボディーは空です。"); @@ -110,10 +111,10 @@ class Openprovider { $res['last_auth'] = $this->lastAuth; $this->setCache('login', $res); - return \Result::Success('', $res); + return Result::Success('', $res); } - return \Result::Error('ログインに失敗。'); + return Result::Error('ログインに失敗。'); } /** @@ -123,42 +124,42 @@ class Openprovider { * @param array $payload フォームデータ * @return Result */ - public function generateLoginUrlSpamExpert(array $payload = []): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function generateLoginUrlSpamExpert(array $payload = []): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $uri = '/spam-expert-generate-login-url'; $curl = $this->setupCurl($uri, 'POST', $payload); $res = $this->curlResult($curl); if (isset($res->data['data'])) { - return \Result::Success('DNSテンプレートの追加に成功。', $res->data); + return Result::Success('DNSテンプレートの追加に成功。', $res->data); } - return \Result::Error('DNSテンプレートの追加に失敗。'); + return Result::Error('DNSテンプレートの追加に失敗。'); } // ドメイン //// ドメイン - /*** + /** * ドメイン一覧。 * @todo テスト * * @return Result 結果。 */ - public function listDomains(array $query = []): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function listDomains(array $query = []): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $cache = $this->getCache('listdomains'); - if ($this->isValidLifespan($cache, $query)) return \Result::Success('', $cache); + if ($this->isValidLifespan($cache, $query)) return Result::Success('', $cache); $curl = $this->setupCurl('/domains'); $res = $this->curlResult($curl); if (isset($res['data']['results'])) { $this->setCache('listdomains', $res->data); - return \Result::Success('', $res['data']['results']); + return Result::Success('', $res['data']['results']); } - return \Result::Error('ドメインの確認に失敗。'); + return Result::Error('ドメインの確認に失敗。'); } /** @@ -170,8 +171,8 @@ class Openprovider { * @param int $period 年間(デフォルト=1年) * @return Result 結果。配列の場合:'activation_date'(リアルタイムで成功したのみ), 'auth_code'(TLDが対応している場合のみ), 'expiration_date', 'id', 'renewal_date', 'status'(ACT又はREQ) */ - public function createDomain(string $name, array $info, int $period = 1): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function createDomain(string $name, array $info, int $period = 1): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); if (!isset($info['owner_handle']) || $info['owner_handle'] === '') $info['owner_handle'] = OPENPROVIDER['owner_handle']; if (!isset($info['admin_handle']) || $info['admin_handle'] === '') $info['admin_handle'] = OPENPROVIDER['owner_handle']; if (!isset($info['tech_handle']) || $info['tech_handle'] === '') $info['tech_handle'] = OPENPROVIDER['owner_handle']; @@ -210,27 +211,27 @@ class Openprovider { $curl = $this->setupCurl('/domains/', 'POST', $payload); kys('TODO'); $res = $this->curlResult($curl); - if (isset($res['data'])) return \Result::Success('', $res); + if (isset($res['data'])) return Result::Success('', $res); - return \Result::Error('ドメインの確認に失敗。'); + return Result::Error('ドメインの確認に失敗。'); } - /*** + /** * ドメインを登録可能かどうかの確認。 * * @param array $domains ドメイン名リスト。例:['076.moe', '076.co.jp', '076.com'] * @param bool $with_price 値段を表示するかどうか。デフォルトは「false」 * @return Result 結果。配列の場合:'domain'と'status'はいつでもあり、'reason', 'premium', 'is_premium'が多分あり、そして'price'が「with_price」が「true」の場合のみ。 */ - public function checkDomainAvailable(array $domains, bool $with_price = false): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function checkDomainAvailable(array $domains, bool $with_price = false): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $domainList = []; foreach ($domains as $d) { $domain = explode('.', $d); assert_exists($domain[0]); assert_exists($domain[1]); if (count($domain) !== 2) { - return \Result::Error("不正なドメイン形: {$d}"); + return Result::Error("不正なドメイン形: {$d}"); } $domainList[] = [ @@ -246,9 +247,9 @@ class Openprovider { $curl = $this->setupCurl('/domains/check', 'POST', $payload); $res = $this->curlResult($curl); - if (isset($res->data['data']['results'])) return \Result::Success('', $res->data['data']['results']); + if (isset($res->data['data']['results'])) return Result::Success('', $res->data['data']['results']); - return \Result::Error('ドメインの確認に失敗。'); + return Result::Error('ドメインの確認に失敗。'); } //// 追加データ @@ -260,8 +261,8 @@ class Openprovider { * @param array $query 検索クエリー * @return Result */ - public function getDomainAdditionalData(array $query): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function getDomainAdditionalData(array $query): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $name = ''; $ext = ''; if (isset($query['domain.name'])) $name = $query['domain.name']; @@ -269,17 +270,17 @@ class Openprovider { $cacheName = $name && $ext ? "domainadditionaldata-{$name}.{$ext}" : 'domainadditionaldata'; $cache = $this->getCache($cacheName); - if ($this->isValidLifespan($cache)) return \Result::Success('', $cache); + if ($this->isValidLifespan($cache)) return Result::Success('', $cache); $uri = "/domains/additional-data?".http_build_query($query, '', '&', PHP_QUERY_RFC3986); $curl = $this->setupCurl($uri); $res = $this->curlResult($curl); if (isset($res->data['data'])) { $this->setCache($cacheName, $res->data); - return \Result::Success('', $res->data); + return Result::Success('', $res->data); } - return \Result::Error('ドメインの追加データの受け取りに失敗。'); + return Result::Error('ドメインの追加データの受け取りに失敗。'); } //// 顧客様の追加データ @@ -291,8 +292,8 @@ class Openprovider { * @param array $query 検索クエリー * @return Result */ - public function getDomainCustomerAdditionalData(array $query): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function getDomainCustomerAdditionalData(array $query): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $name = ''; $ext = ''; if (isset($query['domain.name'])) $name = $query['domain.name']; @@ -300,17 +301,17 @@ class Openprovider { $cacheName = $name && $ext ? "domainadditionaldata-{$name}.{$ext}" : 'domainadditionaldata'; $cache = $this->getCache($cacheName); - if ($this->isValidLifespan($cache)) return \Result::Success('', $cache); + if ($this->isValidLifespan($cache)) return Result::Success('', $cache); $uri = "/domains/additional-data/customers?".http_build_query($query, '', '&', PHP_QUERY_RFC3986); $curl = $this->setupCurl($uri); $res = $this->curlResult($curl); if (isset($res->data['data'])) { $this->setCache($cacheName, $res->data); - return \Result::Success('', $res->data); + return Result::Success('', $res->data); } - return \Result::Error('ドメインの顧客様の追加データの受け取りに失敗。'); + return Result::Error('ドメインの顧客様の追加データの受け取りに失敗。'); } @@ -322,8 +323,8 @@ class Openprovider { * @param array $query 検索クエリー * @return Result */ - public function getDomainPrices(array $query): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function getDomainPrices(array $query): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $name = ''; $ext = ''; if (isset($query['domain.name'])) $name = $query['domain.name']; @@ -331,60 +332,62 @@ class Openprovider { $cacheName = $name && $ext ? "domainprices-{$name}.{$ext}" : 'domainprices'; $cache = $this->getCache($cacheName); - if ($this->isValidLifespan($cache)) return \Result::Success('', $cache); + if ($this->isValidLifespan($cache)) return Result::Success('', $cache); $uri = "/domains/prices?".http_build_query($query, '', '&', PHP_QUERY_RFC3986); $curl = $this->setupCurl($uri); $res = $this->curlResult($curl); if (isset($res->data['data'])) { $this->setCache($cacheName, $res->data); - return \Result::Success('', $res->data); + return Result::Success('', $res->data); } - return \Result::Error('TLD一覧の受け取りに失敗。'); + return Result::Error('TLD一覧の受け取りに失敗。'); } //// 認証コード /** * 認証コードの受け取り + * @todo テスト * * @param int $id ドメイン名ID * @param array $query 検索クエリー * @return Result */ - public function getAuthCode(int $id, array $query = []): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function getAuthCode(int $id, array $query = []): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $uri = "/domains/{$id}/authcode?".http_build_query($query, '', '&', PHP_QUERY_RFC3986); $curl = $this->setupCurl($uri); $res = $this->curlResult($curl); if (isset($res->data['data'])) { - return \Result::Success('', $res->data); + return Result::Success('', $res->data); } - return \Result::Error('認証コードの受け取りに失敗。'); + return Result::Error('認証コードの受け取りに失敗。'); } /** * 認証コードの再設定 + * @todo テスト * * @param int $id ドメイン名ID * @param array $payload フォームデータ * @return Result */ - public function resetAuthCode(int $id, array $payload = []): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function resetAuthCode(int $id, array $payload = []): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $uri = "/domains/{$id}/authcode/reset"; $curl->setupCurl($uri, 'POST', $payload); $res = $this->curlResult($curl); kys($res); if (isset($res)) { - return \Result::Success('', $res->data); + return Result::Success('', $res->data); } - return \Result::Error("認証コードの再設定に失敗。"); + return Result::Error("認証コードの再設定に失敗。"); } //// TLD @@ -395,10 +398,10 @@ class Openprovider { * @param array $query 検索クエリー * @return Result */ - public function listTlds(array $query = []): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function listTlds(array $query = []): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $cache = $this->getCache('listtlds'); - if ($this->isValidLifespan($cache)) return \Result::Success('', $cache); + if ($this->isValidLifespan($cache)) return Result::Success('', $cache); if (empty($query)) $query = [ 'limit' => 10, 'offset' => 0, 'order' => 'ASC' ]; foreach ($query as $k => $v) if (is_bool($v)) $query[$k] = $v ? 'true' : 'false'; @@ -408,10 +411,10 @@ class Openprovider { $res = $this->curlResult($curl); if (isset($res->data['data'])) { $this->setCache('listtlds', $res->data); - return \Result::Success('', $res->data); + return Result::Success('', $res->data); } - return \Result::Error('TLD一覧の受け取りに失敗。'); + return Result::Error('TLD一覧の受け取りに失敗。'); } /** @@ -421,11 +424,11 @@ class Openprovider { * @param array $query 検索クエリー * @return Result */ - public function getTld(string $tld, array $query = []): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function getTld(string $tld, array $query = []): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $cacheName = "gettld-{$tld}"; $cache = $this->getCache($cacheName); - if ($this->isValidLifespan($cache)) return \Result::Success('', $cache); + if ($this->isValidLifespan($cache)) return Result::Success('', $cache); if (empty($query)) $query = [ 'limit' => 10, 'offset' => 0 ]; foreach ($query as $k => $v) if (is_bool($v)) $query[$k] = $v ? 'true' : 'false'; @@ -435,10 +438,10 @@ class Openprovider { $res = $this->curlResult($curl); if (isset($res->data['data'])) { $this->setCache($cacheName, $res->data); - return \Result::Success('', $res->data); + return Result::Success('', $res->data); } - return \Result::Error('TLD一覧の受け取りに失敗。'); + return Result::Error('TLD一覧の受け取りに失敗。'); } // 請求 @@ -451,11 +454,11 @@ class Openprovider { * @param array $query 検索クエリー * @return Result */ - public function listInvoices(array $query = []): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function listInvoices(array $query = []): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $cacheName = 'listinvoices'; $cache = $this->getCache($cacheName); - if ($this->isValidLifespan($cache)) return \Result::Success('', $cache); + if ($this->isValidLifespan($cache)) return Result::Success('', $cache); if (empty($query)) $query = [ 'limit' => 10, 'offset' => 0 ]; foreach ($query as $k => $v) if (is_bool($v)) $query[$k] = $v ? 'true' : 'false'; @@ -465,10 +468,10 @@ class Openprovider { $res = $this->curlResult($curl); if (isset($res->data['data'])) { $this->setCache($cacheName, $res->data); - return \Result::Success('', $res->data); + return Result::Success('', $res->data); } - return \Result::Error('請求書一覧の受け取りに請求書'); + return Result::Error('請求書一覧の受け取りに請求書'); } //// 支払 @@ -480,11 +483,11 @@ class Openprovider { * @param array $query 検索クエリー * @return Result */ - public function listPayments(array $query = []): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function listPayments(array $query = []): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $cacheName = 'listpayments'; $cache = $this->getCache($cacheName); - if ($this->isValidLifespan($cache)) return \Result::Success('', $cache); + if ($this->isValidLifespan($cache)) return Result::Success('', $cache); if (empty($query)) $query = [ 'limit' => 10, 'offset' => 0 ]; foreach ($query as $k => $v) if (is_bool($v)) $query[$k] = $v ? 'true' : 'false'; @@ -494,10 +497,10 @@ class Openprovider { $res = $this->curlResult($curl); if (isset($res->data['data'])) { $this->setCache($cacheName, $res->data); - return \Result::Success('', $res->data); + return Result::Success('', $res->data); } - return \Result::Error('支払一覧の受け取りに失敗。'); + return Result::Error('支払一覧の受け取りに失敗。'); } //// トランザクション @@ -509,11 +512,11 @@ class Openprovider { * @param array $query 検索クエリー * @return Result */ - public function listTransactions(array $query = []): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function listTransactions(array $query = []): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $cacheName = 'listtransactions'; $cache = $this->getCache($cacheName); - if ($this->isValidLifespan($cache)) return \Result::Success('', $cache); + if ($this->isValidLifespan($cache)) return Result::Success('', $cache); if (empty($query)) $query = [ 'limit' => 10, 'offset' => 0 ]; foreach ($query as $k => $v) if (is_bool($v)) $query[$k] = $v ? 'true' : 'false'; @@ -523,10 +526,10 @@ class Openprovider { $res = $this->curlResult($curl); if (isset($res->data['data'])) { $this->setCache($cacheName, $res->data); - return \Result::Success('', $res->data); + return Result::Success('', $res->data); } - return \Result::Error('トランザクション一覧の受け取りに失敗。'); + return Result::Error('トランザクション一覧の受け取りに失敗。'); } // DNS @@ -539,17 +542,17 @@ class Openprovider { * @param array $payload フォームデータ * @return Result */ - public function createDomainToken(array $payload = []): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function createDomainToken(array $payload = []): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $uri = '/dns/domain-token'; $curl = $this->setupCurl($uri, 'POST', $payload); $res = $this->curlResult($curl); if (isset($res->data['data'])) { - return \Result::Success('DNSテンプレートの追加に成功。', $res->data); + return Result::Success('DNSテンプレートの追加に成功。', $res->data); } - return \Result::Error('DNSテンプレートの追加に失敗。'); + return Result::Error('DNSテンプレートの追加に失敗。'); } //// ネームサーバー @@ -563,11 +566,11 @@ class Openprovider { * @param array $query 検索クエリー * @return Result */ - public function listDnsTemplate(array $query = []): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function listDnsTemplate(array $query = []): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $cacheName = 'listdnstemplates'; $cache = $this->getCache($cacheName); - if ($this->isValidLifespan($cache, $query)) return \Result::Success('', $cache); + if ($this->isValidLifespan($cache, $query)) return Result::Success('', $cache); foreach ($query as $k => $v) { if (is_bool($v)) $query[$k] = $v ? 'true' : 'false'; } $uri = '/dns/templates?'.http_build_query($query, '', '&', PHP_QUERY_RFC3986); @@ -576,10 +579,10 @@ class Openprovider { if (isset($res->data['data'])) { $res->data['query'] = $query; $this->setCache($cacheName, $res->data); - return \Result::Success('', $res->data); + return Result::Success('', $res->data); } - return \Result::Error('DNSテンプレート一覧の受け取りに失敗。'); + return Result::Error('DNSテンプレート一覧の受け取りに失敗。'); } /** @@ -589,18 +592,18 @@ class Openprovider { * @param array $payload フォームデータ * @return Result */ - public function createDnsTemplate(array $payload = []): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function createDnsTemplate(array $payload = []): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $uri = '/dns/templates'; $curl = $this->setupCurl($uri, 'POST', $payload); $res = $this->curlResult($curl); if (isset($res->data['data'])) { $this->murderCache('listdnstemplates'); - return \Result::Success('DNSテンプレートの追加に成功。', $res->data); + return Result::Success('DNSテンプレートの追加に成功。', $res->data); } - return \Result::Error('DNSテンプレートの追加に失敗。'); + return Result::Error('DNSテンプレートの追加に失敗。'); } /** @@ -610,21 +613,21 @@ class Openprovider { * @param int $id DNSテンプレートID * @return Result */ - public function getDnsTemplate(int $id): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function getDnsTemplate(int $id): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $cacheName = "getdnstemplate-{$id}"; $cache = $this->getCache($cacheName); - if ($this->isValidLifespan($cache, $query)) return \Result::Success('', $cache); + if ($this->isValidLifespan($cache, $query)) return Result::Success('', $cache); $uri = "/dns/templates/{$id}"; $curl = $this->setupCurl($uri); $res = $this->curlResult($curl); if (isset($res->data['data'])) { $this->setCache($cacheName, $res->data); - return \Result::Success('', $res->data); + return Result::Success('', $res->data); } - return \Result::Error('DNSテンプレートの更新に失敗。'); + return Result::Error('DNSテンプレートの更新に失敗。'); } /** @@ -634,18 +637,18 @@ class Openprovider { * @param int $id DNSテンプレートID * @return Result */ - public function deleteDnsTemplate(int $id): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function deleteDnsTemplate(int $id): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $uri = "/dns/templates/{$id}"; $curl = $this->setupCurl($uri, 'DELETE'); $res = $this->curlResult($curl); if (isset($res->data['data'])) { $this->murderCache('listdnstemplates'); - if ($res->data['data']['success']) return \Result::Success('DNSテンプレートの削除に成功。', $res->data); + if ($res->data['data']['success']) return Result::Success('DNSテンプレートの削除に成功。', $res->data); } - return \Result::Error('DNSテンプレートの削除に失敗。'); + return Result::Error('DNSテンプレートの削除に失敗。'); } //// ゾーン @@ -656,10 +659,10 @@ class Openprovider { * @param array $query * @return Result */ - public function listDnsZones(array $query = []): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function listDnsZones(array $query = []): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $cache = $this->getCache('listdnszones'); - if ($this->isValidLifespan($cache, $query)) return \Result::Success('', $cache); + if ($this->isValidLifespan($cache, $query)) return Result::Success('', $cache); if (empty($query)) $query = [ 'limit' => 25, 'offset' => 0, 'order_by.name' => 'asc' ]; foreach ($query as $k => $v) if (is_bool($v)) $query[$k] = $v ? 'true' : 'false'; @@ -669,10 +672,10 @@ class Openprovider { $res = $this->curlResult($curl); if (isset($res->data['data'])) { $this->setCache('listdnszones', $res->data); - return \Result::Success('', $res->data); + return Result::Success('', $res->data); } - return \Result::Error('TLD一覧の受け取りに失敗。'); + return Result::Error('TLD一覧の受け取りに失敗。'); } /** @@ -682,10 +685,10 @@ class Openprovider { * @param array $query 検索クエリー * @return Result */ - public function getDnsZone(string $domain, array $query = []): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function getDnsZone(string $domain, array $query = []): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $cache = $this->getCache("getdnszone-{$domain}"); - if ($this->isValidLifespan($cache)) return \Result::Success('', $cache); + if ($this->isValidLifespan($cache)) return Result::Success('', $cache); if (empty($query)) $query = [ 'limit' => 100, 'offset' => 0, 'order_by.name' => 'asc' ]; foreach ($query as $k => $v) if (is_bool($v)) $query[$k] = $v ? 'true' : 'false'; @@ -695,10 +698,10 @@ class Openprovider { $res = $this->curlResult($curl); if (isset($res->data['data'])) { $this->setCache("getdnszone-{$domain}", $res->data); - return \Result::Success('', $res->data); + return Result::Success('', $res->data); } - return \Result::Error('TLD一覧の受け取りに失敗。'); + return Result::Error('TLD一覧の受け取りに失敗。'); } //// ゾーンレコード @@ -709,19 +712,19 @@ class Openprovider { * @param string $domain * @return Result */ - public function listZoneRecords(string $domain): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function listZoneRecords(string $domain): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $cache = $this->getCache("getzonerecords-{$domain}"); - if ($this->isValidLifespan($cache)) return \Result::Success('', $cache); + if ($this->isValidLifespan($cache)) return Result::Success('', $cache); $curl = $this->setupCurl("/dns/zones/{$domain}/records"); $res = $this->curlResult($curl); if (isset($res->data['data'])) { $this->setCache("getzonerecords-{$domain}", $res->data); - return \Result::Success('', $res->data); + return Result::Success('', $res->data); } - return \Result::Error('TLD一覧の受け取りに失敗。'); + return Result::Error('TLD一覧の受け取りに失敗。'); } // Easydmarc @@ -737,11 +740,11 @@ class Openprovider { * @param array $query 検索クエリー * @return Result */ - public function listEmails(array $query = []): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function listEmails(array $query = []): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $cacheName = 'listemails'; $cache = $this->getCache($cacheName); - if ($this->isValidLifespan($cache, $query)) return \Result::Success('', $cache); + if ($this->isValidLifespan($cache, $query)) return Result::Success('', $cache); foreach ($query as $k => $v) { if (is_bool($v)) $query[$k] = $v ? 'true' : 'false'; } $uri = '/emails?'.http_build_query($query, '', '&', PHP_QUERY_RFC3986); @@ -750,10 +753,10 @@ class Openprovider { if (isset($res->data['data'])) { $res->data['query'] = $query; $this->setCache($cacheName, $res->data); - return \Result::Success('', $res->data); + return Result::Success('', $res->data); } - return \Result::Error('メールテンプレート一覧の受け取りに失敗。'); + return Result::Error('メールテンプレート一覧の受け取りに失敗。'); } /** @@ -763,18 +766,18 @@ class Openprovider { * @param array $payload フォームデータ * @return Result */ - public function createEmail(array $payload = []): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function createEmail(array $payload = []): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $uri = '/emails'; $curl = $this->setupCurl($uri, 'POST', $payload); $res = $this->curlResult($curl); if (isset($res->data['data'])) { $this->murderCache('listemails'); - return \Result::Success('メールテンプレートの追加に成功。', $res->data); + return Result::Success('メールテンプレートの追加に成功。', $res->data); } - return \Result::Error('メールテンプレートの追加に失敗。'); + return Result::Error('メールテンプレートの追加に失敗。'); } /** @@ -785,18 +788,18 @@ class Openprovider { * @param array $payload フォームデータ * @return Result */ - public function updateEmail(int $id, array $payload = []): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function updateEmail(int $id, array $payload = []): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $uri = "/emails/{$id}"; $curl = $this->setupCurl($uri, 'PUT', $payload); $res = $this->curlResult($curl); if (isset($res->data['data'])) { $this->murderCache('listemails'); - if ($res->data['data']['success']) return \Result::Success('メールテンプレートの更新に成功。', $res->data); + if ($res->data['data']['success']) return Result::Success('メールテンプレートの更新に成功。', $res->data); } - return \Result::Error('メールテンプレートの更新に失敗。'); + return Result::Error('メールテンプレートの更新に失敗。'); } /** @@ -806,18 +809,18 @@ class Openprovider { * @param int $id メールテンプレートID * @return Result */ - public function deleteEmail(int $id): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function deleteEmail(int $id): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $uri = "/emails/{$id}"; $curl = $this->setupCurl($uri, 'DELETE'); $res = $this->curlResult($curl); if (isset($res->data['data'])) { $this->murderCache('listemails'); - if ($res->data['data']['success']) return \Result::Success('メールテンプレートの削除に成功。', $res->data); + if ($res->data['data']['success']) return Result::Success('メールテンプレートの削除に成功。', $res->data); } - return \Result::Error('メールテンプレートの削除に失敗。'); + return Result::Error('メールテンプレートの削除に失敗。'); } // ライセンス @@ -834,11 +837,11 @@ class Openprovider { * @param array $query 検索クエリー * @return Result */ - public function listCustomers(array $query = []): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function listCustomers(array $query = []): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $cacheName = 'listcustomers'; $cache = $this->getCache($cacheName); - if ($this->isValidLifespan($cache, $query)) return \Result::Success('', $cache); + if ($this->isValidLifespan($cache, $query)) return Result::Success('', $cache); foreach ($query as $k => $v) { if (is_bool($v)) $query[$k] = $v ? 'true' : 'false'; } $uri = '/customers?'.http_build_query($query, '', '&', PHP_QUERY_RFC3986); @@ -847,10 +850,10 @@ class Openprovider { if (isset($res->data['data'])) { $res->data['query'] = $query; $this->setCache($cacheName, $res->data); - return \Result::Success('', $res->data); + return Result::Success('', $res->data); } - return \Result::Error('顧客様一覧の受け取りに失敗。'); + return Result::Error('顧客様一覧の受け取りに失敗。'); } /** @@ -859,19 +862,18 @@ class Openprovider { * @param array $payload * @return Result */ - public function createCustomer(array $payload): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function createCustomer(array $payload): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $uri = '/customers'; - $curl->setupCurl($uri, 'POST', $payload); + $curl = $this->setupCurl($uri, 'POST', $payload); $res = $this->curlResult($curl); - kys($res); if (isset($res)) { $this->murderCache('listcustomers'); - return \Result::Success('', $res->data); + return Result::Success('', $res->data); } - return \Result::Error("顧客様の作成に失敗。"); + return Result::Error("顧客様の作成に失敗。"); } /** @@ -881,11 +883,11 @@ class Openprovider { * @param bool $withAdditionalData 詳細データ含むか? * @return Result */ - public function getCustomer(string $handle, bool $withAdditionalData = false): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function getCustomer(string $handle, bool $withAdditionalData = false): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $cacheName = "getcustomer-{$handle}"; $cache = $this->getCache($cacheName); - if ($this->isValidLifespan($cache, $handle, 'handle')) return \Result::Success('', $cache); + if ($this->isValidLifespan($cache, $handle, 'handle')) return Result::Success('', $cache); $query = [ 'with_additional_data' => $withAdditionalData ? 'true' : 'false' ]; $uri = "/customers/{$handle}?".http_build_query($query, '', '&', PHP_QUERY_RFC3986); @@ -895,10 +897,10 @@ class Openprovider { if (isset($res->data['data'])) { $res->data['handle'] = $handle; $this->setCache($cacheName, $res->data); - return \Result::Success('', $res->data); + return Result::Success('', $res->data); } - return \Result::Error('顧客様の受け取りに失敗。'); + return Result::Error('顧客様の受け取りに失敗。'); } /** @@ -909,39 +911,38 @@ class Openprovider { * @param array $payload フォームデータ * @return Result */ - public function updateCustomer(string $handle, array $payload = []): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function updateCustomer(string $handle, array $payload = []): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $uri = "/customers/{$handle}"; $curl = $this->setupCurl($uri, 'PUT', $payload); $res = $this->curlResult($curl); if (isset($res->data['data'])) { $this->murderCache('listcustomers'); - if ($res->data['data']['success']) return \Result::Success('顧客様の更新に成功。', $res->data); + if ($res->data['data']['success']) return Result::Success('顧客様の更新に成功。', $res->data); } - return \Result::Error('顧客様の更新に失敗。'); + return Result::Error('顧客様の更新に失敗。'); } /** * 顧客様の削除 - * @todo テスト * * @param string $handle 顧客様のハンドル * @return Result */ - public function deleteCustomer(int $id): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function deleteCustomer(string $handle): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $uri = "/customers/{$handle}"; $curl = $this->setupCurl($uri, 'DELETE'); $res = $this->curlResult($curl); if (isset($res->data['data'])) { $this->murderCache('listcustomers'); - if ($res->data['data']['success']) return \Result::Success('顧客様の削除に成功。', $res->data); + if ($res->data['data']['success']) return Result::Success('顧客様の削除に成功。'); } - return \Result::Error('顧客様の削除に失敗。'); + return Result::Error('顧客様の削除に失敗。'); } //// メール認証 @@ -953,11 +954,11 @@ class Openprovider { * @param array $query 検索クエリー * @return Result */ - public function listEmailVerifications(array $query = []): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function listEmailVerifications(array $query = []): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $cacheName = 'listemailverifications'; $cache = $this->getCache($cacheName); - if ($this->isValidLifespan($cache, $query)) return \Result::Success('', $cache); + if ($this->isValidLifespan($cache, $query)) return Result::Success('', $cache); foreach ($query as $k => $v) { if (is_bool($v)) $query[$k] = $v ? 'true' : 'false'; } $uri = '/customers/verifications/emails/domains?'.http_build_query($query, '', '&', PHP_QUERY_RFC3986); @@ -966,10 +967,10 @@ class Openprovider { if (isset($res->data['data'])) { $res->data['query'] = $query; $this->setCache($cacheName, $res->data); - return \Result::Success('', $res->data); + return Result::Success('', $res->data); } - return \Result::Error('メール認証一覧の受け取りに失敗。'); + return Result::Error('メール認証一覧の受け取りに失敗。'); } /** @@ -979,18 +980,18 @@ class Openprovider { * @param string $email メールアドレス * @return Result */ - public function restartEmailVerifications(string $email, string $language = '', string $tag = ''): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function restartEmailVerifications(string $email, string $language = '', string $tag = ''): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $uri = '/customers/verifications/emails/restart'; $curl = $this->setupCurl($uri, 'POST', ['email' => $email, 'language' => $language, 'tag' => $tag]); $res = $this->curlResult($curl); if (isset($res->data['data'])) { $this->murderCache('listemailverifications'); - return \Result::Success('メール認証の再起動に成功。', $res->data); + return Result::Success('メール認証の再起動に成功。', $res->data); } - return \Result::Error('メール認証の再起動に失敗。'); + return Result::Error('メール認証の再起動に失敗。'); } /** @@ -1003,18 +1004,18 @@ class Openprovider { * @param string $tag タグ * @return Result */ - public function startEmailVerifications(string $email, string $handle = '', string $language = '', string $tag = ''): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function startEmailVerifications(string $email, string $handle = '', string $language = '', string $tag = ''): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $uri = '/customers/verifications/emails/start'; $curl = $this->setupCurl($uri, 'POST', ['email' => $email, 'handle' => $handle, 'language' => $language, 'tag' => $tag]); $res = $this->curlResult($curl); if (isset($res->data['data'])) { $this->murderCache('listemailverifications'); - return \Result::Success('メール認証の起動に成功。', $res->data); + return Result::Success('メール認証の起動に成功。', $res->data); } - return \Result::Error('メール認証の起動に失敗。'); + return Result::Error('メール認証の起動に失敗。'); } //// リセラー @@ -1026,11 +1027,11 @@ class Openprovider { * @param array $query 検索クエリー * @return Result */ - public function getReseller(array $query = []): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function getReseller(array $query = []): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $cacheName = 'getreseller'; $cache = $this->getCache($cacheName); - if ($this->isValidLifespan($cache, $query)) return \Result::Success('', $cache); + if ($this->isValidLifespan($cache, $query)) return Result::Success('', $cache); foreach ($query as $k => $v) { if (is_bool($v)) $query[$k] = $v ? 'true' : 'false'; } $uri = '/resellers?'.http_build_query($query, '', '&', PHP_QUERY_RFC3986); @@ -1039,10 +1040,10 @@ class Openprovider { if (isset($res->data['data'])) { $res->data['query'] = $query; $this->setCache($cacheName, $res->data); - return \Result::Success('', $res->data); + return Result::Success('', $res->data); } - return \Result::Error('リセラーの受け取りに失敗。'); + return Result::Error('リセラーの受け取りに失敗。'); } /** @@ -1053,18 +1054,18 @@ class Openprovider { * @param array $payload フォームデータ * @return Result */ - public function updateReseller(int $id, array $payload = []): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function updateReseller(int $id, array $payload = []): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $uri = "/resellers/{$id}"; $curl = $this->setupCurl($uri, 'PUT', $payload); $res = $this->curlResult($curl); if (isset($res->data['data'])) { $this->murderCache('getreseller'); - if ($res->data['data']['success']) return \Result::Success('リセラーの更新に成功。', $res->data); + if ($res->data['data']['success']) return Result::Success('リセラーの更新に成功。', $res->data); } - return \Result::Error('リセラーの更新に失敗。'); + return Result::Error('リセラーの更新に失敗。'); } //// 設定 @@ -1075,11 +1076,11 @@ class Openprovider { * * @return Result */ - public function listSettings(): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function listSettings(): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $cacheName = 'listsettings'; $cache = $this->getCache($cacheName); - if ($this->isValidLifespan($cache, $query)) return \Result::Success('', $cache); + if ($this->isValidLifespan($cache, $query)) return Result::Success('', $cache); $uri = '/resellers/settings'; $curl = $this->setupCurl($uri); @@ -1087,10 +1088,10 @@ class Openprovider { if (isset($res->data['data'])) { $res->data['query'] = $query; $this->setCache($cacheName, $res->data); - return \Result::Success('', $res->data); + return Result::Success('', $res->data); } - return \Result::Error('設定の受け取りに失敗。'); + return Result::Error('設定の受け取りに失敗。'); } //// 統計 @@ -1101,11 +1102,11 @@ class Openprovider { * * @return Result */ - public function listStatistics(array $query = []): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function listStatistics(array $query = []): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $cacheName = 'liststatistics'; $cache = $this->getCache($cacheName); - if ($this->isValidLifespan($cache, $query)) return \Result::Success('', $cache); + if ($this->isValidLifespan($cache, $query)) return Result::Success('', $cache); $uri = '/resellers/statistics'; $curl = $this->setupCurl($uri); @@ -1113,10 +1114,10 @@ class Openprovider { if (isset($res->data['data'])) { $res->data['query'] = $query; $this->setCache($cacheName, $res->data); - return \Result::Success('', $res->data); + return Result::Success('', $res->data); } - return \Result::Error('統計の受け取りに失敗。'); + return Result::Error('統計の受け取りに失敗。'); } //// タグ @@ -1128,11 +1129,11 @@ class Openprovider { * @param array $query 検索クエリー * @return Result */ - public function listTags(array $query = []): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function listTags(array $query = []): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $cacheName = 'listtags'; $cache = $this->getCache($cacheName); - if ($this->isValidLifespan($cache, $query)) return \Result::Success('', $cache); + if ($this->isValidLifespan($cache, $query)) return Result::Success('', $cache); foreach ($query as $k => $v) { if (is_bool($v)) $query[$k] = $v ? 'true' : 'false'; } $uri = '/tags?'.http_build_query($query, '', '&', PHP_QUERY_RFC3986); @@ -1141,10 +1142,10 @@ class Openprovider { if (isset($res->data['data'])) { $res->data['query'] = $query; $this->setCache($cacheName, $res->data); - return \Result::Success('', $res->data); + return Result::Success('', $res->data); } - return \Result::Error('タグ一覧の受け取りに失敗。'); + return Result::Error('タグ一覧の受け取りに失敗。'); } /** @@ -1154,18 +1155,18 @@ class Openprovider { * @param array $payload フォームデータ * @return Result */ - public function createTag(array $payload = []): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function createTag(array $payload = []): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $uri = '/tags'; $curl = $this->setupCurl($uri, 'POST', $payload); $res = $this->curlResult($curl); if (isset($res->data['data'])) { $this->murderCache('listtags'); - return \Result::Success('タグの追加に成功。', $res->data); + return Result::Success('タグの追加に成功。', $res->data); } - return \Result::Error('タグの追加に失敗。'); + return Result::Error('タグの追加に失敗。'); } /** @@ -1175,18 +1176,18 @@ class Openprovider { * @param array $payload フォームデータ * @return Result */ - public function deleteTag(array $payload = []): \Result { - if (!OPENPROVIDER_ENABLED) return \Result::error('エラー:OpenProviderは無効です。'); + public function deleteTag(array $payload = []): Result { + if (!OPENPROVIDER_ENABLED) return Result::error('エラー:OpenProviderは無効です。'); $uri = "/tags/{$id}"; $curl = $this->setupCurl($uri, 'DELETE', $payload); $res = $this->curlResult($curl); if (isset($res->data['data'])) { $this->murderCache('listtags'); - if ($res->data['data']['success']) return \Result::Success('タグの削除に成功。', $res->data); + if ($res->data['data']['success']) return Result::Success('タグの削除に成功。', $res->data); } - return \Result::Error('タグの削除に失敗。'); + return Result::Error('タグの削除に失敗。'); } // SpamExpert @@ -1229,12 +1230,12 @@ class Openprovider { return $curl; } - private function curlResult(Curl &$curl): \Result { + private function curlResult(Curl &$curl): Result { $res = $curl->execute(); if (!$res->isSuccess) { $err = "CURL実行に失敗: {$curl->message}"; assert_unless_success($res, $err); - return \Result::Error($err); + return Result::Error($err); } $body = $curl->getResponseBody(); @@ -1242,11 +1243,11 @@ class Openprovider { $err = json_decode($body, true); assert_not_null($err, "エラーの受け取りに失敗。"); assert($curl->getResponseCode() == 200, $err['desc']); - return \Result::Error($err['desc']); + return Result::Error($err['desc']); } assert_not_null($body, "返事ボディーは空です。"); - return \Result::Success('', json_decode($body, true)); + return Result::Success('', json_decode($body, true)); } /** @@ -1256,17 +1257,17 @@ class Openprovider { * @param array $data 保存するデータ * @return Result */ - private function setCache(string $type, array $data): \Result { + private function setCache(string $type, array $data): Result { if (!file_exists($this->dataDir)) { if (!mkdir($this->dataDir, 0755)) - return \Result::Error('エラー:ユーザーのアイコンディレクトリの作成に失敗。'); + return Result::Error('エラー:ユーザーのアイコンディレクトリの作成に失敗。'); } $data['lifespan'] = time(); $json = json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); - if (file_put_contents("{$this->dataDir}{$type}.json", $json) === false) return \Result::Error('エラー:ユーザーデータの保存に失敗。'); + if (file_put_contents("{$this->dataDir}{$type}.json", $json) === false) return Result::Error('エラー:ユーザーデータの保存に失敗。'); - return \Result::Success(); + return Result::Success(); } /** @@ -1298,10 +1299,10 @@ class Openprovider { * @param string $name キャッシュのファイル名 * @return Result */ - private function murderCache(string $name): \Result { - if (!file_exists("{$this->dataDir}{$name}.json")) return \Result::Error('キャッシュファイルが存在しない。'); - if (!unlink("{$this->dataDir}{$name}.json")) return \Result::Error('キャッシュファイルの削除に失敗。'); - return \Result::Success(); + private function murderCache(string $name): Result { + if (!file_exists("{$this->dataDir}{$name}.json")) return Result::Error('キャッシュファイルが存在しない。'); + if (!unlink("{$this->dataDir}{$name}.json")) return Result::Error('キャッシュファイルの削除に失敗。'); + return Result::Success(); } /** diff --git a/view/openprovider/createcustomer.maron b/view/openprovider/createcustomer.maron index e84f5d4..ac579d4 100644 --- a/view/openprovider/createcustomer.maron +++ b/view/openprovider/createcustomer.maron @@ -1,5 +1,12 @@ {@ include(common/header) @}

新規顧客様作成

+{@ if (!empty($err)) @} +

+{@ foreach ($err as $e) @} + {{ $e }}
+{@ endforeach @} +

+{@ endif @}

会社情報

@@ -8,58 +15,54 @@ - + - + - +

個人情報

- telephone number (req) - fax number - email address (req) - birth date - + - + @@ -68,29 +71,29 @@
- - + +
- - - + + +
- - - + + +
- 年 - 月 - 日 + 年 + 月 +
- - + + - - + + - - + + - - + + - - + + - + - +
- @@ -98,7 +101,7 @@
diff --git a/view/openprovider/deletecustomer.maron b/view/openprovider/deletecustomer.maron new file mode 100644 index 0000000..9df70fb --- /dev/null +++ b/view/openprovider/deletecustomer.maron @@ -0,0 +1,9 @@ +{@ include(common/header) @} +

本当に顧客様「{{ $handle }}」を削除しますか?

+

+ + + +

+

+{@ include(common/footer) @} \ No newline at end of file diff --git a/view/openprovider/getcustomer.maron b/view/openprovider/getcustomer.maron index f2c617a..5e30581 100644 --- a/view/openprovider/getcustomer.maron +++ b/view/openprovider/getcustomer.maron @@ -1,26 +1,25 @@ {@ include(common/header) @} - 顧客様の削除
- 顧客様のクローン
- 顧客様の編集
-{$ $addInfo = $data['data']['additional_data'] $} -{$ $name = $data['data']['name'] $} -{$ $phone = $data['data']['phone'] $} -{$ $fax = $data['data']['fax'] $} -{$ $addr = $data['data']['address'] $} + 顧客様の削除 + 顧客様の編集 +{$ $addInfo = $data['data']['additional_data'] ?? [] $} +{$ $name = $data['data']['name'] ?? [] $} +{$ $phone = $data['data']['phone'] ?? [] $} +{$ $fax = $data['data']['fax'] ?? [] $} +{$ $addr = $data['data']['address'] ?? [] $}

連絡先:{{ $name['full_name'] }} ({{ $data['data']['handle'] }})

- + - + - + @@ -28,27 +27,27 @@ - + - + - + - + - + - +
ID{{ $data['data']['id'] }}{{ $data['data']['id'] ?? '' }}
リセラーID{{ $data['data']['reseller_id'] }}{{ $data['data']['reseller_id'] ?? '' }}
ハンドル{{ $data['data']['handle'] }}{{ $data['data']['handle'] ?? '' }}
イニシャル
フルネーム{{ $name['last_name'].' '.$name['first_name'] }}{{ ($name['last_name'] ?? '').' '.($name['first_name'] ?? '') }}
生まれた場所〒{{ $addInfo['birth_zipcode'].' '.$addInfo['birth_city'].' '.$addInfo['birth_address'].' '.$addInfo['birth_country'] }}〒{{ (!empty($fax) ? ($addInfo['birth_zipcode'] ?? '').' '.($addInfo['birth_city'] ?? '').' '.($addInfo['birth_address'] ?? '').' '.($addInfo['birth_country'] ?? '') : '') }}
生年月日{{ $addInfo['birth_date'] }}{{ $addInfo['birth_date'] ?? '' }}
電話番号{{ $phone['country_code'].$phone['area_code'].$phone['subscriber_number'] }}{{ (!empty($phone) ? ($phone['country_code'] ?? '').'-'.($phone['area_code'] ?? '').'-'.($phone['subscriber_number'] ?? '') : '') }}
FAX{{ $fax['country_code'].$fax['area_code'].$fax['subscriber_number'] }}{{ (!empty($fax) ? ($fax['country_code'] ?? '').'-'.($fax['area_code'] ?? '').'-'.($fax['subscriber_number'] ?? '') : '') }}
メールアドレス{{ $data['data']['email'] }}{{ $data['data']['email'] ?? '' }}
@@ -57,28 +56,28 @@ 会社名 - {{ $data['data']['company_name'] }} + {{ $data['data']['company_name'] ?? '' }} VAT番号 - {{ $data['data']['vat'] }} + {{ $data['data']['vat'] ?? '' }} 会社登録番号 - {{ $addInfo['company_registration_number'] }} + {{ $addInfo['company_registration_number'] ?? '' }} 会社登録場所 - {{ $addInfo['company_registration_city'] }} + {{ $addInfo['company_registration_city'] ?? '' }} 会社登録日 - {{ $addInfo['company_registration_subscription_date'] }} + {{ $addInfo['company_registration_subscription_date'] ?? '' }} {$ $link = $addInfo['company_url'] $} 会社URL - {{ $link }} + {{ $link ?? 'DUMMY' }} @@ -87,23 +86,23 @@ 道+番号 - {{ $addr['street'].$addr['number'].' '.$addr['suffix'] }} + {{ ($addr['street'].$addr['number'] ?? '').' '.($addr['suffix'] ?? '') }} 郵便番号 - {{ $addr['zipcode'] }} + {{ $addr['zipcode'] ?? '' }} 市区町村 - {{ $addr['city'] }} + {{ $addr['city'] ?? '' }} 都道府県 - {{ $addr['state'] }} + {{ $addr['state'] ?? '' }} 国 - {{ $addr['country'] }} + {{ $addr['country'] ?? '' }} 言語 @@ -111,7 +110,7 @@ 本社の場所 - 〒{{ $addInfo['headquarters_zipcode'].' '.$addInfo['headquarters_city'].' '.$addInfo['headquarters_address'].' '.$addInfo['headquarters_country'] }} + {{ !empty($addInfo) ? ('〒 '.($addInfo['headquarters_zipcode'] ?? '').' '.($addInfo['headquarters_city'] ?? '').' '.($addInfo['headquarters_address'] ?? '').' '.($addInfo['headquarters_country'] ?? '')) : '' }}