| | |
| | | Route::for('approvals') |
| | | ->get([$this, 'getApprovals']) |
| | | ->args([ |
| | | 'user' => 'integer|required', |
| | | 'type' => 'string', |
| | | 'status' => 'string|enum:pending,approved,rejected,expired', |
| | | ]) |
| | |
| | | ->rateLimit(30) |
| | | ->post([$this, 'handleAction']) |
| | | ->args([ |
| | | 'user' => 'integer|required', |
| | | 'request_id' => 'integer|required', |
| | | 'action' => 'string|required|enum:approve,reject', |
| | | 'type' => 'string|required', |
| | |
| | | { |
| | | $data = $request->get_params(); |
| | | $request_id = absint($data['request_id']); |
| | | $user_id = absint($data['user']); |
| | | $user_id = get_current_user_id(); |
| | | $action = sanitize_text_field($data['action']); |
| | | $type = sanitize_text_field($data['type']); |
| | | $notes = sanitize_text_field($data['notes'] ?? ''); |
| | |
| | | |
| | | public function getApprovals(WP_REST_Request $request): WP_REST_Response |
| | | { |
| | | $user_id = absint($request->get_param('user')); |
| | | $user_id = get_current_user_id(); |
| | | $type = sanitize_text_field($request->get_param('type') ?? 'all'); |
| | | $status = sanitize_text_field($request->get_param('status') ?? 'pending'); |
| | | |
| | | if (!$this->checkUser($user_id)) { |
| | | return $this->unauthorized(); |
| | | } |
| | | |
| | | $cacheKey = compact('user_id', 'type', 'status'); |
| | | |
| | | $result = $this->cache->remember($cacheKey, function() use ($type, $status) { |