Example #1
0
 public function executeFriendRequest(sfWebRequest $request)
 {
     $memberId = $this->getUser()->getMemberId();
     if (isset($request['member_id'])) {
         $targetMemberId = $request['member_id'];
     } elseif (isset($request['id'])) {
         $targetMemberId = $request['id'];
     } else {
         $this->forward400('member_id parameter not specified.');
     }
     if ($memberId === $targetMemberId) {
         $this->forward400('Friend request to myself is not allowed.');
     }
     $relation = Doctrine::getTable('MemberRelationship')->retrieveByFromAndTo($memberId, $targetMemberId);
     if (!$relation) {
         $relation = new MemberRelationship();
         $relation->setMemberIdFrom($memberId);
         $relation->setMemberIdTo($targetMemberId);
     }
     if (isset($request['unlink'])) {
         if (!$relation->isFriend()) {
             $this->forward400('This member is not your friend.');
         }
         $relation->removeFriend();
     } else {
         if ($relation->isAccessBlocked()) {
             $this->forward403('Friend request is blocked.');
         }
         if ($relation->isFriend()) {
             $this->forward400('This member already belongs to your friend.');
         }
         if ($relation->isFriendPreFrom()) {
             $this->forward400('Friend request is already sent.');
         }
         $relation->setFriendPre();
     }
     $relation->free(true);
     return $this->renderJSON(array('status' => 'success'));
 }
$t->diag('MemberRelationship::isSelf()');
$t->ok(!$dummyRelation1->isSelf());
$t->ok($dummyRelation2->isSelf());
//------------------------------------------------------------
$t->diag('MemberRelationship::isAccessBlocked()');
$t->ok(!$relation4->isAccessBlocked());
$t->ok($dummyRelation3->isAccessBlocked());
//------------------------------------------------------------
$t->diag('MemberRelationship::setFriendPre()');
$t->ok(!$newRelation1->isFriendPre());
$newRelation1->setFriendPre();
$t->ok($newRelation1->isFriendPre());
//------------------------------------------------------------
$t->diag('MemberRelationship::setFriend()');
$t->ok(!$newRelation1->isFriend());
$newRelation1->setFriend();
$t->ok($newRelation1->isFriend());
//------------------------------------------------------------
$t->diag('MemberRelationship::removeFriend()');
$t->ok($newRelation1->isFriend());
$newRelation1->removeFriend();
$t->ok(!$newRelation1->isFriend());
//------------------------------------------------------------
$t->diag('MemberRelationship::removeFriendPre()');
$newRelation1->setFriendPre();
$t->ok($newRelation1->isFriendPre());
$newRelation1->removeFriendPre();
$t->ok(!$newRelation1->isFriendPre());
//------------------------------------------------------------
$t->diag('MemberRelationship::getToInstance()');
$t->isa_ok($newRelation1->getToInstance(), 'MemberRelationship');