| 1 |
<?php |
| 2 |
//if accessed directly exit |
| 3 |
if (!defined('ABSPATH')) exit; |
| 4 |
|
| 5 |
/** |
| 6 |
* @var $router \FluentBoards\Framework\Http\Router |
| 7 |
*/ |
| 8 |
|
| 9 |
$router->prefix('tasks')->withPolicy('AuthPolicy')->group(function ($router) { |
| 10 |
$router->get('/top-in-boards', 'TaskController@getTopTasksForBoards'); |
| 11 |
$router->get('/crm-associated-tasks/{associated_id}', 'TaskController@getAssociatedTasks')->int('associated_id'); |
| 12 |
$router->get('/stage/{task_id}', 'TaskController@getStageByTask'); //FUTURE: this api need to be relocated |
| 13 |
|
| 14 |
$router->post('/create-first-task', 'TaskController@createFirstTask'); |
| 15 |
$router->get('/boards-by-type/{type}', 'BoardController@getBoardsByType'); |
| 16 |
$router->get('/{task_id}/labels', 'TaskController@getLabelsByTask'); |
| 17 |
}); |
| 18 |
|
| 19 |
$router->withPolicy('BoardUserPolicy')->group(function ($router) { |
| 20 |
$router->get('/member-associated-users/{id}', 'UserController@memberAssociatedTaskUsers'); |
| 21 |
$router->get('/search-member-users/{id}', 'UserController@searchMemberUser'); |
| 22 |
$router->get('get-user-permissions', 'OptionsController@getUserPermission'); |
| 23 |
$router->get('ajax-options', 'OptionsController@selectorOptions'); |
| 24 |
$router->put('update-user-permissions', 'OptionsController@updatedUserPermission'); |
| 25 |
$router->post('set-permission-all-board-admin', 'OptionsController@SetUserPermissionAllBoardAdmin'); |
| 26 |
$router->delete('remove-user-from-board', 'OptionsController@removeUserFromBoard'); |
| 27 |
$router->get('/fluent-boards-users', 'UserController@allFluentBoardsUsers'); |
| 28 |
$router->get('/search-fluent-boards-users', 'UserController@searchFluentBoardsUser'); |
| 29 |
$router->post('update-global-notification-settings', 'OptionsController@updateGlobalNotificationSettings'); |
| 30 |
$router->get('get-global-notification-settings', 'OptionsController@getGlobalNotificationSettings'); |
| 31 |
$router->put('update-dashboard-view-settings', 'OptionsController@updateDashboardViewSettings'); |
| 32 |
$router->get('get-dashboard-view-settings', 'OptionsController@getDashboardViewSettings'); |
| 33 |
}); |
| 34 |
|
| 35 |
$router->prefix('projects')->withPolicy('AuthPolicy')->group(function ($router) { |
| 36 |
$router->get('/', 'BoardController@getBoards'); |
| 37 |
$router->post('/', 'BoardController@create'); |
| 38 |
$router->get('/get-default-board-colors', 'BoardController@getBoardDefaultBackgroundColors'); |
| 39 |
$router->get('/list-of-boards', 'BoardController@getBoardsList'); // it is using for to get all boards by user |
| 40 |
$router->get('/crm-associated-boards/{id}', 'BoardController@getAssociatedBoards')->int('associated_id'); |
| 41 |
$router->get('/currencies', 'BoardController@getCurrencies'); |
| 42 |
$router->get('/user-admin-in-boards', 'BoardController@getUsersOfBoards'); |
| 43 |
$router->get('/recent-boards', 'BoardController@getRecentBoards'); |
| 44 |
$router->post('/onboard', 'BoardController@createFirstBoard'); |
| 45 |
$router->put('/skip-onboarding', 'BoardController@skipOnboarding'); |
| 46 |
}); |
| 47 |
|
| 48 |
$router->prefix('projects/{board_id}')->withPolicy('SingleBoardPolicy')->group(function ($router) { |
| 49 |
$router->get('/', 'BoardController@find')->int('board_id'); |
| 50 |
$router->get('/has-data-changed', 'BoardController@hasDataChanged')->int('board_id'); |
| 51 |
$router->put('/update-board-properties', 'BoardController@updateBoardProperties')->int('board_id'); |
| 52 |
$router->put('/', 'BoardController@update')->int('board_id'); |
| 53 |
$router->delete('/', 'BoardController@delete')->int('board_id'); |
| 54 |
$router->get('/labels', 'LabelController@getLabelsByBoard'); |
| 55 |
$router->post('/labels', 'LabelController@createLabel'); |
| 56 |
$router->get('/labels/used-in-tasks', 'LabelController@getLabelsByBoardUsedInTasks'); |
| 57 |
$router->get('/tasks/{task_id}/labels', 'LabelController@getLabelsByTask'); //FUTURE: these api need to be relocated |
| 58 |
$router->post('/labels/task', 'LabelController@createLabelForTask'); |
| 59 |
$router->put('/labels/{label_id}', 'LabelController@editLabelofBoard'); |
| 60 |
$router->delete('/labels/{label_id}', 'LabelController@deleteLabelOfBoard'); |
| 61 |
$router->delete('/tasks/{task_id}/labels/{label_id}', 'LabelController@deleteLabelOfTask'); |
| 62 |
|
| 63 |
$router->get('/users', 'BoardController@getBoardUsers'); |
| 64 |
$router->post('/user/{user_id}/remove', 'BoardController@removeUserFromBoard')->int('board_id')->int('user_id'); |
| 65 |
$router->post('/add-members', 'BoardController@addMembersInBoard'); |
| 66 |
|
| 67 |
$router->get('/assignees', 'BoardController@getAssigneesByBoard')->int('board_id'); |
| 68 |
$router->get('/activities', 'BoardController@getActivities')->int('board_id'); |
| 69 |
|
| 70 |
$router->put('/stage-move-all-task', 'BoardController@moveAllTasks')->int('board_id'); |
| 71 |
$router->post('/stage-create', 'BoardController@createStage')->int('board_id'); |
| 72 |
$router->put('/stage/{stage_id}/sort-task', 'StageController@sortStageTasks')->int('board_id')->int('stage_id'); |
| 73 |
$router->put('/stage/{stage_id}/archive-all-task', 'BoardController@archiveAllTasksInStage')->int('board_id')->int('stage_id'); |
| 74 |
$router->put('/change-stage-position', 'BoardController@changePositionOfStage')->int('board_id'); |
| 75 |
$router->put('/re-position-stages', 'BoardController@rePositionStages')->int('board_id'); |
| 76 |
$router->put('/update-stage/{stage_id}', 'StageController@updateStage')->int('board_id'); //Todo:: will delete later |
| 77 |
$router->put('/update-stage-property/{stage_id}', 'StageController@updateStageProperty')->int('board_id'); |
| 78 |
$router->put('/archive-stage/{stage_id}', 'BoardController@archiveStage')->int('board_id'); |
| 79 |
$router->put('/stage-view/{stage_id}', 'BoardController@changeStageView')->int('board_id'); |
| 80 |
$router->put('/restore-stage/{stage_id}', 'BoardController@restoreStage')->int('board_id'); |
| 81 |
$router->put('/drag-stage', 'StageController@dragStage')->int('board_id'); |
| 82 |
$router->get('/archived-stages', 'BoardController@getArchivedStage')->int('board_id'); |
| 83 |
$router->get('/archived-tasks', 'TaskController@getArchivedTasks')->int('board_id'); |
| 84 |
$router->get('/stage-task-available-positions/{stage_id}', 'BoardController@getStageTaskAvailablePositions')->int('board_id')->int('stage_id'); |
| 85 |
|
| 86 |
$router->post('/crm-contact', 'BoardController@updateAssociateCrmContact')->int('board_id'); |
| 87 |
$router->get('/crm-contacts', 'BoardController@getAssociateCrmContacts')->int('board_id'); |
| 88 |
$router->delete('/crm-contact/{contact_id}', 'BoardController@deleteAssociateCrmContact')->int('board_id')->int('contact_id'); |
| 89 |
|
| 90 |
$router->get('/notification-settings', 'NotificationController@getBoardNotificationSettings')->int('board_id'); |
| 91 |
$router->put('/update-notification-settings', 'NotificationController@updateBoardNotificationSettings')->int('board_id'); |
| 92 |
|
| 93 |
$router->post('/duplicate-board', 'BoardController@duplicateBoard')->int('board_id'); |
| 94 |
$router->post('/import-from-board', 'BoardController@importFromBoard')->int('board_id'); |
| 95 |
|
| 96 |
$router->put('/upload/background', 'BoardController@setBoardBackground')->int('board_id'); |
| 97 |
$router->put('/archive-board', 'BoardController@archiveBoard')->int('board_id'); |
| 98 |
$router->put('/restore-board', 'BoardController@restoreBoard')->int('board_id'); |
| 99 |
|
| 100 |
|
| 101 |
|
| 102 |
//# Tasks under a single board routes |
| 103 |
//# Route prefix: /projects/{id}/tasks |
| 104 |
$router->prefix('/tasks')->group(function ($router) { |
| 105 |
$router->get('/', 'TaskController@getTasksByBoard')->int('board_id'); |
| 106 |
$router->get('/by-stage', 'TaskController@getTasksByBoardStage')->int('board_id'); |
| 107 |
$router->post('/', 'TaskController@create'); |
| 108 |
$router->get('/archived', 'TaskController@getArchivedTasks')->int('board_id'); |
| 109 |
$router->get('/{task_id}', 'TaskController@find')->int('board_id')->int('task_id')->int('task_id'); |
| 110 |
$router->put('/{task_id}', 'TaskController@updateTaskProperties')->int('board_id')->int('task_id'); |
| 111 |
$router->post('/{task_id}/dates', 'TaskController@updateTaskDates')->int('board_id')->int('task_id'); |
| 112 |
$router->put('/{task_id}/move-task', 'TaskController@moveTask')->int('board_id')->int('task_id'); |
| 113 |
$router->post('/update-cover-photo/{task_id}', 'TaskController@updateTaskCoverPhoto')->int('task_id'); |
| 114 |
$router->post('/status-update/{task_id}', 'TaskController@taskStatusUpdate')->int('task_id'); |
| 115 |
$router->delete('/{task_id}', 'TaskController@deleteTask')->int('board_id')->int('task_id'); |
| 116 |
$router->put('/{task_id}/move-to-next-stage', 'TaskController@moveTaskToNextStage')->int('board_id')->int('task_id'); |
| 117 |
|
| 118 |
// Comments Routes Area |
| 119 |
$router->get('/{task_id}/comments', 'CommentController@getComments')->int('board_id')->int('task_id'); |
| 120 |
$router->post('/{task_id}/comments', 'CommentController@create')->int('board_id')->int('task_id'); |
| 121 |
$router->put('/comments/{comment_id}', 'CommentController@update')->int('board_id')->int('comment_id'); |
| 122 |
$router->put('/reply/{reply_id}', 'CommentController@updateReply')->int('board_id')->int('reply_id'); |
| 123 |
$router->delete('/comments/{comment_id}', 'CommentController@deleteComment')->int('board_id')->int('comment_id'); |
| 124 |
$router->delete('/reply/{reply_id}', 'CommentController@deleteReply')->int('board_id')->int('reply_id'); |
| 125 |
|
| 126 |
|
| 127 |
// Activities Area |
| 128 |
$router->get('/{task_id}/activities', 'TaskController@getActivities')->int('board_id')->int('task_id'); |
| 129 |
|
| 130 |
$router->post('/{task_id}/assign-yourself', 'TaskController@assignYourselfInTask')->int('board_id')->int('task_id'); |
| 131 |
$router->post('/{task_id}/detach-yourself', 'TaskController@detachYourselfFromTask')->int('board_id')->int('task_id'); |
| 132 |
$router->get('/{task_id}/comments-and-activities', 'TaskController@getCommentsAndActivities')->int('board_id')->int('task_id'); |
| 133 |
$router->post('/{task_id}/comment-image-upload', 'CommentController@handleImageUpload')->int('board_id')->int('task_id'); |
| 134 |
$router->post('/{task_id}/wp-editor-media-file-upload', 'TaskController@uploadMediaFileFromWpEditor')->int('board_id')->int('task_id'); |
| 135 |
}); |
| 136 |
}); |
| 137 |
|
| 138 |
$router->prefix('admin')->withPolicy('AdminPolicy')->group(function ($router) { |
| 139 |
|
| 140 |
$router->get('/feature-modules', 'OptionsController@getAddonsSettings'); |
| 141 |
$router->post('/feature-modules', 'OptionsController@saveAddonsSettings'); |
| 142 |
$router->post('/feature-modules/install-plugin', 'OptionsController@installPlugin'); |
| 143 |
|
| 144 |
$router->get('/general-settings', 'OptionsController@getGeneralSettings'); |
| 145 |
$router->post('/general-settings', 'OptionsController@saveGeneralSettings'); |
| 146 |
|
| 147 |
$router->get('pages', 'OptionsController@getPages'); |
| 148 |
|
| 149 |
}); |
| 150 |
|
| 151 |
$router->prefix('webhooks')->withPolicy('WebhookPolicy')->group(function ($router) { |
| 152 |
$router->get('/', 'WebhookController@index'); |
| 153 |
$router->post('/', 'WebhookController@create'); |
| 154 |
$router->put('/{id}', 'WebhookController@update')->int('id'); |
| 155 |
$router->delete('/{id}', 'WebhookController@delete')->int('id'); |
| 156 |
}); |
| 157 |
|
| 158 |
|
| 159 |
$router->prefix('member/{id}')->withPolicy('UserPolicy')->group(function ($router) { |
| 160 |
$router->get('/', 'UserController@getMemberInfo'); |
| 161 |
$router->get('/projects', 'UserController@getMemberBoards'); |
| 162 |
$router->get('/tasks', 'UserController@getMemberAssociatedTasks'); |
| 163 |
$router->get('/activities', 'UserController@getMemberRelatedAcitivies'); |
| 164 |
}); |
| 165 |
|
| 166 |
/* |
| 167 |
* TODO: I guess we can minimize the number of routes. and Backend code needs to be refactored |
| 168 |
*/ |
| 169 |
|
| 170 |
$router->withPolicy('UserPolicy')->get('/all-notifications', 'NotificationController@getAllNotifications'); |
| 171 |
$router->withPolicy('UserPolicy')->get('/all-unread-notifications', 'NotificationController@getAllUnreadNotifications'); |
| 172 |
$router->withPolicy('UserPolicy')->get('notification/unread-count', 'NotificationController@newNotificationNumber'); |
| 173 |
$router->withPolicy('UserPolicy')->put('notification/read', 'NotificationController@readNotification'); |
| 174 |
$router->withPolicy('UserPolicy')->get('quick-search', 'OptionsController@quickSearch'); |
| 175 |
|
| 176 |
$router->prefix('options')->withPolicy('AuthPolicy')->group(function ($router) { |
| 177 |
$router->get('members', 'OptionsController@getBoardMembers'); |
| 178 |
$router->get('projects', 'OptionsController@getBoards'); |
| 179 |
}); |
| 180 |
|