Merge branch 'schedule-update-backend' into 'master'

schedule-update-delete-backend

See merge request CIEFWorldwideSdnBhd/izyim!35
This commit is contained in:
omair saleh
2019-07-20 03:00:03 +00:00
8 changed files with 230 additions and 2 deletions
@@ -0,0 +1,43 @@
<?php
/**
* Created by PhpStorm.
* User: mhmj
* Date: 18/06/2019
* Time: 10:10 AM
*/
namespace App\Classes\Modules\ControllersLogic\Orders;
use App\Classes\Modules\ControllerLogic\Exceptions\InternalServerErrorException;
use App\Classes\Modules\Orders\Services\DeletesOrderSchedule;
use App\Classes\ValueObjects\Constants\HttpStatus;
use Illuminate\Http\JsonResponse;
class DeleteOrderScheduleLogic
{
/** @var DeletesOrderSchedule */
private $deletesOrderSchedule;
/**
* DeleteOrderScheduleLogic constructor.
* @param DeletesOrderSchedule $deletesOrderSchedule
*/
public function __construct(DeletesOrderSchedule $deletesOrderSchedule)
{
$this->deletesOrderSchedule = $deletesOrderSchedule;
}
public function execute(String $scheduleId){
try{
return $this->deletesOrderSchedule->execute($scheduleId);
return new JsonResponse([],HttpStatus::REQUEST_ACCEPTED);
}catch(\Exception $exception){
throw new InternalServerErrorException("Failed to delete schedule because {$exception->getMessage()}");
}
}
}
@@ -0,0 +1,48 @@
<?php
/**
* Created by PhpStorm.
* User: mhmj
* Date: 17/06/2019
* Time: 10:18 AM
*/
namespace App\Classes\Modules\ControllersLogic\Orders;
use App\Classes\Modules\ControllerLogic\Exceptions\InternalServerErrorException;
use App\Classes\Modules\Orders\DataTransferObjects\ScheduleObject;
use App\Classes\Modules\Orders\Services\UpdateOrderSchedule;
use App\Classes\ValueObjects\Constants\HttpStatus;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class UpdateOrderScheduleLogic
{
/** @var UpdateOrderSchedule */
private $updateOrderSchedule;
/**
* UpdateOrderScheduleLogic constructor.
* @param UpdateOrderSchedule $updateOrderSchedule
*/
public function __construct(UpdateOrderSchedule $updateOrderSchedule)
{
$this->updateOrderSchedule = $updateOrderSchedule;
}
public function execute(String $scheduleId, Request $request){
try{
$scheduleObject = new ScheduleObject($request->input('ETA'), $request->input('ETD'),
$request->input('type'), $request->input('issue_remark'));
return $this->updateOrderSchedule->execute($scheduleId,$scheduleObject);
return new JsonResponse([],HttpStatus::REQUEST_ACCEPTED);
}catch(\Exception $exception){
throw new InternalServerErrorException("Failed to update schedule because {$exception->getMessage()}");
}
}
}
@@ -0,0 +1,44 @@
<?php
/**
* Created by PhpStorm.
* User: mhmj
* Date: 18/06/2019
* Time: 10:11 AM
*/
namespace App\Classes\Modules\Orders\Services;
use App\Classes\Modules\ControllerLogic\Exceptions\InternalServerErrorException;
use App\Classes\ValueObjects\Constants\HttpStatus;
use App\Models\Schedule;
use Illuminate\Http\JsonResponse;
class DeletesOrderSchedule
{
/** @var Schedule */
private $repository;
/**
* DeletesOrderSchedule constructor.
* @param Schedule $repository
*/
public function __construct(Schedule $repository)
{
$this->repository = $repository;
}
public function execute(String $scheduleId){
try{
$schedule = $this->repository->findOrfail($scheduleId);
$schedule -> delete();
return new JsonResponse([],HttpStatus::OK);
}catch(\Exception $exception){
throw new InternalServerErrorException("Failed to delete schedule because {$exception->getMessage()}");
}
}
}
@@ -0,0 +1,50 @@
<?php
/**
* Created by PhpStorm.
* User: mhmj
* Date: 17/06/2019
* Time: 10:28 AM
*/
namespace App\Classes\Modules\Orders\Services;
use App\Classes\Modules\ControllerLogic\Exceptions\InternalServerErrorException;
use App\Classes\Modules\Orders\DataTransferObjects\ScheduleObject;
use App\Classes\ValueObjects\Constants\HttpStatus;
use App\Models\Schedule;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class UpdateOrderSchedule
{
/** @var Schedule */
private $repository;
/**
* UpdateOrderSchedule constructor.
* @param Schedule $repository
*/
public function __construct(Schedule $repository)
{
$this->repository = $repository;
}
public function execute(String $scheduleId, ScheduleObject $schedule){
try{
$repository = $this->repository->findOrFail($scheduleId);
$repository->ETD = $schedule->getETD();
$repository->ETA = $schedule->getETA();
$repository->issue_remark = $schedule->getIssue();
$repository->save();
return new JsonResponse([],HttpStatus::OK);
}catch(\Exception $exception){
throw new InternalServerErrorException("Failed to update schedule because {$exception->getMessage()}");
}
}
}
@@ -0,0 +1,20 @@
<?php
/**
* Created by PhpStorm.
* User: mhmj
* Date: 18/06/2019
* Time: 10:09 AM
*/
namespace App\Http\Controllers\Orders;
use App\Classes\Modules\ControllersLogic\Orders\DeleteOrderScheduleLogic;
class DeleteOrderScheduleController
{
public function delete(String $scheduleId, DeleteOrderScheduleLogic $logic){
return $logic->execute($scheduleId);
}
}
@@ -0,0 +1,21 @@
<?php
/**
* Created by PhpStorm.
* User: mhmj
* Date: 17/06/2019
* Time: 10:17 AM
*/
namespace App\Http\Controllers\Orders;
use App\Classes\Modules\ControllersLogic\Orders\UpdateOrderScheduleLogic;
use Illuminate\Http\Request;
class UpdateOrderScheduleController
{
public function update(String $scheduleId, Request $request, UpdateOrderScheduleLogic $logic){
return $logic->execute($scheduleId,$request);
}
}
+1
View File
@@ -16,6 +16,7 @@ class Schedule extends JsonResource
public function toArray($request)
{
return [
'id' => (int)$this->id,
'ETD' => carbon::parse($this->ETD)->format('d-m-Y'),
'ETA' => carbon::parse($this->ETA)->format('d-m-Y'),
'status' => (int)$this->status,
+3 -2
View File
@@ -138,12 +138,13 @@ Route::group(['middleware' => 'api', 'prefix' => 'v1', 'as' => 'api.'], function
Route::post('/{orderId}/delivery-arrangement', 'UpdateDeliveryArrangementController@update')->name('delivery.update');
});
Route::post('/{orderId}/address','UpdateOrderAddressController@update')->name('address.order.update');
Route::post('/{orderId}/update-receive-note', 'UpdateReceiveNoteController@update')->name('receive.note.update');
Route::post('/{scheduleId}/update-order-schedule','UpdateOrderScheduleController@update')->name('schedule.update');
Route::delete('/{scheduleId}/delete-order-schedule','DeleteOrderScheduleController@delete')->name('schedule.delete');
});
// Service Routes