Merge pull request #20 from witelgroup/feature/HarimPayment

Feature/harim payment
This commit is contained in:
Amir Ghasempoor
2025-09-08 11:18:28 +03:30
committed by GitHub
6 changed files with 123 additions and 1 deletions

View File

@@ -3,6 +3,7 @@
namespace App\Http\Controllers\V2\Dashboard;
use App\Http\Controllers\Controller;
use App\Jobs\UpdateRoadObservedInfoByNikarayanJob;
use App\Services\NikarayanService;
use Illuminate\Http\Request;
use Hekmatinasser\Verta\Verta;
@@ -570,7 +571,8 @@ class RoadObservationController extends Controller
// }
// $url = "https://riws.rmto.ir/WebServices/NRPTrafficStatus.asmx?wsdl";
try {
$result = $nikarayanService->updateRoadObservedInfoByNikarayan($request, $roadObserved, $files_path);
// $result = $nikarayanService->updateRoadObservedInfoByNikarayan($request, $roadObserved, $files_path);
$result = UpdateRoadObservedInfoByNikarayanJob::dispatch($request, $roadObserved, $files_path);
} catch (SoapFault $e) {
$msg = "error in send to nikarayan at" . date("Y-m-d H:i:s") . "\n" . 'rms: error in get road observation webservice babe!!!!' . "\n";

View File

@@ -0,0 +1,47 @@
<?php
namespace App\Jobs;
use App\Models\NikarayanFault;
use App\Models\RoadObserved;
use App\Services\NikarayanService;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Http\Request;
use Illuminate\Queue\SerializesModels;
use SoapFault;
use Throwable;
class UpdateRoadObservedInfoByNikarayanJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public $queue = 'nikarayan';
/**
* Create a new job instance.
*/
public function __construct(public Request $request, public RoadObserved $roadObserved, public $files) {}
/**
* Execute the job.
* @throws SoapFault
*/
public function handle(NikarayanService $nikarayanService)
{
return $nikarayanService->updateRoadObservedInfoByNikarayan($this->request, $this->roadObserved, $this->files);
}
/**
* Handle a job failure.
*/
public function failed(?Throwable $exception): void
{
NikarayanFault::query()->create([
'road_observed_id' => $this->roadObserved->id,
'response' => $exception->getMessage(),
]);
}
}

View File

@@ -0,0 +1,19 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class NikarayanFault extends Model
{
use HasFactory;
protected $guarded = [];
public function roadObserved(): BelongsTo
{
return $this->belongsTo(RoadObserved::class);
}
}

View File

@@ -5,6 +5,7 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphToMany;
use Illuminate\Support\Facades\Storage;
@@ -136,4 +137,9 @@ class RoadObserved extends Model
'mission_id',
);
}
public function nikarayanFaults(): HasMany
{
return $this->hasMany(NikarayanFault::class);
}
}

View File

@@ -0,0 +1,18 @@
<?php
namespace Database\Factories;
use App\Models\NikarayanFault;
use Illuminate\Database\Eloquent\Factories\Factory;
class NikarayanFaultFactory extends Factory
{
protected $model = NikarayanFault::class;
public function definition(): array
{
return [
];
}
}

View File

@@ -0,0 +1,30 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('nikarayan_faults', function (Blueprint $table) {
$table->id();
$table->foreignId('road_observed_id')->constrained('road_observeds');
$table->text('response');
$table->timestamps()->default(DB::raw('CURRENT_TIMESTAMP'));
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('nikarayan_faults');
}
};