44 lines
1.3 KiB
PHP
Executable file
44 lines
1.3 KiB
PHP
Executable file
<?php
|
|
|
|
namespace App\Http\Controllers\API;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\TravelBooking;
|
|
use App\Services\BookingImport;
|
|
|
|
class BookingController extends Controller
|
|
{
|
|
private int $successStatus = 200;
|
|
private string $successKey;
|
|
|
|
public function __construct()
|
|
{
|
|
$this->successKey = config('app.success_key');
|
|
}
|
|
|
|
public function import()
|
|
{
|
|
|
|
$request = \Request::all();
|
|
if (!isset($request['key']) || $request['key'] !== $this->successKey) {
|
|
return response()->json(['error' => "key"], 401);
|
|
}
|
|
$travel_booking = TravelBooking::find($request['travel_booking_id']);
|
|
|
|
if (!$travel_booking) {
|
|
return response()->json(['error' => 'no-booking-found'], $this->successStatus);
|
|
}
|
|
|
|
$booking = BookingImport::importFrom($travel_booking);
|
|
|
|
$ret = [
|
|
'url_v1' => make_old_url('/index.php/booking/' . $booking->id . '/edit'),
|
|
'url_v3' => route('booking_detail', $booking->id),
|
|
// API-Feld bleibt `lead_id` aus Abwärtskompatibilität für API-Konsumenten;
|
|
// Wert kommt nach Modul 3 Phase 2 aus booking.inquiry_id.
|
|
'lead_id' => $booking->inquiry_id
|
|
];
|
|
return response()->json(['success' => "import", "ret" => $ret], $this->successStatus);
|
|
|
|
}
|
|
}
|