/** * Show the list of conversation between contributor. * * @param Request $request * @param $username * @return \Illuminate\Http\Response */ public function conversation(Request $request, $username) { /* * -------------------------------------------------------------------------- * Retrieve conversation * -------------------------------------------------------------------------- * Retrieve conversation 15 data per request, because we implement lazy * pagination via ajax so return json data when 'page' variable exist, and * return view if doesn't. */ $contributor = Contributor::whereUsername($username)->firstOrFail(); $user_id = $request->input("contributor_id"); $conversations = $this->conversation->retrieveConversation($contributor->id, Input::get('last', null), $user_id); return response()->json(['request_id' => uniqid(), 'status' => 'success', 'timestamp' => Carbon::now(), 'conversations' => $conversations]); }
/** * Show the form for editing the specified contributor. * * @param $username * @return \Illuminate\Http\Response */ public function edit($username) { $contributor = Contributor::whereUsername($username)->firstOrFail(); return view('admin.contributor.edit', compact('contributor')); }
/** * Update the specified contributor in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function update(Request $request) { $rules = ['avatar' => 'mimes:jpg,jpeg,gif,png|max:1000', 'cover' => 'mimes:jpg,jpeg,gif,png|max:1000']; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { $failedRules = $validator->failed(); $validAvatar = isset($failedRules['avatar']); $validCover = isset($failedRules['cover']); $errorMessage = "Invalid avatar or cover"; if ($validAvatar && $validCover) { $errorMessage = "Cover and Avatar is invalid"; } else { if ($validAvatar) { $errorMessage = "Avatar is invalid"; } else { if ($validCover) { $errorMessage = "Cover is invalid"; } } } $errorMessage .= ", must image and less than 1MB"; return response()->json(['request_id' => uniqid(), 'status' => 'denied', 'message' => $errorMessage, 'timestamp' => Carbon::now()], 400); } $contributor = Contributor::findOrFail($request->input('contributor_id')); if ($request->has('new_password') && !empty($request->get('new_password'))) { $credential = Hash::check($request->input('password'), $contributor->password); if (!$credential) { return response()->json(['request_id' => uniqid(), 'status' => 'mismatch', 'message' => 'Current password is mismatch', 'timestamp' => Carbon::now()], 401); } } $usernameExist = Contributor::whereUsername($request->input('username'))->where('id', '!=', $contributor->id)->count(); if ($usernameExist) { return response()->json(['request_id' => uniqid(), 'status' => 'denied', 'message' => 'Username has been taken', 'timestamp' => Carbon::now()], 400); } $emailExist = Contributor::whereEmail($request->input('email'))->where('id', '!=', $contributor->id)->count(); if ($emailExist) { return response()->json(['request_id' => uniqid(), 'status' => 'denied', 'message' => 'Email has been taken', 'timestamp' => Carbon::now()], 400); } $contributor->name = $request->input('name'); $contributor->gender = $request->input('gender'); $contributor->birthday = $request->input('birthday'); $contributor->location = $request->input('location'); $contributor->contact = $request->input('contact'); $contributor->about = $request->input('about'); $contributor->username = $request->input('username'); $contributor->email = $request->input('email'); $image = new Uploader(); if ($image->upload($request, 'avatar', base_path('public/images/contributors/'), 'avatar_' . $request->input('contributor_id'))) { $contributor->avatar = $request->input('avatar'); } if ($image->upload($request, 'cover', base_path('public/images/covers/'), 'cover_' . $request->input('contributor_id'))) { $contributor->cover = $request->input('cover'); } $contributor->instagram = $request->input('instagram'); $contributor->facebook = $request->input('facebook'); $contributor->twitter = $request->input('twitter'); $contributor->googleplus = $request->input('googleplus'); $contributor->email_subscription = $request->input('email_subscription'); $contributor->email_message = $request->input('email_message'); $contributor->email_follow = $request->input('email_follow'); $contributor->email_feed = $request->input('email_feed'); $contributor->mobile_notification = $request->input('mobile_notification'); if ($request->has('new_password') && !empty($request->get('new_password'))) { $request->merge(['password' => Hash::make($request->input('new_password'))]); $contributor->password = $request->input('password'); } $contributor->bank_id = $request->input('bank_id'); $contributor->account_name = $request->input('account_name'); $contributor->account_number = $request->input('account_number'); if ($contributor->save()) { return response()->json(['request_id' => uniqid(), 'status' => 'success', 'message' => 'Setting was updated', 'timestamp' => Carbon::now(), 'contributor' => $contributor->profile($contributor->username, false, $request->input('contributor_id'), true)]); } else { return response()->json(['request_id' => uniqid(), 'status' => 'failure', 'message' => Lang::get('alert.database.generic'), 'timestamp' => Carbon::now()], 500); } }
/** * Show the list of conversation between contributor. * * @param Request $request * @param $username * @return \Illuminate\Http\Response */ public function conversation(Request $request, $username) { /* * -------------------------------------------------------------------------- * Retrieve conversation * -------------------------------------------------------------------------- * Retrieve conversation 15 data per request, because we implement lazy * pagination via ajax so return json data when 'page' variable exist, and * return view if doesn't. */ $contributor = Contributor::whereUsername($username)->firstOrFail(); $conversations = $this->conversation->retrieveConversation($contributor->id, Input::get('last', null)); if ((Input::get('page', false) || Input::has('last')) && $request->ajax()) { return $conversations; } else { return view('contributor.conversation', compact('contributor', 'conversations')); } }