HEX
Server: Apache/2.4.65 (Debian)
System: Linux 88f31f35b0b8 6.1.0-38-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.147-1 (2025-08-02) x86_64
User: www-data (33)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: /var/www/html/wp-content/plugins/microsoft-start/routes/notificationApi.php
<?php
// © Microsoft Corporation. All rights reserved.

namespace microsoft_start\routes;

use microsoft_start\services\TokenService;

use microsoft_start\infrastructure\ApiController;
use microsoft_start\services\MSNClient;
use microsoft_start\services\Options;
use microsoft_start\infrastructure\Util;

use function PHPSTORM_META\type;

class notificationApi extends ApiController
{
    function register_routes()
    {
        register_rest_route('microsoft/v1', '/notification', [
            'methods' => 'GET',
            'permission_callback' => function () {
                return current_user_can('activate_plugins');
            },
            'callback' => function ($data) {
                $type = $data['type'];
                $response = MSNClient::get_notification($type);
                return $response;
            }
        ]);

        register_rest_route('microsoft/v1', '/dismiss-wp-notification', [
            'methods' => 'POST',
            'permission_callback' => function () {
                return current_user_can('activate_plugins');
            },
            'callback' => function ($data) {
                $parameters = $data->get_json_params();
                if ($parameters['type'] === 'publish_article') {
                    Options::set_dismissed_publish_to_MSPH_notification(true);
                } else if ($parameters['type'] === 'version_update') {
                    Options::set_dismissed_notification_version(Util::get_latest_plugin_version());
                } else if ($parameters['type'] === 'batch_submit_completed') {
                    Options::set_batch_submit_completed_notification(false);
                }
            }
        ]);

        register_rest_route('microsoft/v1', '/dismiss-msph-notification', [
            'methods' => 'POST',
            'permission_callback' => function () {
                return current_user_can('activate_plugins');
            },
            'callback' => function ($data) {
                $parameters = $data->get_json_params();
                return MSNClient::dismissMSPHNotification($parameters);
            }
        ]);
        
    }
}