55use Illuminate \Console \Command ;
66use Illuminate \Http \Client \PendingRequest ;
77use Illuminate \Support \Facades \Http ;
8- use Carbon \Carbon ;
9- //function for fetching the data
8+
109class FetchDataFromJiraQueueCommand extends Command
1110{
12- //You can run this signature in the terminal php artisan fetch:queue-jira-data
13- //This is meant for testing and inserting the data
1411 protected $ signature = 'dashboard:fetch-queue-jira-service-management-data ' ;
12+
1513 protected $ description = 'Fetch queue data using the Jira Service Management API ' ;
1614
17- public function handle ()
15+ public function handle (): int
1816 {
1917 $ data = [
2018 'queues ' => [],
2119 ];
2220
23- $ this ->info (" Fetching all queue data " );
21+ $ this ->info (' Fetching all queue data ' );
2422
2523 $ queues = $ this ->getQueues ();
2624
@@ -39,18 +37,19 @@ public function handle()
3937
4038 $ data ['issues_resolved_today ' ] = $ this ->getIssuesHandledTodayCount ();
4139
42- dump ($ data );
43-
4440 JiraQueueTileServiceManagementStore::make ()->setData ($ data );
41+
42+ return self ::SUCCESS ;
4543 }
4644
4745 private function getQueues (): array
4846 {
4947 $ queueResponse = $ this ->apiClient ()
50- ->get (config ('dashboard.tiles.jira_service_queues.jira_host ' ) . " /rest/servicedeskapi/servicedesk/4/queue " );
48+ ->get (config ('dashboard.tiles.jira_service_queues.jira_host ' ). ' /rest/servicedeskapi/servicedesk/4/queue ' );
5149
5250 if ($ queueResponse ->successful ()) {
5351 $ queuesData = $ queueResponse ->json ();
52+
5453 return $ queuesData ['values ' ];
5554 }
5655
@@ -66,16 +65,16 @@ private function getQueueIssueCount(string $queueId): int
6665 do {
6766 $ this ->info ("Fetching data for queue {$ queueId }, issue page: {$ issuePage }" );
6867 $ queueRepo = $ this ->apiClient ()
69- ->get (config ('dashboard.tiles.jira_service_queues.jira_host ' ) .
68+ ->get (config ('dashboard.tiles.jira_service_queues.jira_host ' ).
7069 "/rest/servicedeskapi/servicedesk/4/queue/ {$ queueId }/issue " , [
71- 'start ' => ($ issuePage - 1 ) * $ issuesPerPage ,
72- 'limit ' => $ issuesPerPage ,
73- ]);
70+ 'start ' => ($ issuePage - 1 ) * $ issuesPerPage ,
71+ 'limit ' => $ issuesPerPage ,
72+ ]);
7473
7574 if ($ queueRepo ->successful ()) {
7675 $ queueRepoData = $ queueRepo ->json ();
7776 $ issueData = $ queueRepoData ['values ' ] ?? [];
78- $ issueCount =+ count ($ issueData );
77+ $ issueCount = + count ($ issueData );
7978 } else {
8079 $ this ->error ("Failed to fetch issues for queue {$ queueId }. Status: {$ queueRepo ->status ()}" );
8180 break ;
@@ -89,8 +88,8 @@ private function getQueueIssueCount(string $queueId): int
8988 private function getIssuesHandledTodayCount (): ?int
9089 {
9190 $ issuesResponse = $ this ->apiClient ()
92- ->get (config ('dashboard.tiles.jira_service_queues.jira_host ' ) . " /rest/api/3/search " , [
93- 'jql ' => config ('dashboard.tiles.jira_service_queues.resolved_today_jql ' ),
91+ ->get (config ('dashboard.tiles.jira_service_queues.jira_host ' ). ' /rest/api/3/search ' , [
92+ 'jql ' => config ('dashboard.tiles.jira_service_queues.resolved_today_jql ' ),
9493 'maxResults ' => 1000 ,
9594 ]);
9695
@@ -107,10 +106,8 @@ private function apiClient(): PendingRequest
107106 {
108107 return Http::withHeaders ([
109108 'Accept ' => 'application/json ' ,
110- 'Authorization ' => 'Basic ' . base64_encode (config ('dashboard.tiles.jira_service_queues.jira_user ' ) . " : " .
109+ 'Authorization ' => 'Basic ' . base64_encode (config ('dashboard.tiles.jira_service_queues.jira_user ' ). ' : ' .
111110 config ('dashboard.tiles.jira_service_queues.jira_api_token ' )),
112111 ]);
113112 }
114-
115113}
116-
0 commit comments