# assistant/trunk/backend/src/Controllers/NotificationsController.php

Assistant – Every Day Productivity Apps, version trunk. 55 lines.

- Page: https://pluginprobe.com/plugins/assistant/trunk/code/backend/src/Controllers/NotificationsController.php
- Raw: https://pluginprobe.com/plugins/assistant/trunk/raw/backend/src/Controllers/NotificationsController.php
- Modified: 2025-05-14T21:06:46+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/assistant/trunk/code/backend/src/Controllers/NotificationsController.php#L10-L20`.

```php
<?php

namespace FL\Assistant\Controllers;

use FL\Assistant\System\Contracts\ControllerAbstract;
use WP_REST_Request;
use WP_REST_Server;

/**
 * REST API logic for notifications.
 */
final class NotificationsController extends ControllerAbstract {

	/**
	 * Register routes.
	 */
	public function register_routes() {
		$this->route(
			'/notifications/count', [
				[
					'methods'             => WP_REST_Server::READABLE,
					'callback'            => [ $this, 'count' ],
					'permission_callback' => function () {
						return is_user_logged_in();
					},
				],
			]
		);
	}

	/**
	 * Returns the notification count for the current user.
	 * @todo get these values from data service
	 */
	public function count( $request ) {
		$result = [
			'total' => 0,
		];

		// Comments count
		$request         = new WP_REST_Request( 'GET', '/fl-assistant/v1/comments/count' );
		$response        = rest_do_request( $request );
		$data            = $response->get_data();
		$result['total'] += isset( $data['pending'] ) ? $data['pending'] : 0;

		// Updates count
		$request         = new WP_REST_Request( 'GET', '/fl-assistant/v1/updates/count' );
		$response        = rest_do_request( $request );
		$data            = $response->get_data();
		$result['total'] += isset( $data['total'] ) ? $data['total'] : 0;

		return $result;
	}
}

```
