12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- <?php
- /*
- * This file is part of the overtrue/wechat.
- *
- * (c) overtrue <i@overtrue.me>
- *
- * This source file is subject to the MIT license that is bundled
- * with this source code in the file LICENSE.
- */
- namespace EasyWeChat\OpenWork\SuiteAuth;
- use EasyWeChat\Kernel\Exceptions\RuntimeException;
- use EasyWeChat\Kernel\Traits\InteractsWithCache;
- use EasyWeChat\OpenWork\Application;
- /**
- * SuiteTicket.
- *
- * @author xiaomin <keacefull@gmail.com>
- */
- class SuiteTicket
- {
- use InteractsWithCache;
- /**
- * @var Application
- */
- protected $app;
- /**
- * SuiteTicket constructor.
- *
- * @param Application $app
- */
- public function __construct(Application $app)
- {
- $this->app = $app;
- }
- /**
- * @param string $ticket
- *
- * @return $this
- *
- * @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException
- * @throws \EasyWeChat\Kernel\Exceptions\RuntimeException
- * @throws \Psr\SimpleCache\InvalidArgumentException
- */
- public function setTicket(string $ticket)
- {
- $this->getCache()->set($this->getCacheKey(), $ticket, 1800);
- if (!$this->getCache()->has($this->getCacheKey())) {
- throw new RuntimeException('Failed to cache suite ticket.');
- }
- return $this;
- }
- /**
- * @return string
- *
- * @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException
- * @throws \EasyWeChat\Kernel\Exceptions\RuntimeException
- * @throws \Psr\SimpleCache\InvalidArgumentException
- */
- public function getTicket(): string
- {
- if ($cached = $this->getCache()->get($this->getCacheKey())) {
- return $cached;
- }
- throw new RuntimeException('Credential "suite_ticket" does not exist in cache.');
- }
- /**
- * @return string
- */
- protected function getCacheKey(): string
- {
- return 'easywechat.open_work.suite_ticket.'.$this->app['config']['suite_id'];
- }
- }
|