# assistant/0.3.1/backend/src/Controllers/CurrentUserController.php

Assistant – Every Day Productivity Apps, version 0.3.1. 45 lines.

- Page: https://pluginprobe.com/plugins/assistant/0.3.1/code/backend/src/Controllers/CurrentUserController.php
- Raw: https://pluginprobe.com/plugins/assistant/0.3.1/raw/backend/src/Controllers/CurrentUserController.php
- Modified: 2020-03-25T19:33:50+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/0.3.1/code/backend/src/Controllers/CurrentUserController.php#L10-L20`.

```php
<?php


namespace FL\Assistant\Controllers;


use FL\Assistant\Data\UserState;
use FL\Assistant\System\Contracts\ControllerAbstract;
use WP_REST_Request;
use WP_REST_Server;

class CurrentUserController extends ControllerAbstract {

	public function register_routes() {
		$this->route(
			'/current-user/state', [
				[
					'methods'             => WP_REST_Server::CREATABLE,
					'callback'            => [ $this, 'update_user_state' ],
					'args'                => [
						'state' => [
							'required' => true,
							'type'     => 'json',
						],
					],
					'permission_callback' => function () {
						return ! ! wp_get_current_user()->ID;
					},
				],
			]
		);
	}

	/**
	 * Updates the saved state for a user.
	 */
	public function update_user_state( WP_REST_Request $request ) {

		$state = $request->get_param( 'state' );
		UserState::update( $state );

		return rest_ensure_response( UserState::get() );
	}
}

```
