Files
pkrstarsbot/code-snippets/client_webapp/api.php
2021-02-17 19:24:36 +01:00

116 lines
3.0 KiB
PHP

<?php
add_action( 'rest_api_init', 'register_api_client' );
function register_api_client() {
register_rest_route('client/v1', 'streamdelay', [
'methods' => 'POST',
'callback' => 'streamdelay',
'args' => array(
'delay' => array(
'validate_callback' => 'validate_numeric',
'required' => true,
),
'dbuserid' => array(
'validate_callback' => 'validate_numeric',
'required' => true,
),
),
'permission_callback' => function() {
return is_user_logged_in();
},
] );
register_rest_route('client/v1', 'dbuserid', [
'methods' => 'POST',
'callback' => 'dbuserid',
'args' => array(
'email' => array(
'validate_callback' => 'validate_emailaddress',
'required' => true,
),
),
'permission_callback' => function() {
return is_user_logged_in();
},
] );
register_rest_route('client/v1', 'dbuseridwp', [
'methods' => 'POST',
'callback' => 'dbuseridwp',
'args' => array(
'wp_user_id' => array(
'validate_callback' => 'validate_numeric',
'required' => true,
),
),
'permission_callback' => function() {
return is_user_logged_in();
},
] );
register_rest_route('client/v1', 'logoutuser', [
'methods' => 'POST',
'callback' => 'logoutuser',
'permission_callback' => function() {
return is_user_logged_in();
},
] );
}
function validate_emailaddress($param, $request, $key) {
return filter_var($param, FILTER_VALIDATE_EMAIL) !== false;
}
function validate_numeric($param, $request, $key) {
return is_numeric($param);
}
function logoutuser() {
wp_logout();
$response = new WP_REST_Response("foobar");
$response->set_status(200);
return $response;
}
function dbuseridwp($request) {
$wp_user_id = $request->get_param('wp_user_id');
$wpdb = connect_to_server('zinomedia');
$db_user_id = $wpdb->get_var( $wpdb->prepare( "SELECT ID from reg_users where WP_ID = %d", $wp_user_id ) );
$response = new WP_REST_Response($db_user_id);
$response->set_status(200);
return $response;
}
function dbuserid($request) {
$email = $request->get_param('email');
$wpdb = connect_to_server('zinomedia');
$db_user_id = $wpdb->get_var( $wpdb->prepare( "SELECT ID from reg_users where EMail = %s", $email ) );
$response = new WP_REST_Response($db_user_id);
$response->set_status(200);
return $response;
}
function streamdelay($request) {
$parameter = $request->get_params();
$delay = $request->get_param('delay');
$db_user_id = $request->get_param('db_user_id');
$wpdb = connect_to_server('zinomedia');
$wpdb->update('config_user',
array(
'Value' => $delay,
),
array(
"UserID" => $db_user_id,
)
);
$response = new WP_REST_Response($parameter);
$response->set_status(200);
return $response;
}