Advertisement
Guest User

Untitled

a guest
Jul 20th, 2016
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 12.30 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Http\Controllers;
  4.  
  5. use App\User;
  6. use Illuminate\Http\Request;
  7. use Illuminate\Support\Facades\Input;
  8. use Session;  
  9. use App\Http\Requests;
  10. use DB;
  11. use Hash;
  12. use App\Slider;
  13. use App\RegisterClass;
  14. use App\Syllabus;
  15. use App\Member;
  16. use App\Student;
  17. use App\Course;
  18. use App\CourseCategory;
  19. use App\WelcomeScreen;
  20. use App\Device;
  21. use Validator;
  22. use Log;
  23. use Response;
  24.  
  25. class MobileSiteController extends Controller
  26. {
  27.  
  28.     public function welcomeScreen(Request $request)
  29.     {
  30.       $json = $request->json();
  31.       $input = [
  32.           "email" => $json->get('email'),
  33.           "uuid" => $json->get('uuid'),
  34.       ];
  35.       $validator = validator::make
  36.       (
  37.         $input,array
  38.         (
  39.           "email" => "required",
  40.           "uuid" => "required"
  41.         )
  42.       );
  43.  
  44.       $email = $json->get('email');
  45.       $imei = $json->get('uuid');
  46.  
  47.       // Check apakah terdaftar di device
  48.       $device = Device::where('imei', $imei)->first();
  49.       if($device == null){
  50.           $device = new Device();
  51.           $device->imei = $imei;
  52.           $device->email = $email;
  53.           $device->save();
  54.       } else {
  55.           $device->email = $email;
  56.           $device->save();
  57.       }
  58.  
  59.       // Check apakah terdaftar di users (username itu email)
  60.       $user = User::where("username", $email)->first();
  61.       $registered = 'Y';
  62.       if($user == null){
  63.           $registered = 'N';
  64.       }
  65.  
  66.       return response()->json([
  67.           "status" => "OK",
  68.           "registered" => $registered,
  69.       ]);
  70.     }
  71.  
  72.  
  73.  
  74.     public function postLogin(Request $request)
  75.     {
  76.       $json = $request->json();
  77.  
  78.  
  79.       $email = $json->get('email');
  80.       $password = $json->get('password');
  81.  
  82.  
  83.       //mengececk email dn password yg kita input ada tidak di database member
  84.       $data = User::select('username','password','role')
  85.                 ->where('username','=', $email)
  86.                 ->first();
  87.  
  88.       // jika email tidak di temukan
  89.       if($data == null)
  90.       {
  91.         $result =
  92.               [
  93.                 'status'=>'FAIL',
  94.                 'error_key' => 'email.password.not.found',
  95.                 'error_message' =>'Email and password not found',
  96.               ];
  97.       }
  98.       else
  99.       {
  100.         //mengecek password hash di db
  101.         if(\Hash::check($password,$data->password))
  102.         {
  103.              //melihat email dn password yg kita input apabila setlh login lupa pakai email dn password yg mana
  104.              Session::put('mobileSession',
  105.               [
  106.                 'email'=>$email,
  107.                 'password'=>$password,
  108.                 'role'=> $data->role
  109.               ]);
  110.  
  111.              $result =
  112.               [
  113.                 'status'=>'OK',
  114.                 'role'=>$data->role
  115.               ];
  116.         }
  117.         else
  118.         {
  119.           $result =
  120.           [
  121.             'status'=>'FAIL',
  122.             'error_key' => 'email.password.not.found',
  123.             'error_message' =>'Email and password not found',
  124.           ];
  125.         }
  126.        
  127.        
  128.       }
  129.  
  130.       return response()->json($result);
  131.     }
  132.  
  133.  
  134.  
  135.     public function getSlider()
  136.     {
  137.         // menampilkan data slider dimana role banner nya adalah mobile AND active saja
  138.         $data = Slider::where('role_banner','=', '1')
  139.                 ->where('active','=', 'Y')
  140.                 ->get();
  141.  
  142.         if($data != NULL)
  143.         {
  144.           $temp=[];
  145.           foreach ($data as $key=>$value)
  146.           {
  147.             $tampung=[
  148.               'slider_name'=>$value->slider_name,
  149.               'image'=>$value->path_file,
  150.               'description'=>$value->description,
  151.               'active'=>$value->active,
  152.               'role_banner'=>$value->role_banner
  153.             ];
  154.             $temp[] = $tampung;
  155.           }
  156.        
  157.           $result =
  158.           [
  159.             'status'=>'OK',
  160.             'banner_list'=>$temp
  161.              
  162.           ];
  163.         }
  164.         else
  165.         {
  166.  
  167.             $result =
  168.             [
  169.               'status'=>'FAIL',
  170.               'error_key'=> 'no.banner.available',
  171.               'error_message' => 'No banner available',
  172.             ];
  173.  
  174.         }
  175.  
  176.         return response()->json($result);
  177.    
  178.    }
  179.  
  180.  
  181.  
  182.  
  183.   public function getCourseList()
  184.   {
  185.       $courseList = Course::join("course_categories","courses.course_category_id","=","course_categories.course_category_id")
  186.          ->select( \DB::raw(" courses.*, course_categories.type_class as category ") )
  187.          ->orderBy('order_num')->get();
  188.  
  189.       $result = [
  190.         'status' => 'OK',
  191.         'courseList' => $courseList
  192.       ];
  193.  
  194.       return response()->json($result);
  195.   }
  196.  
  197.  
  198.  
  199.   public function getCourse($course_id)
  200.   {
  201.  
  202.       $dataCourse = Course::where('course_id','=',$course_id)
  203.             ->where('active','=','Y')
  204.             ->get();
  205.  
  206.       $dataSyllabus = Syllabus::where('course_id','=',$course_id)->get();
  207.  
  208.  
  209.       /*memisahkan data array dari datacourse menjadi 1 persatu*/
  210.       foreach ($dataCourse as $key => $value)
  211.       {
  212.         $materi = $value->materi;
  213.         $session_count = $value->session_count;
  214.         $recommended = $value->recommended;
  215.         $cost = $value->cost;
  216.       }
  217.  
  218.       $syllabus=[];
  219.       foreach ($dataSyllabus as $key => $value)
  220.        {
  221.         $temp =
  222.           [
  223.             'session'=>$value->session,
  224.             'materi_desc'=>$value->materi_desc
  225.           ];
  226.  
  227.         array_push($syllabus,$temp);
  228.       }
  229.      
  230.       $course_detail = [
  231.           'course_id'=>$course_id,
  232.           'materi'=>$materi,
  233.           'session_count'=>$session_count,
  234.           'recommended'=>$recommended,
  235.           'cost'=>$cost,
  236.           'syllabus'=>$syllabus
  237.       ];
  238.  
  239.       $result =
  240.         [
  241.           'status'=>'OK',
  242.           'course_detail'=>$course_detail
  243.         ];
  244.  
  245.       return response()->json($result);
  246.   }
  247.  
  248.  
  249.  
  250.   public function postRegist(Request $request)
  251.   {
  252.     $json = $request->json();
  253.     $input = [
  254.         "name" => $json->get('name'),
  255.         "gender" => $json->get('gender'),
  256.         "dob" => $json->get('dob'),
  257.         "school_level" => $json->get('school_level'),
  258.         "major" => $json->get('major'),
  259.         "phone" => $json->get('phone'),
  260.         "email" => $json->get('email'),
  261.         "password" => $json->get('password'),
  262.         "year_level" => $json->get('year_level'),
  263.         "university" => $json->get('university'),
  264.     ];
  265.     $validator = validator::make
  266.       (
  267.         $input,array
  268.         (
  269.           "name" => "required",
  270.           "gender" => "required",
  271.           "dob" => "required",
  272.           "school_level" => "required",
  273.           "major" => "required",
  274.           "phone" => "required",
  275.           "email" => "required",
  276.           "password" => "required"
  277.         )
  278.       );
  279.  
  280.       if($validator->passes())
  281.       {
  282.           try {
  283.  
  284.               DB::beginTransaction();
  285.  
  286.               // Check apakah email sudah digunakan, jika sudah error
  287.               $count = User::where('username', "=", $input['email'])->count();
  288.               if($count > 0){
  289.                   throw new \Exception("Email already registered");
  290.               }
  291.  
  292.  
  293.               // INSERT 1 ke users
  294.               $user = new User();
  295.               $user->username = $input['email'];
  296.               $user->password = Hash::make($input['password']);
  297.               $user->confirmation_code = md5(time());
  298.               $user->role = 'member';
  299.               $user->save();
  300.  
  301.               // INSERT 2 ke members
  302.               $member = new Member();
  303.               $member->name = $input['name'];
  304.               $member->gender = $input['gender'];
  305.               $member->dob = $input['dob'];
  306.               $member->school_level = $input['school_level'];
  307.               $member->major = $input['major'];
  308.               $member->phone = $input['phone'];
  309.               // $member->email = $input['email'];
  310.               // $member->password = $input['password'];
  311.               $member->university = $input['university'];
  312.               $member->year_level = $input['year_level'];
  313.               // $member->role = 'member';
  314.               $member->user_id = $user->user_id;
  315.               $member->save();
  316.  
  317.  
  318.               DB::commit();
  319.  
  320.               $result =
  321.               [
  322.                       'status'=>'OK',
  323.                       'user_id'=> $user->user_id,
  324.                       'username' => $user->username,
  325.               ];
  326.           }catch(\Exception $ex){
  327.               DB::rollback();
  328.               $result = [
  329.                   'status' => 'FAIL',
  330.                   'error_key' => 'register.fail',
  331.                   'error_message' => $ex->getMessage(),
  332.               ];
  333.           }
  334.  
  335.  
  336.       }
  337.       else
  338.       {
  339.         $result =
  340.           [
  341.             'status'=>'FAIL',
  342.             'error_key'=> 'register.input.not.valid',
  343.             'error_message' => 'Register input not valid',
  344.             'error_list' => $validator->errors(),
  345.           ];
  346.  
  347.       }
  348.       return response()->json($result);
  349.   }
  350.  
  351.  
  352.   public function postRegistClass(Request $request)
  353.   {
  354.       return response()->json([
  355.           "status" => "FAIL",
  356.           "error_key" => "not.available.yet",
  357.       ]);
  358.       /*
  359.       $studentValidate = Member::where('member_id','=', $request->member_id)->first();
  360.  
  361.       $courseValidate = Course::where('course_id','=', $request->course_id)->first();
  362.  
  363.       $courseCategoryValidate = CourseCategory:: where('course_category_id','=', $request->course_category_id)->first();  
  364.  
  365.       $validator = validator::make
  366.       (
  367.         Input::all(),array
  368.         (
  369.           "schedule" => "required"
  370.         )
  371.       );
  372.  
  373.       if($validator->passes())
  374.       {
  375.           $registerClass = new RegisterClass();
  376.           $registerClass->member_id = $studentValidate->member_id;
  377.           $registerClass->course_id = $courseValidate->course_id;
  378.           $registerClass->course_category_id = $courseCategoryValidate->course_category_id;
  379.           $registerClass->schedule = Input::get('schedule');
  380.           $registerClass->save();
  381.  
  382.  
  383.           $update = Member::find($studentValidate->member_id);
  384.           $update->role = 'student';
  385.           $update->save();
  386.  
  387.          $result =
  388.             [
  389.               'status'=>'OK',
  390.               'message'=>'Input Success'
  391.             ];
  392.  
  393.       }
  394.       else
  395.       {
  396.           $result =
  397.             [
  398.               'status'=> 'FAIL',
  399.               'error_key'=> 'Invalid Input',
  400.               'error_message' =>
  401.             ];  
  402.       }
  403.       return response()->json($result);*/
  404.   }
  405.  
  406.  
  407.   public function postChangePassword(Request $request)
  408.   {
  409.       $json = $request->json();
  410.       $input = [
  411.           "member_id" => $json->get('member_id'),
  412.           "old_password" => $json->get('old_password'),
  413.           "new_password" => $json->get('new_password'),
  414.       ];
  415.       $validator = validator::make
  416.       (
  417.         $input,array
  418.         (
  419.           "old_password" => "required",
  420.           "new_password" => "required"
  421.         )
  422.       );
  423.  
  424.       $member_id = $input['member_id'];
  425.  
  426.       $update = Member::find($member_id);
  427.  
  428.       if($update == null){
  429.           return response()->json(
  430.               [
  431.                   "status" => "FAIL",
  432.                   "error_key" => "Invalid member ID",
  433.               ]
  434.           );
  435.       }
  436.       // Log::debug($update);
  437.  
  438.       $user = User::find( $update->user_id );
  439.       // Log::debug($user);
  440.  
  441.       if(!password_verify($input['old_password'], $user->password)){
  442.           return response()->json(
  443.               [
  444.                   "status" => "FAIL",
  445.                   "error_key" => "old.password.did.not.match",
  446.                   "error_message" => "Old password did not match",
  447.               ]
  448.           );
  449.       }
  450.  
  451.       $password = \Hash::make($input['new_password']);
  452.  
  453.       if($validator->passes())
  454.       {
  455.  
  456.           $user->password = $password;
  457.           $user->save();
  458.      
  459.           $result =
  460.             [
  461.               'status'=>'OK',
  462.               'message'=>'Change Password Success'
  463.             ];
  464.       }
  465.       else
  466.       {
  467.           $result =
  468.             [
  469.               'status'=>'FAIL',
  470.               'error_key' => 'input.validation.errors',
  471.               'error_list' => $validator->errors()
  472.             ];    
  473.       }
  474.  
  475.       return response()->json($result);
  476.   }
  477.  
  478. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement