diff --git a/app/Http/Controllers/V3/Dashboard/Harim/PanjareVahedController.php b/app/Http/Controllers/V3/Dashboard/Harim/PanjareVahedController.php index 9d5c065d..b38127b0 100644 --- a/app/Http/Controllers/V3/Dashboard/Harim/PanjareVahedController.php +++ b/app/Http/Controllers/V3/Dashboard/Harim/PanjareVahedController.php @@ -21,12 +21,16 @@ class PanjareVahedController extends Controller public function receiveNewRequest(ReceiveNewRequest $request): JsonResponse { - $iv = config('harim_web_services.Get_Info.iv'); - $keyString = config('harim_web_services.Get_Info.keyString'); + $iv = config('harim_web_services.Harim_Info.iv'); + $keyString = config('harim_web_services.Harim_Info.keyString'); $key = hash('sha256',$keyString, true); - $decrypted = openssl_decrypt($request->data, 'aes-256-cbc', $key, false, $iv); + $decrypted = openssl_decrypt($request->data,'aes-256-cbc',$key,false, $iv); + + $decodedString = json_decode($decrypted); + $decodedArray = json_decode($decodedString, true); + $wkt = 'POLYGON(('.implode(',', array_map(fn ($c) => "{$c[0]} {$c[1]}", $request->primary_area['coordinates'])).'))'; $result = DB::selectOne('SELECT ST_AsText(ST_PointOnSurface(ST_GeomFromText(?, 4326))) AS point', [$wkt]); @@ -69,8 +73,8 @@ class PanjareVahedController extends Controller 'response_options' => json_encode($request->response_options), 'isic' => $request->isic, 'primary_area' => json_encode($request->primary_area), - 'data' => $decrypted, - 'token' => $decrypted->token, + 'data' => $decodedString, + 'token' => $decodedArray['token'], ]); return response()->json([ diff --git a/app/Http/Requests/V3/Dashboard/Harim/PanjareVahed/ReceiveNewRequest.php b/app/Http/Requests/V3/Dashboard/Harim/PanjareVahed/ReceiveNewRequest.php index 3ddf8d7e..48871f1e 100644 --- a/app/Http/Requests/V3/Dashboard/Harim/PanjareVahed/ReceiveNewRequest.php +++ b/app/Http/Requests/V3/Dashboard/Harim/PanjareVahed/ReceiveNewRequest.php @@ -46,11 +46,21 @@ class ReceiveNewRequest extends FormRequest protected function failedValidation(Validator $validator) { - $response = response()->json([ - 'statusCode' => 422, - 'message' => 'invalid inputs', - 'errors' => $validator->errors(), - ], 422); + if ($validator->errors()->has('request_id') && str_contains($validator->errors()->first('request_id'), 'unique')) + { + $response = response()->json([ + 'statusCode' => 201, + 'message' => 'already stored', + ], 201); + } + else + { + $response = response()->json([ + 'statusCode' => 422, + 'message' => 'invalid inputs', + 'errors' => $validator->errors(), + ], 422); + } throw new HttpResponseException($response); } diff --git a/config/harim_web_services.php b/config/harim_web_services.php index 3c8268c6..437739e7 100644 --- a/config/harim_web_services.php +++ b/config/harim_web_services.php @@ -31,7 +31,7 @@ return [ 'username' => env('HARIM_NEED_GUARANTEE_LETTER_USERNAME'), ], - 'Get_Info' => [ + 'Harim_Info' => [ 'key' => env('HARIM_ENCRYPTION_KEY'), 'iv' => env('HARIM_ENCRYPTION_IV'), ],