PageRenderTime 53ms CodeModel.GetById 25ms RepoModel.GetById 0ms app.codeStats 0ms

/app/Http/Controllers/Frontend/ApiController.php

https://gitlab.com/Ankit77/motiv8
PHP | 351 lines | 269 code | 50 blank | 32 comment | 36 complexity | 332084cc68abf1643034eb5a4cc1bae5 MD5 | raw file
  1. <?php namespace App\Http\Controllers\Frontend;
  2. use DB,View,Session,Validator,Input,Redirect,Hash,Auth;
  3. use Mail;
  4. use App\Models\Access\User\User;
  5. use App\Contactus;
  6. use App\Http\Controllers\Controller;
  7. //use Illuminate\Http\Request;
  8. use App\Http\Requests\Frontend\Access\LoginRequest;
  9. use App\Exceptions\GeneralException;
  10. use Request;
  11. use App\Challenges;
  12. /**
  13. * Class FrontendController
  14. * @package App\Http\Controllers
  15. */
  16. class ApiController extends Controller {
  17. /**
  18. * @return \Illuminate\View\View
  19. */
  20. public function index()
  21. {
  22. javascript()->put([
  23. 'test' => 'it works!'
  24. ]);
  25. return view('frontend.index');
  26. }
  27. public function checkToken($access_token,$user_id='',$session_key='')
  28. {
  29. $token=env('ACCESS_TOKEN');
  30. if($access_token!=$token){
  31. $resultArray['status']='0';
  32. $resultArray['message']='Invalid token!';
  33. return $resultArray;
  34. die;
  35. }
  36. else{
  37. if($user_id!=''){
  38. if($session_key==''){
  39. $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
  40. $session_key=substr(str_shuffle($chars),0,8);
  41. $checkuser=DB::table('mobile_session')->where('user_id',$user_id)->first();
  42. if(count($checkuser)>0){
  43. $update_arr= array('session_key' => $session_key );
  44. DB::table('mobile_session')->where('id',$checkuser->id)->update($update_arr);
  45. }
  46. else{
  47. $update_arr= array('session_key' => $session_key ,'user_id'=>$user_id);
  48. DB::table('mobile_session')->insert($update_arr);
  49. }
  50. $resultArray['status']='1';
  51. $resultArray['Data']['randnumber']=$session_key;
  52. return ($resultArray);
  53. }
  54. else{
  55. $con_arr=array('user_id'=>$user_id,'session_key'=>$session_key);
  56. $checkuser=DB::table('mobile_session')->where($con_arr)->first();
  57. if(count($checkuser)>0){
  58. $resultArray['status']='1';
  59. $resultArray['Data']['randnumber']=$session_key;
  60. return ($resultArray); die;
  61. }
  62. else{
  63. $resultArray['status']='0';
  64. $resultArray['message']='Invalid session';
  65. return ($resultArray); die;
  66. }
  67. }
  68. }
  69. else{
  70. $resultArray['status']='1';
  71. $resultArray['Data']['message']='';
  72. return ($resultArray); die;
  73. }
  74. }
  75. }
  76. /* start api */
  77. /*****
  78. Api Name:login api
  79. Paramenter: password or email
  80. Output:login successfully api login array
  81. ***/
  82. public function login()
  83. {
  84. $email = !empty($_REQUEST['email']) ? $_REQUEST['email'] : "";
  85. $pass = !empty($_REQUEST['password']) ? $_REQUEST['password'] : "";
  86. $access_token = Request::header('accesstoken');
  87. $access_token = !empty($access_token) ? $access_token : "";
  88. if((isset($email) && !empty($email)) && (isset($pass) && !empty($pass))){
  89. $chkuserLogin = DB::table('users')->where('email',$email)->first();
  90. if(count($chkuserLogin)>0 && Hash::check($pass, $chkuserLogin->password)){
  91. if($chkuserLogin->confirmed==0){
  92. $resultArray['status']='0';
  93. $resultArray['message']='Your account is Inactive.';
  94. return json_encode($resultArray);
  95. }
  96. else{
  97. $check_auth=$this->checkToken($access_token,$chkuserLogin->id);
  98. if($check_auth['status']!=1)
  99. {
  100. return json_encode($check_auth);
  101. }
  102. else
  103. {
  104. $images="http://laravel.kart247.com/motiv8/public/images/users/".$chkuserLogin->profile_pic;
  105. !empty($chkuserLogin->set_theme)?
  106. $theme=DB::table('themes')->where('id',$chkuserLogin->set_theme)->select('theme_color', 'theme_attribute')->first() : $theme->theme_color="";
  107. $resultArray['status']='1';
  108. $resultArray['message']='Login Successfully';
  109. $resultArray['Data']['userprofile']['id']=!empty($chkuserLogin->id)?$chkuserLogin->id:"";
  110. $resultArray['Data']['userprofile']['name']=!empty($chkuserLogin->name)?$chkuserLogin->name:"";
  111. $resultArray['Data']['userprofile']['email']=!empty($chkuserLogin->email)?$chkuserLogin->email:"";
  112. $resultArray['Data']['userprofile']['profile_pic']=!empty($chkuserLogin->profile_pic)?$images:"";
  113. $resultArray['Data']['userprofile']['phone']=!empty($chkuserLogin->phone)?$chkuserLogin->phone:"";
  114. if(!empty($chkuserLogin->set_theme)){
  115. $resultArray['Data']['background']['type']=!empty($theme->theme_attribute)? $theme->theme_attribute :"" ;
  116. if($theme->theme_attribute="background"){
  117. $resultArray['Data']['background']['image']=!empty($theme->theme_color)? $theme->theme_color :"" ;
  118. }else{
  119. $resultArray['Data']['background']['color']=!empty($theme->theme_color)? $theme->theme_color :"" ;
  120. }
  121. }else
  122. {
  123. }
  124. $resultArray['Data']['Session_keys']=$check_auth['Data']['randnumber'];
  125. return json_encode($resultArray);
  126. }
  127. }
  128. }
  129. else{
  130. $resultArray['status']='0';
  131. $resultArray['message']='Invalid details.';
  132. return json_encode($resultArray);
  133. }
  134. }
  135. else{
  136. $resultArray['status']='0';
  137. $resultArray['message']='Invalid parameter';
  138. return json_encode($resultArray);
  139. }
  140. }
  141. /* login api end */
  142. /*****
  143. Api Name:Register api
  144. Paramenter: name ,email ,phone ,image ,theme_id or password
  145. Output:Register successfully api login array
  146. ***/
  147. public function register()
  148. {
  149. $email = !empty($_REQUEST['email']) ? $_REQUEST['email'] : "";
  150. $password = !empty($_REQUEST['password']) ? $_REQUEST['password'] : "";
  151. $name = !empty($_REQUEST['name']) ? $_REQUEST['name'] : "";
  152. $phone = !empty($_REQUEST['phone']) ? $_REQUEST['phone'] : "";
  153. $theme_id = !empty($_REQUEST['theme_id']) ? $_REQUEST['theme_id'] : "";
  154. $image = !empty($_REQUEST['image']) ? $_REQUEST['image'] : "";
  155. if(isset($email) && !empty($email) && isset($password) && !empty($password) && isset($name) && !empty($name) && isset($phone) && !empty($phone)){
  156. $chkuserLogin = DB::table('users')->where('email',$email)->first();
  157. if(!empty($chkuserLogin) && (isset($chkuserLogin))){
  158. $resultArray['status']='0';
  159. $resultArray['message']='Email already exist.';
  160. return json_encode($resultArray);
  161. }
  162. else{
  163. $chkuserLoginPhone = DB::table('users')->where('phone',$phone)->first();
  164. if(!empty($chkuserLoginPhone) && (isset($chkuserLoginPhone))){
  165. $resultArray['status']='0';
  166. $resultArray['message']='Phone already exist.';
  167. return json_encode($resultArray);
  168. }else{
  169. if($image!="")
  170. {
  171. $setimag=$this->base64toimage($image);
  172. if($setimag['status']==1 && $setimag['imagename']!='')
  173. {
  174. $update_arr= array('name' => $name,
  175. 'email' => $email,
  176. 'phone' =>$phone,
  177. 'password' => Hash::make($password),
  178. 'confirmed' => 1 ,
  179. 'set_theme' => $theme_id,
  180. 'pic' => $setimag['imagename']);
  181. DB::table('users')->insert($update_arr);
  182. }
  183. }else{
  184. $user = DB::table('users')->insert([
  185. 'name' => $name,
  186. 'email' => $email,
  187. 'phone' =>$phone,
  188. 'password' => Hash::make($password),
  189. 'confirmed' => 1 ,
  190. 'set_theme' => $theme_id
  191. ]);
  192. }
  193. $resultArray['status']='1';
  194. $resultArray['message']='Successfully registered.';
  195. return json_encode($resultArray);
  196. }
  197. }
  198. }
  199. else{
  200. $resultArray['status']='0';
  201. $resultArray['message']='Invalid parameter.';
  202. return json_encode($resultArray);
  203. }
  204. }
  205. /* end api */
  206. /*****
  207. Api Name:theme listing get api
  208. Paramenter: user_id
  209. Output:theme listing successfully api
  210. ***/
  211. public function themes()
  212. {
  213. $access_token = Request::header('accesstoken');
  214. $access_token = !empty($access_token) ? $access_token : "";
  215. $check_auth=$this->checkToken($access_token);
  216. if($check_auth['status']!=1)
  217. {
  218. return json_encode($check_auth);
  219. }
  220. else
  221. {
  222. $settheme=DB::table('themes')->where('status', 1)->get();
  223. if(count($settheme)>0)
  224. {
  225. $i=0;
  226. foreach ($settheme as $value) {
  227. $resultarray[$i]['theme_id']=$value->id;
  228. $resultarray[$i]['title']=$value->title;
  229. ++$i;
  230. }
  231. $resultArray['status']='1';
  232. $resultArray['message']='theme successfully';
  233. $resultArray['Data']=$resultarray;
  234. return json_encode($resultArray);
  235. }else
  236. {
  237. $resultArray['status']='1';
  238. $resultArray['message']='Invalid theme';
  239. return json_encode($resultArray);
  240. }
  241. }
  242. }
  243. /* End api*/
  244. /*
  245. Api Name: challenge listing for user
  246. Paramenter: user_id ,session_keys,
  247. Output:theme challenge successfully created
  248. */
  249. public function challengelisting()
  250. {
  251. $access_token = Request::header('accesstoken');
  252. $access_token = !empty($access_token) ? $access_token : "";
  253. $session_key = !empty($_REQUEST['session_keys']) ? $_REQUEST['session_keys'] : "";
  254. $check_auth=$this->checkToken($access_token);
  255. if($check_auth['status']!=1)
  256. {
  257. return json_encode($check_auth);
  258. }
  259. else
  260. {
  261. $challenge=DB::table('challenges')->where('status', 1)->get();
  262. $i=0;
  263. foreach ($challenge as $value) {
  264. $result[$i]['name']=!empty($value->name)? $value->name :"";
  265. $result[$i]['description']=!empty($value->description)? $value->description :"" ;
  266. $userchallenge=DB::table('user_challenges')->where('challenge_id', $value->id )->get();
  267. foreach ($userchallenge as $valueinfo) {
  268. $result[$i]['challenge_timeline']=!empty($valueinfo->challenge_timeline)? $valueinfo->challenge_timeline:"";
  269. $result[$i]['post_frequency']=!empty($valueinfo->post_frequency)? $valueinfo->post_frequency:"";
  270. $result[$i]['completion_reward']=!empty($valueinfo->completion_reward)? $valueinfo->completion_reward:"";
  271. $result[$i]['invite_friend']=!empty($valueinfo->invite_friend)? $valueinfo->invite_friend: "";
  272. $result[$i]['status']=!empty($valueinfo->status)? $valueinfo->status :"";
  273. }
  274. }
  275. $resultArray['status']='1';
  276. $resultArray['message']='successfully';
  277. $resultArray['data']=$result;
  278. return json_encode($resultArray);
  279. }
  280. }
  281. public function base64toimage($base64)
  282. {
  283. $data = base64_decode($base64); // base64 decoded image data
  284. $source_img = imagecreatefromstring($data);
  285. $rotated_img = imagerotate($source_img, 0, 10); // rotate with angle 90 here
  286. $fname= uniqid() . '.jpg';
  287. $file = 'images/users/'. $fname;
  288. $imageSave = imagejpeg($rotated_img, $file, 10);
  289. imagedestroy($source_img);
  290. if($fname)
  291. {
  292. $returndata['status']=1;
  293. $returndata['imagename']=$fname;
  294. }
  295. else{
  296. $returndata['status']=0;
  297. $returndata['imagename']='';
  298. }
  299. return $returndata;
  300. }
  301. }