|
@@ -0,0 +1,39 @@
|
|
|
|
+<?php
|
|
|
|
+
|
|
|
|
+namespace App\Http\Controllers\API;
|
|
|
|
+
|
|
|
|
+use App\Http\Controllers\Controller;
|
|
|
|
+use GuzzleHttp\Client;
|
|
|
|
+use GuzzleHttp\Exception\GuzzleException;
|
|
|
|
+use Illuminate\Http\Request;
|
|
|
|
+
|
|
|
|
+class OpenPlatformController extends Controller
|
|
|
|
+{
|
|
|
|
+ public function proxy(Request $request)
|
|
|
|
+ {
|
|
|
|
+ $client = new Client();
|
|
|
|
+ $path = $request->get('path');
|
|
|
|
+ $targetUrl = env('OPEN_PLATFORM_URL') . $path;
|
|
|
|
+ $method = $request->getMethod();
|
|
|
|
+ $headers = $request->headers->all();
|
|
|
|
+ $body = $request->getContent();
|
|
|
|
+
|
|
|
|
+ try {
|
|
|
|
+ $response = $client->request($method, $targetUrl, [
|
|
|
|
+ 'headers' => $headers,
|
|
|
|
+ 'body' => $body,
|
|
|
|
+ 'auth' => [
|
|
|
|
+ env('OPEN_PLATFORM_USERNAME'),
|
|
|
|
+ env('OPEN_PLATFORM_PASSWORD')
|
|
|
|
+ ]
|
|
|
|
+ ]);
|
|
|
|
+ $content = json_decode($response->getBody()->getContents(), true);
|
|
|
|
+ if ($response->getStatusCode() != 200) {
|
|
|
|
+ return $this->badRequest($content['message']);
|
|
|
|
+ }
|
|
|
|
+ return $this->success(['data' => $content['data']]);
|
|
|
|
+ } catch (GuzzleException $e) {
|
|
|
|
+ return $this->badRequest($e->getMessage());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|