<?php  if(!defined('ABSPATH')){ exit; }


/** função para processar solicitação do APP e retornar URL do Display*/
/** por valmy Gomes em 05/07/2021**/
function process_my_request(WP_REST_Request $request){
   $request_body = $request->get_body_params();
  
   			
  
$meta_value = $request_body['secret'];//token informado pelo app
$tbl = $wpdb->prefix.'postmeta';
$prepare_guery = $wpdb->prepare( "SELECT post_id FROM $tbl where meta_key ='tvindoor_display_token' and meta_value like '%%d%'", $meta_value );
$get_post_id = $wpdb->get_col( $prepare_guery ); //id do display do token
$post_n = get_post( $get_post_id ); 
$display =  $post_n->post_name; //pegando o nome do display para montar a URL
$url_display = site_url('/tvindoor/'.$display); //montando a url do display para retornar ao app

$register = array($url_display , $_SERVER['REMOTE_ADDR'],$request_body['total_memory'], $request_body['free_memory']);

   
   if(update_post_meta( $request_body['post_id'], 'post_data', $request_body )){
      $response = new WP_REST_Response(array(
										'details'=> $register,
										'msg'=> 'Complete',
										'error'=>'success'										
										));
      $response->set_status(200);
      return $response;
   }
   else{
        return new WP_Error('invalid_request', 'Algo deu errado', array(											
											'msg'=> 'Erro de nome duplicado',
											'error'=>'error',
											'status'=>403
											));		
   }
}

/** criando um registro da função de callback */
function register_my_route(){
   register_rest_route('tvindoor/v1', '/syncapp', array(
        'methods'=>'POST',
        'callback'=>'process_my_request'
   ));
}
add_action('rest_api_init', 'register_my_route');