| Server IP : 34.87.99.72 / Your IP : 216.73.217.31 Web Server : Apache/2.4.46 (Unix) OpenSSL/1.1.1n System : Linux zlock-bitnami-lamp-prod-v2-vm 4.19.0-16-cloud-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 User : bitnami ( 1000) PHP Version : 7.4.18 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /opt/bitnami/apache/htdocs/app/app/Http/Controllers/ |
Upload File : |
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\Http\Services\LockerService;
use App\Http\Services\LockerMiddlewareService;
use App\Http\Requests\Lockers\ListRequest as LockerListRequest;
use App\Http\Requests\Lockers\UpdateRequest as LockerUpdateRequest;
use App\Http\Requests\Lockers\AssignPartnerRequest as LockerAssignPartnerRequest;
use App\Http\Requests\Lockers\AvailableBoxRequest as LockerAvailableBoxRequest;
use App\Http\Requests\IdOnlyRequest;
use App\Http\Requests\ParamIdRequest;
use Auth;
use DB;
class LockerController extends Controller
{
public function __construct(
LockerService $lockerService,
LockerMiddlewareService $lockerMiddlewareService
)
{
$this->lockerService = $lockerService;
$this->lockerMiddlewareService = $lockerMiddlewareService;
}
/**
* @OA\Get(
*
* path="/api/locker/list",
* operationId="lockerList",
* tags={"Locker"},
* summary="lockerList",
* security={
* {
* "open_key": {}
* },
* {
* "api_key": {}
* }
* },
* @OA\Parameter(
* name="itemsPerPage",
* description="itemsPerPage",
* in="query",
* @OA\Schema(
* type="string",
* default=""
* )
* ),
* @OA\Parameter(
* name="search",
* description="search",
* in="query",
* @OA\Schema(
* type="string",
* default=""
* )
* ),
* @OA\Parameter(
* name="searchBy",
* description="searchBy",
* in="query",
* @OA\Schema(
* type="string",
* default=""
* )
* ),
* @OA\Parameter(
* name="coordinate",
* description="coordinate",
* in="query",
* @OA\Schema(
* type="string",
* default="0,0"
* )
* ),
* @OA\Parameter(
* name="sortBy",
* description="sortBy",
* in="query",
* @OA\Schema(
* type="string",
* default=""
* )
* ),
* @OA\Parameter(
* name="sortDesc",
* description="sortDesc",
* in="query",
* @OA\Schema(
* type="string",
* default="1"
* )
* ),
* @OA\Response(
* response=200,
* description="Success",
* @OA\JsonContent()
* ),
* @OA\Response(response=400, description="Bad request"),
* @OA\Response(response=404, description="Resource Not Found"),
* @OA\Response(response=422, description="Unprocessable Entity"),
* @OA\Response(response=500, description="Internal Server Error"),
* )
*/
public function lockerList(LockerListRequest $request)
{
$header = $request->header();
$platform = $header["openkey"][0];
$payload = $request->validated();
if(Auth::user()->isSuperAdmin()){
}else if(Auth::user()->isPartner()){
$payload['partner_id'] = Auth::id();
}else{
$payload['is_connect'] = true;
$payload['get_bookable_hours'] = true;
$payload['sortBy'] = "name";
$request['sortDesc'] = false;
}
if($platform != "web")
$payload['is_connect'] = true;
$lockers = $this->lockerService->lockerList( $payload );
return self::successResponse('Success', $lockers );
}
public function exportLockerList(LockerListRequest $request)
{
$payload = $request->validated();
if(Auth::user()->isSuperAdmin()){
}else if(Auth::user()->isPartner()){
$payload['partner_id'] = Auth::id();
}else{
$payload['is_connect'] = true;
}
$fileUploader = $this->lockerService->exportLockerList( $payload );
return self::successResponse('Success', $fileUploader );
}
/**
* @OA\Get(
*
* path="/api/locker/info/{id}",
* operationId="lockerInfo",
* tags={"Locker"},
* summary="lockerInfo",
* security={
* {
* "open_key": {}
* },
* {
* "api_key": {}
* }
* },
* @OA\Parameter(
* name="id",
* description="id",
* in="path",
* @OA\Schema(
* type="string",
* default=""
* )
* ),
* @OA\Response(
* response=200,
* description="Success",
* @OA\JsonContent()
* ),
* @OA\Response(response=400, description="Bad request"),
* @OA\Response(response=404, description="Resource Not Found"),
* @OA\Response(response=422, description="Unprocessable Entity"),
* @OA\Response(response=500, description="Internal Server Error"),
* )
*/
public function lockerInfo(ParamIdRequest $request)
{
$locker = $this->lockerService->lockerInfo( $request->validated() );
return self::successResponse('Success', $locker );
}
/**
* @OA\Get(
*
* path="/api/locker/available-box",
* operationId="lockerAvailableBox",
* tags={"Locker"},
* summary="lockerAvailableBox",
* security={
* {
* "open_key": {}
* },
* {
* "api_key": {}
* }
* },
* @OA\Parameter(
* name="terminal_id",
* description="terminal_id",
* in="query",
* @OA\Schema(
* type="string",
* default=""
* )
* ),
* @OA\Response(
* response=200,
* description="Success",
* @OA\JsonContent()
* ),
* @OA\Response(response=400, description="Bad request"),
* @OA\Response(response=404, description="Resource Not Found"),
* @OA\Response(response=422, description="Unprocessable Entity"),
* @OA\Response(response=500, description="Internal Server Error"),
* )
*/
public function lockerAvailableBox(LockerAvailableBoxRequest $request)
{
$locker = $this->lockerService->lockerAvailableBox( $request->validated() );
return self::successResponse('Success', $locker );
}
public function lockerUpdate(LockerUpdateRequest $request)
{
$locker = DB::transaction(function () use ($request) {
return $this->lockerService->lockerUpdate( $request->validated() );
});
return self::successResponse('Success',$locker);
}
public function lockerDelete(IdOnlyRequest $request)
{
$locker = $this->lockerService->lockerDelete( $request->validated() );
return self::successResponse('Success',$locker);
}
public function lockerAssignPartner(LockerAssignPartnerRequest $request)
{
$locker = $this->lockerService->lockerAssignPartner( $request->validated() );
return self::successResponse('Success',$locker);
}
public function restartLocker(IdOnlyRequest $request)
{
$locker = $this->lockerMiddlewareService->restartLocker( $request->validated() );
return self::successResponse('Success',$locker);
}
public function lockerClearTerminalId(IdOnlyRequest $request)
{
$locker = $this->lockerService->lockerClearTerminalId( $request->validated() );
return self::successResponse('Success',$locker);
}
public function syncLocker(IdOnlyRequest $request)
{
$locker = $this->lockerMiddlewareService->syncLocker( $request->validated() );
return self::successResponse('Success',$locker);
}
}