| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- <?php
- namespace Overtrue\CosClient;
- use Overtrue\CosClient\Exceptions\InvalidConfigException;
- use Overtrue\CosClient\Support\XML;
- class JobClient extends Client
- {
- /**
- * @param \Overtrue\CosClient\Config|array $config
- *
- * @throws \Overtrue\CosClient\Exceptions\InvalidConfigException
- */
- public function __construct($config)
- {
- if (!($config instanceof Config)) {
- $config = new Config($config);
- }
- $this->validateConfig($config);
- parent::__construct($config);
- $this->setBaseUri(\sprintf(
- 'https://%s.cos-control.%s.myqcloud.com/',
- $config->get('uin'),
- $config->get('region')
- ));
- $this->setHeader('x-cos-appid', $config->get('app_id'));
- }
- /**
- * @param array $query
- *
- * @return \Overtrue\CosClient\Http\Response
- */
- public function getJobs(array $query = [])
- {
- return $this->get('/jobs', [
- 'query' => $query,
- ]);
- }
- /**
- * @param array $body
- *
- * @return \Overtrue\CosClient\Http\Response
- */
- public function createJob(array $body)
- {
- return $this->post('/jobs', [
- 'body' => XML::fromArray($body),
- ]);
- }
- /**
- * @param string $id
- *
- * @return \Overtrue\CosClient\Http\Response
- */
- public function describeJob(string $id)
- {
- return $this->get(\sprintf('/jobs/%s', $id));
- }
- /**
- * @param string $id
- * @param int $priority
- *
- * @return \Overtrue\CosClient\Http\Response
- */
- public function updateJobPriority(string $id, int $priority)
- {
- return $this->post(\sprintf('/jobs/%s/priority', $id), [
- 'query' => [
- 'priority' => $priority,
- ],
- ]);
- }
- /**
- * @param string $id
- * @param array $query
- *
- * @return \Overtrue\CosClient\Http\Response
- */
- public function updateJobStatus(string $id, array $query)
- {
- return $this->post(\sprintf('/jobs/%s/status', $id), \compact('query'));
- }
- /**
- * @param \Overtrue\CosClient\Config $config
- *
- * @throws \Overtrue\CosClient\Exceptions\InvalidConfigException
- */
- protected function validateConfig(Config $config)
- {
- if (!$config->has('uin')) {
- throw new InvalidConfigException('Invalid config uin.');
- }
- if (!$config->has('region')) {
- throw new InvalidConfigException('Invalid config region.');
- }
- }
- }
|