diff --git a/app/Http/Controllers/OpenAPI/TaskSchedulerSchema.php b/app/Http/Controllers/OpenAPI/TaskSchedulerSchema.php new file mode 100644 index 000000000000..59f6c999a8b4 --- /dev/null +++ b/app/Http/Controllers/OpenAPI/TaskSchedulerSchema.php @@ -0,0 +1,51 @@ +service()->store($scheduler, $request); } + /** + * @OA\GET( + * path="/api/v1/task_scheduler/{scheduler}", + * operationId="showTaskScheduler", + * tags={"task_scheduler"}, + * summary="Show given scheduler", + * description="Get scheduler with associated job", + * @OA\Parameter(ref="#/components/parameters/X-Api-Secret"), + * @OA\Parameter(ref="#/components/parameters/X-Requested-With"), + * @OA\Response( + * response=200, + * description="success", + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), + * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), + * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), + * ), + * @OA\Response( + * response="default", + * description="Unexpected Error", + * @OA\JsonContent(ref="#/components/schemas/Error"), + * ), + * ) + */ + public function show(Scheduler $scheduler): Scheduler { return $scheduler; } /** - * @param \App\Models\Scheduler $scheduler - * @param \App\Http\Requests\TaskScheduler\UpdateScheduleRequest $request - * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response + * @OA\PUT( + * path="/api/v1/task_scheduler/{scheduler}", + * operationId="updateTaskScheduler", + * tags={"task_scheduler"}, + * summary="Update task scheduler ", + * description="Update task scheduler", + * @OA\Parameter(ref="#/components/parameters/X-Api-Secret"), + * @OA\Parameter(ref="#/components/parameters/X-Requested-With"), + * @OA\RequestBody( + * required=true, + * @OA\JsonContent(ref="#/components/schemas/UpdateTaskSchedulerSchema") + * ), + * @OA\Response( + * response=200, + * description="success", + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), + * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), + * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), + * ), + * @OA\Response( + * response=422, + * description="Validation error", + * @OA\JsonContent(ref="#/components/schemas/ValidationError"), + * ), + * @OA\Response( + * response="default", + * description="Unexpected Error", + * @OA\JsonContent(ref="#/components/schemas/Error"), + * ), + * ) */ public function update(Scheduler $scheduler, UpdateScheduleRequest $request) { return $scheduler->service()->update($scheduler, $request); } - + /** + * @OA\PUT( + * path="/api/v1/task_scheduler/{scheduler}/update_job/", + * operationId="updateTaskSchedulerJob", + * tags={"task_scheduler"}, + * summary="Update job for a task scheduler ", + * description="Update job for a task scheduler | if we are changing action for a job, we should send the request for a new job same as we are creating new scheduler", + * @OA\Parameter(ref="#/components/parameters/X-Api-Secret"), + * @OA\Parameter(ref="#/components/parameters/X-Requested-With"), + * @OA\RequestBody( + * required=true, + * @OA\JsonContent(ref="#/components/schemas/UpdateJobForASchedulerSchema") + * ), + * @OA\Response( + * response=200, + * description="success", + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), + * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), + * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), + * ), + * @OA\Response( + * response=422, + * description="Validation error", + * @OA\JsonContent(ref="#/components/schemas/ValidationError"), + * ), + * @OA\Response( + * response="default", + * description="Unexpected Error", + * @OA\JsonContent(ref="#/components/schemas/Error"), + * ), + * ) + */ public function updateJob(Scheduler $scheduler, UpdateScheduledJobRequest $request) { return $scheduler->service()->updateJob($scheduler, $request); } - + /** + * @OA\DELETE( + * path="/api/v1/task_scheduler/{scheduler}", + * operationId="destroyTaskScheduler", + * tags={"task_scheduler"}, + * summary="Destroy Task Scheduler", + * description="Destroy task scheduler and its associated job", + * @OA\Parameter(ref="#/components/parameters/X-Api-Secret"), + * @OA\Parameter(ref="#/components/parameters/X-Requested-With"), + * @OA\Response( + * response=200, + * description="success", + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), + * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), + * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), + * ), + * @OA\Response( + * response="default", + * description="Unexpected Error", + * @OA\JsonContent(ref="#/components/schemas/Error"), + * ), + * ) + */ public function destroy(Scheduler $scheduler) { return $scheduler->service()->destroy($scheduler); diff --git a/app/Http/Requests/TaskScheduler/UpdateScheduleRequest.php b/app/Http/Requests/TaskScheduler/UpdateScheduleRequest.php index 28e9cf47319a..a951ee72d9f9 100644 --- a/app/Http/Requests/TaskScheduler/UpdateScheduleRequest.php +++ b/app/Http/Requests/TaskScheduler/UpdateScheduleRequest.php @@ -35,7 +35,6 @@ class UpdateScheduleRequest extends Request 'archived' => 'sometimes|bool', 'repeat_every' => 'sometimes|string|in:DAY,WEEK,MONTH,3MONTHS,YEAR', 'start_from' => 'sometimes|string', - 'job' => 'sometimes|string', ]; } }