Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
1 / 1
n/a
0 / 0
CRAP
n/a
0 / 0
1<?php
2
3declare(strict_types=1);
4
5/** @license For full copyright and license information, please see the LICENSE.md file. */
6
7namespace App\Modules\Dashboard\Presentation\Api;
8
9defined('AMMONLY_APP') || exit('Direct script access is forbidden.');
10
11use App\Core\Engine\Domain\Model\PermissionContext;
12use Psr\Http\Message\ResponseInterface;
13use Psr\Http\Message\ServerRequestInterface;
14
15/**
16 * Contract for Dashboard REST API Controller.
17 *
18 * @package App\Modules\Dashboard\Presentation\Api
19 */
20interface DashboardApiControllerInterface
21{
22    /**
23     * Returns catalog of available dashboard widgets with active status for current user.
24     *
25     * @param ServerRequestInterface $request PSR-7 server request.
26     * @param PermissionContext      $context Security permission context.
27     * @return ResponseInterface JSON API response.
28     */
29    public function actionWidgets(ServerRequestInterface $request, PermissionContext $context): ResponseInterface;
30
31    /**
32     * Toggles visibility of a dashboard widget for current user.
33     *
34     * @param ServerRequestInterface $request PSR-7 server request.
35     * @param PermissionContext      $context Security permission context.
36     * @return ResponseInterface JSON API response.
37     */
38    public function actionToggle(ServerRequestInterface $request, PermissionContext $context): ResponseInterface;
39
40    /**
41     * Returns list of current calendar events for widget.
42     *
43     * @param ServerRequestInterface $request PSR-7 server request.
44     * @param PermissionContext      $context Security permission context.
45     * @return ResponseInterface JSON API response.
46     */
47    public function actionCurrentEvents(
48        ServerRequestInterface $request,
49        PermissionContext      $context
50    ): ResponseInterface;
51
52    /**
53     * Returns list of overdue calendar events for widget.
54     *
55     * @param ServerRequestInterface $request PSR-7 server request.
56     * @param PermissionContext      $context Security permission context.
57     * @return ResponseInterface JSON API response.
58     */
59    public function actionOverdueEvents(
60        ServerRequestInterface $request,
61        PermissionContext      $context
62    ): ResponseInterface;
63
64    /**
65     * Returns details for a single calendar event.
66     *
67     * @param ServerRequestInterface $request PSR-7 server request.
68     * @param int                    $id      Calendar record ID.
69     * @param PermissionContext      $context Security permission context.
70     * @return ResponseInterface JSON API response.
71     */
72    public function actionEventDetails(
73        ServerRequestInterface $request,
74        int                    $id,
75        PermissionContext      $context
76    ): ResponseInterface;
77
78    /**
79     * Performs a lifecycle action (complete, cancel, postpone) on a calendar event.
80     *
81     * @param ServerRequestInterface $request PSR-7 server request.
82     * @param int                    $id      Calendar record ID.
83     * @param PermissionContext      $context Security permission context.
84     * @return ResponseInterface JSON API response.
85     */
86    public function actionEventAction(
87        ServerRequestInterface $request,
88        int                    $id,
89        PermissionContext      $context
90    ): ResponseInterface;
91}