Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* -----------------------------------------------------------------------------
- * REST API SETUP
- * -------------------------------------------------------------------------- */
- add_action( 'rest_api_init', function () {
- register_rest_route( 'users', '/auth/', array(
- 'methods' => 'POST',
- 'callback' => 'meditation_user_auth'
- ) );
- } );
- function meditation_user_auth(WP_REST_Request $request) {
- $email = isset($request['email']) ? $request['email'] : '';
- $password = isset($request['password']) ? $request['password'] : '';
- if(empty($email)) {
- return new WP_Error( 'invalid_email', 'Invalid email', array( 'status' => 404 ) );
- }
- if(empty($password)) {
- return new WP_Error( 'invalid_password', 'Invalid password', array( 'status' => 404 ) );
- }
- $response = array();
- $user = get_user_by( 'email', $email );
- $authentication = wp_authenticate($user->user_login,$password);
- if (!is_wp_error( $authentication )){
- $response = array(
- 'success' => true,
- 'message' => 'Login Successful',
- 'userid' =>$user->ID,
- 'token' => 'meditationpeggyapp',
- 'user_name'=>$user->display_name,
- 'user_email'=>$email,
- );
- }
- else{
- $response = array(
- 'success' => false,
- 'message' => 'Invalid email or password',
- 'token' => '',
- 'user_id'=>'',
- 'user_name'=>'',
- 'user_email'=>'',
- );
- }
- $message = new WP_REST_Response($response, 200); // data => array of returned data
- return $message;
- }
- add_action('rest_api_init',function(){
- register_rest_route('uploads','/audios/',array(
- 'methods'=>'GET',
- 'callback'=>'meditation_upload_file_auth',
- ));
- });
- function meditation_upload_file_auth(WP_REST_Request $request) {
- $user_id = isset($_GET['userid']) ? (int)$_GET['userid'] : '';
- $user_data = get_user_by('ID', $user_id);
- $token = $request->get_header('token');
- // $token = $attribues['args']['token'][0];
- $subtitles = ['Day 1-7 Audios','Day 8-14 Audios','Day 15-21 Audios','Day 22-28 Audios','Day 29-30 Audios'];
- if(empty($token)) {
- return new WP_Error( 'empty_token', 'Empty Token', array( 'status' => 404 ) );
- }
- if($token !='meditationpeggyapp'){
- return new WP_Error( 'invalid_token', 'Invalid Token', array( 'status' => 404 ) );
- }
- if(empty($user_id)) {
- return new WP_Error( 'empty_userID', 'Empty Userid', array( 'status' => 404 ) );
- }
- if($user_data == false) {
- return new WP_Error( 'invalid_userID', 'Invalid Userid', array( 'status' => 404 ) );
- } else {
- $upload_dir = wp_upload_dir();
- if( $dir = opendir($upload_dir['basedir'].'/audios')) {
- $modules = array();
- while(false !== ($file=readdir($dir))) {
- if( $file != "." && $file != '..') {
- $modules[] = $file;
- }
- }
- closedir($dir);
- sort($modules);
- $response = array();
- $count = 1;
- for( $i=0,$j=0; $i<count($modules),$j<count($subtitles); $i++,$j++) {
- $purchased_products = array();
- $purchased_products['module_title'] = $modules[$i];
- $purchased_products['module_subtitle'] = $subtitles[$j];
- $listed_audios = glob($upload_dir['basedir'].'/audios/'.$modules[$i].'/*');
- foreach($listed_audios as $single_audio){
- $purchased_products['products'][] = array(
- 'title' => 'Day '.$count,
- 'url' => str_replace("/home/admin/web/meditationwithpeggygaines.com/public_html/wp-content/uploads",$upload_dir['baseurl'],$single_audio),
- 'id' => (int)sprintf("%03d", $count),
- );
- $count++;
- }
- $response[] = $purchased_products;
- }
- // foreach($modules as $module) {
- // $count = 0;
- // $purchased_products = array();
- // $purchased_products['module_title'] = $module;
- // $purchased_products['module_subtitle'] = $subtitles[$subtitle_count];
- // $listed_audios = glob($upload_dir['basedir'].'/audios/'.$module.'/*');
- // $count = 1;
- // foreach($listed_audios as $single_audio){
- // $purchased_products['products'][] = array(
- // 'title'=>'audio '.$count,
- // 'url'=> str_replace("/home/admin/web/meditationwithpeggygaines.com/public_html/wp-content/",$upload_dir['baseurl'].'/',$single_audio),
- // );
- // $count++;
- // }
- // $response[] = $purchased_products;
- // $subtitle_count++;
- // }
- $json = array();
- $json['success'] = true;
- $json['message'] = 'Product fetch successful';
- $json['purchased_products'] = $response;
- $message = new WP_REST_Response($json, 200); // data => array of returned data
- return $message;
- }
- }
- }
Add Comment
Please, Sign In to add comment