| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- <?php
- namespace app\controllers;
- use app\models\Friends;
- use lithium\action\DispatchException;
- use lithium\security\Auth;
- use app\models\User;
- class FriendsController extends \lithium\action\Controller {
- public function index() {
- $id = Auth::check('default');
- $id = $id['id'];
- $conditions = array('User.id' => $id);
- $with = array('Friends');
- $user = User::find('first', compact('conditions', 'with'));
- return compact('user');
- }
- public function view() {
- $friend = Friends::first($this->request->id);
- return compact('friend');
- }
- public function add() {
- $friend = Friends::create();
- if ($this->request->data) {
- $user = Auth::check('default');
- $ToUserId = $this->request->data['userid'];
- //If the user exists
- if(User::count($ToUserId) == 1)
- {
- $friendship = Friends::create(array('FromUserId' => $user['id'],
- 'ToUserId' => $ToUserId,
- 'StatusId' => Friends::status("open"),
- 'SentTime' => date('Y-m-d H:i:s', time())));
- $friendship->save();
- }
- }
- return compact('user');
- }
- public function accept() {
- $user == Auth::check('default');
- $id = $this->request->data['id'];
- $relationship = Friends::find($id);
- //Ensure the user is accepting their own request
- if ($relationship->ToUserId == $user->id)
- {
- $relationship->ResponseTime = date('Y-m-d H:i:s', time());
- $relationship->StatusId = Friends::status('accepted');
- $relationship->save();
- }
- //Return them to their friends page (with ajax return the status I guess)
- return $this->redirect("Friendships::view");
- }
-
- //Copied and pasted the code from above but it really should be handled inside the friendship
- //model;
- public function decline() {
- $user == Auth::check('default');
- $id = $this->request->data['id'];
- $relationship = Friendships::find($id);
- //Ensure the user is accepting their own request
- if ($relationship->ToUserId == $user->id)
- {
- $relationship->ResponseTime = date('Y-m-d H:i:s', time());
- $relationship->StatusId = Friendship::status('rejected');
- $relationship->save();
- }
- //Return them to their friends page (with ajax return the status I guess)
- return $this->redirect("Friendships::view");
- }
- public function delete() {
- if (!$this->request->is('post') && !$this->request->is('delete')) {
- $msg = "Friends::delete can only be called with http:post or http:delete.";
- throw new DispatchException($msg);
- }
- Friends::find($this->request->id)->delete();
- $this->redirect('Friends::index');
- }
- }
- ?>
|