Skip to content

Commit 87502ed

Browse files
committed
Merge branch 'master' into master8.3
2 parents b4808fd + 02c2f08 commit 87502ed

File tree

10 files changed

+249
-26
lines changed

10 files changed

+249
-26
lines changed

src/Commands/stubs/collection.plain.stub

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ class DummyClassCollection extends Collection
3434
public function __construct(mixed $array)
3535
{
3636
$newarray = [];
37-
foreach($array as $row) {
37+
foreach ($array as $row) {
3838
$newarray[] = $row instanceof DummyClass ? $row : new DummyClass((array) $row);
3939
}
4040
parent::__construct($newarray);
4141
}
42-
}
42+
}

src/Commands/stubs/controller.plain.stub

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,11 @@ use App\Usecases\DummyUsecase;
3535
*/
3636
class DummyClassController extends Controller
3737
{
38-
private $dummyUsecase;
39-
private $output;
38+
private DummyUsecase $dummyUsecase;
4039

4140
public function __construct(DummyUsecase $dummyUsecase)
4241
{
4342
parent::__construct();
4443
$this->dummyUsecase = $dummyUsecase;
45-
$this->output = new stdClass();
46-
$this->output->responseCode = '';
47-
$this->output->responseDesc = '';
4844
}
4945
}

src/Commands/stubs/model.plain.stub

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,19 +31,21 @@ use App\Collections\DummyClassCollection;
3131
*/
3232
class DummyClass extends Model
3333
{
34+
// phpcs:disable
3435
public $timestamps = false;
35-
3636
protected $fillable = [];
3737
protected $casts = [];
38+
// phpcs:enable
3839

3940
/**
4041
* Create a new Eloquent Collection instance.
4142
*
42-
* @param array $models
43+
* @param array $models
44+
*
4345
* @return \Illuminate\Database\Eloquent\Collection
4446
*/
4547
public function newCollection(array $models = [])
4648
{
4749
return new DummyClassCollection($models);
4850
}
49-
}
51+
}

src/Commands/stubs/service.plain.stub

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ declare(strict_types=1);
1515

1616
namespace App\Services;
1717

18+
use App\Models\Dtos\DummyClass;
19+
use App\Models\Dtos\DummyClassResponse;
1820
use App\Library\RestClient;
1921
use Spotlibs\PhpLib\Exceptions\StdException;
2022
use Spotlibs\PhpLib\Exceptions\ThirdPartyServiceException;
21-
use App\Models\Dtos\DummyClassResponse;
22-
use App\Models\Dtos\DummyClass;
2323

2424
/**
2525
* DummyClassService

src/Commands/stubs/usecase.plain.stub

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@ declare(strict_types=1);
1515

1616
namespace DummyNamespace;
1717

18-
use Illuminate\Http\Request;
19-
2018
/**
2119
* DummyClassUsecase
2220
*

src/Exceptions/Handler.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,13 @@ class Handler extends ExceptionHandler
4545
*
4646
* @var array
4747
*/
48-
protected array $dontReport = [
48+
// @phpcs:disable
49+
protected $dontReport = [
4950
AuthorizationException::class,
5051
HttpException::class,
5152
ValidationException::class
5253
];
54+
// @phpcs:enable
5355

5456
/**
5557
* Report or log an exception.

src/Libraries/Client.php

Lines changed: 70 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
use GuzzleHttp\Psr7\Request;
2020
use Psr\Http\Message\ResponseInterface;
2121
use Spotlibs\PhpLib\Exceptions\StdException;
22+
use Spotlibs\PhpLib\Services\Context;
23+
use Spotlibs\PhpLib\Services\Metadata;
2224

2325
/**
2426
* ClientTimeoutUnit
@@ -61,11 +63,77 @@ class Client extends BaseClient
6163
/**
6264
* Create a new Client instance.
6365
*
66+
* @param array<mixed> $config config of GuzzleHttp Client
67+
*
6468
* @return void
6569
*/
66-
public function __construct()
70+
public function __construct(array $config = [])
6771
{
68-
parent::__construct();
72+
parent::__construct($config);
73+
$context = app(Context::class);
74+
$meta = $context->get(Metadata::class);
75+
if (!is_null($meta)) {
76+
if (isset($meta->user_agent) && $meta->user_agent !== null) {
77+
$this->requestHeaders['User-Agent'] = $meta->user_agent;
78+
}
79+
if (isset($meta->cache_control) && $meta->cache_control !== null) {
80+
$this->requestHeaders['Cache-Control'] = $meta->cache_control;
81+
}
82+
if (isset($meta->forwarded_for) && $meta->forwarded_for !== null) {
83+
$this->requestHeaders['X-Forwarded-For'] = $meta->forwarded_for;
84+
}
85+
if (isset($meta->request_from) && $meta->request_from !== null) {
86+
$this->requestHeaders['X-Request-From'] = $meta->request_from;
87+
}
88+
if (isset($meta->device_id) && $meta->device_id !== null) {
89+
$this->requestHeaders['X-Device-ID'] = $meta->device_id;
90+
}
91+
if (isset($meta->app) && $meta->app !== null) {
92+
$this->requestHeaders['X-App'] = $meta->app;
93+
}
94+
if (isset($meta->version_app) && $meta->version_app !== null) {
95+
$this->requestHeaders['X-Version-App'] = $meta->version_app;
96+
}
97+
if (isset($meta->req_id) && $meta->req_id !== null) {
98+
$this->requestHeaders['X-Request-ID'] = $meta->req_id;
99+
}
100+
if (isset($meta->req_user) && $meta->req_user !== null) {
101+
$this->requestHeaders['X-Request-User'] = $meta->req_user;
102+
}
103+
if (isset($meta->req_nama) && $meta->req_nama !== null) {
104+
$this->requestHeaders['X-Request-Nama'] = $meta->req_nama;
105+
}
106+
if (isset($meta->req_kode_jabatan) && $meta->req_kode_jabatan !== null) {
107+
$this->requestHeaders['X-Request-Kode-Jabatan'] = $meta->req_kode_jabatan;
108+
}
109+
if (isset($meta->req_nama_jabatan) && $meta->req_nama_jabatan !== null) {
110+
$this->requestHeaders['X-Request-Nama-Jabatan'] = $meta->req_nama_jabatan;
111+
}
112+
if (isset($meta->req_kode_uker) && $meta->req_kode_uker !== null) {
113+
$this->requestHeaders['X-Request-Kode-Uker'] = $meta->req_kode_uker;
114+
}
115+
if (isset($meta->req_nama_uker) && $meta->req_nama_uker !== null) {
116+
$this->requestHeaders['X-Request-Nama-Uker'] = $meta->req_nama_uker;
117+
}
118+
if (isset($meta->req_jenis_uker) && $meta->req_jenis_uker !== null) {
119+
$this->requestHeaders['X-Request-Jenis-Uker'] = $meta->req_jenis_uker;
120+
}
121+
if (isset($meta->req_kode_main_uker) && $meta->req_kode_main_uker !== null) {
122+
$this->requestHeaders['X-Request-Kode-MainUker'] = $meta->req_kode_main_uker;
123+
}
124+
if (isset($meta->req_kode_region) && $meta->req_kode_region !== null) {
125+
$this->requestHeaders['X-Request-Kode-Region'] = $meta->req_kode_region;
126+
}
127+
if (isset($meta->path_gateway) && $meta->path_gateway !== null) {
128+
$this->requestHeaders['X-Path-Gateway'] = $meta->path_gateway;
129+
}
130+
if (isset($meta->authorization) && $meta->authorization !== null) {
131+
$this->requestHeaders['Authorization'] = $meta->authorization;
132+
}
133+
if (isset($meta->api_key) && $meta->api_key !== null) {
134+
$this->requestHeaders['X-Api-Key'] = $meta->api_key;
135+
}
136+
}
69137
}
70138

71139
/**

src/Libraries/ClientExternal.php

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
use Spotlibs\PhpLib\Exceptions\InvalidRuleException;
2323
use Spotlibs\PhpLib\Libraries\MapRoute;
2424
use Spotlibs\PhpLib\Logs\Log;
25+
use Spotlibs\PhpLib\Services\Context;
26+
use Spotlibs\PhpLib\Services\Metadata;
2527
use Throwable;
2628

2729
/**
@@ -77,11 +79,13 @@ class ClientExternal extends BaseClient
7779
/**
7880
* Create a new Client instance.
7981
*
82+
* @param array<mixed> $config config of GuzzleHttp Client
83+
*
8084
* @return void
8185
*/
82-
public function __construct()
86+
public function __construct(array $config = [])
8387
{
84-
parent::__construct();
88+
parent::__construct($config);
8589
}
8690

8791
/**
@@ -120,6 +124,8 @@ public function injectResponseHeader(array $headers): self
120124
*/
121125
public function call(Request $request, array $options = []): ResponseInterface
122126
{
127+
$context = app(Context::class);
128+
$metadata = $context->get(Metadata::class);
123129
$startime = microtime(true);
124130
$uri = $request->getUri();
125131
$url = $uri->getScheme() . "://" . $uri->getHost();
@@ -164,24 +170,27 @@ public function call(Request $request, array $options = []): ResponseInterface
164170
$respbody = "more than 5000 characters";
165171
}
166172
$logData = [
173+
'app_name' => env('APP_NAME'),
174+
'path' => is_null($metadata) ? null : $metadata->identifier,
167175
'host' => $request->getUri()->getHost(),
168176
'url' => $request->getUri()->getPath(),
169177
'request' => [
170178
'method' => $request->getMethod(),
171179
'headers' => $request->getHeaders(),
172180
],
173181
'response' => [
182+
'httpCode' => $response->getStatusCode(),
174183
'headers' => $response->getHeaders(),
175184
],
176185
'responseTime' => round($elapsed * 1000),
177186
'memoryUsage' => memory_get_usage()
178187
];
179-
if ($request->getHeader('Content-Type') == 'application/json') {
188+
if ($request->getHeader('Content-Type') == ['application/json']) {
180189
$logData['request']['body'] = json_decode($reqbody, true);
181190
} else {
182191
$logData['request']['body'] = $reqbody;
183192
}
184-
if ($response->getHeader('Content-Type') == 'application/json') {
193+
if ($response->getHeader('Content-Type') == ['application/json']) {
185194
$logData['response']['body'] = json_decode($respbody, true);
186195
} else {
187196
$logData['response']['body'] = $respbody;

0 commit comments

Comments
 (0)