Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
54.55% covered (warning)
54.55%
6 / 11
60.00% covered (warning)
60.00%
3 / 5
CRAP
0.00% covered (danger)
0.00%
0 / 1
IssueResource
54.55% covered (warning)
54.55%
6 / 11
60.00% covered (warning)
60.00%
3 / 5
7.35
0.00% covered (danger)
0.00%
0 / 1
 __construct
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 create
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
1 / 1
1
 update
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 get
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
2
 transition
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace Javidnikoo\LaravelAtlassian\Jira\Features\Issue\Resource;
4
5use Javidnikoo\LaravelAtlassian\Jira\Clients\JiraClient;
6use Javidnikoo\LaravelAtlassian\Jira\Features\Issue\Models\Issue;
7use Javidnikoo\LaravelAtlassian\Jira\Features\Issue\Requests\IssueCreateRequest;
8use Javidnikoo\LaravelAtlassian\Jira\Features\Issue\Requests\IssueTransitionRequest;
9use Javidnikoo\LaravelAtlassian\Jira\Features\Issue\Requests\IssueUpdateRequest;
10
11class IssueResource
12{
13    public function __construct(protected JiraClient $client) {}
14
15    public function create(IssueCreateRequest $request): Issue
16    {
17        $endpoint = 'rest/api/3/issue';
18        $response = $this->client->post($endpoint, $request->toArray());
19
20        return Issue::fromArray($response);
21    }
22
23    public function update(IssueUpdateRequest $request): void
24    {
25        $endpoint = 'rest/api/3/issue/'.$request->getIdOrKey();
26        $this->client->put($endpoint, $request->toArray());
27    }
28
29    public function get(string $idOrKey): Issue
30    {
31        $endpoint = 'rest/api/3/issue/'.$idOrKey;
32        $response = $this->client->get($endpoint);
33
34        return Issue::fromArray($response);
35    }
36
37    public function transition(IssueTransitionRequest $request): void
38    {
39        $endpoint = 'rest/api/3/issue/'.$request->getIdOrKey().'/transitions';
40        $this->client->post($endpoint, $request->toArray());
41    }
42}