Backend\Core\Engine\Api::microsoftAddDevice PHP Method

microsoftAddDevice() public static method

Add a Microsoft device to a user.
public static microsoftAddDevice ( string $uri, string $email )
$uri string The uri of the channel opened for the device.
$email string The emailaddress for the user to link the device to.
    public static function microsoftAddDevice($uri, $email)
    {
        trigger_error('The api is deprecated and will be removed in version 5', E_USER_DEPRECATED);
        if (BaseAPI::isAuthorized()) {
            // redefine
            $uri = (string) $uri;
            // validate
            if ($uri == '') {
                BaseAPI::output(BaseAPI::BAD_REQUEST, array('message' => 'No uri-parameter provided.'));
            }
            if ($email == '') {
                BaseAPI::output(BaseAPI::BAD_REQUEST, array('message' => 'No email-parameter provided.'));
            }
            // we should tell the ForkAPI that we registered a device
            $publicKey = Model::get('fork.settings')->get('Core', 'fork_api_public_key', '');
            $privateKey = Model::get('fork.settings')->get('Core', 'fork_api_private_key', '');
            // validate keys
            if ($publicKey == '' || $privateKey == '') {
                BaseAPI::output(BaseAPI::BAD_REQUEST, array('message' => 'Invalid key for the Fork API, configure them in the backend.'));
            }
            try {
                // load user
                $user = new User(null, $email);
                // get current uris
                $uris = (array) $user->getSetting('microsoft_channel_uri');
                // not already in array?
                if (!in_array($uri, $uris)) {
                    $uris[] = $uri;
                }
                // require the class
                require_once PATH_LIBRARY . '/external/fork_api.php';
                // create instance
                $forkAPI = new \ForkAPI($publicKey, $privateKey);
                // make the call
                $forkAPI->microsoftRegisterDevice($uris);
                // store
                if (!empty($uris)) {
                    $user->setSetting('microsoft_channel_uri', $uris);
                }
            } catch (Exception $e) {
                BaseAPI::output(BaseAPI::FORBIDDEN, array('message' => 'Can\'t authenticate you.'));
            }
        }
    }