コード例 #1
0
ファイル: User.php プロジェクト: lscgzwd/jegarn
 public function toArray()
 {
     $result = ConvertUtil::objectToArray($this, $dst, ['id' => 'uid', 'username' => 'account', 'nick', 'motto', 'token']);
     $result['avatar'] = $this->avatar ? PIC_HOST . $this->avatar : null;
     $result['present'] = JegarnUtil::getUserPresent($this->id);
     return $result;
 }
コード例 #2
0
ファイル: RosterTest.php プロジェクト: lscgzwd/jegarn
 public function receiveRequest($userTwo, $userOne)
 {
     $resp = $this->request('/api/roster/update', ['uid' => $userTwo->id, 'token' => $userTwo->token, 'target_id' => $userOne->id, 'status' => Roster::STATUS_AGREE, 'remark' => 'jack', 'group_id' => 0, 'rank' => 1], true);
     $this->assertRequestSuccess($resp);
     $roster = $this->getResponseBody($resp);
     // check cache, when user agree the request, both user will receive a agree message
     $this->assertNotificationPacket($userTwo->id, new FriendAgreeNotification());
     $this->assertNotificationPacket($userOne->id, new FriendAgreeNotification());
     return ConvertUtil::arrayToObject($roster, new Roster(), ['roster_id' => 'id', 'target_id' => 'targetId', 'status']);
 }
コード例 #3
0
ファイル: UserTest.php プロジェクト: lscgzwd/jegarn
 public function createUserByAccount($account, $password, $nick)
 {
     // create a user
     $resp = $this->request('/api/user/create', ['account' => $account, 'password' => $password, 'nick' => $nick], true);
     $this->assertRequestSuccess($resp);
     $user = $this->getResponseBody($resp);
     // cache check, user should be register into cache database
     self::assertTrue(\jegarn\manager\UserManager::getInstance()->getUser($account) !== null);
     return ConvertUtil::arrayToObject($user, new User(), ['uid' => 'id', 'account' => 'username', 'nick', 'token']);
 }
コード例 #4
0
ファイル: GroupUser.php プロジェクト: lscgzwd/jegarn
 public function toArray()
 {
     return ConvertUtil::objectToArray($this, $dst, ['id', 'gid', 'uid', 'status', 'permission', 'create_time', 'remark']);
 }
コード例 #5
0
ファイル: Message.php プロジェクト: lscgzwd/jegarn
 public function toArray()
 {
     return ConvertUtil::objectToArray($this, $dst, ['id', 'from', 'to', 'create_time', 'message']);
 }
コード例 #6
0
ファイル: GroupUserManager.php プロジェクト: lscgzwd/jegarn
 public function quitGroup(Group $group, GroupUser $model)
 {
     if ($resp = $this->checkGroupWithUser($group, $model)) {
         return $resp;
     }
     if (($result = $this->getGroupUserArray($model)) instanceof ApiResponse) {
         return $result;
     }
     if ($result) {
         ConvertUtil::arrayToObject($result, $model, ['id', 'gid', 'uid', 'permission', 'create_time', 'status', 'remark']);
         if (Group::TYPE_CHATROOM == $group->type) {
             return GroupManager::getInstance()->quitOrDeleteChatroom($group, $model);
         } else {
             if ($group->uid == $model->uid) {
                 return new ApiResponse(Code::FAIL_PERMISSION_DENY, 'create user can not quit');
             }
             if ($resp = $this->removeGroupUserById($model)) {
                 return $resp;
             }
             JegarnUtil::quitGroup($group->id, $model->uid);
             JegarnUtil::sendGroupQuitNotification($group->uid, $model->uid, $group->id, $group->name);
         }
     }
     return null;
 }
コード例 #7
0
ファイル: Group.php プロジェクト: lscgzwd/jegarn
 public function toArray()
 {
     $result = ConvertUtil::objectToArray($this, $dst, ['id' => 'group_id', 'uid', 'type', 'name', 'create_time', 'description', 'member_count']);
     $result['icon'] = $this->icon ? PIC_HOST . $this->icon : '';
     return $result;
 }
コード例 #8
0
ファイル: RosterManager.php プロジェクト: lscgzwd/jegarn
 public function getRoster(Roster $model)
 {
     $dbManager = Db::getInstance();
     if ($model->id) {
         $statement = $dbManager->prepare(self::GET_ROSTER_BY_ID);
         $executeRet = $statement->execute([$model->id]);
     } else {
         if ($model->uid && $model->target_id) {
             $statement = $dbManager->prepare(self::GET_ROSTER_BY_FRIEND);
             $executeRet = $statement->execute([$model->uid, $model->target_id]);
         } else {
             return new ApiResponse(Code::FAIL_ROSTER_NOT_EXISTS, 'id is empty || uid & target_id is empty');
         }
     }
     if (!$executeRet) {
         return new ApiResponse(Code::FAIL_DATABASE_ERROR, 'get roster failed');
     }
     $result = $statement->fetch(PDO::FETCH_ASSOC);
     if (!$result) {
         return new ApiResponse(Code::FAIL_ROSTER_NOT_EXISTS, 'get roster failed');
     }
     ConvertUtil::arrayToObject($result, $model, ['id', 'uid', 'target_id', 'status', 'remark', 'group_id', 'rank']);
     return null;
 }
コード例 #9
0
ファイル: Roster.php プロジェクト: lscgzwd/jegarn
 function toArray()
 {
     return ConvertUtil::objectToArray($this, $dst, ['id' => 'roster_id', 'uid', 'target_id', 'status', 'create_time', 'update_time', 'remark', 'group_id', 'rank']);
 }
コード例 #10
0
ファイル: GroupTest.php プロジェクト: lscgzwd/jegarn
 public function listUsers($groupId, $status, User $user)
 {
     $resp = $this->request('/api/group/list_user', ['uid' => $user->id, 'token' => $user->token, 'group_id' => $groupId, 'status' => $status]);
     $this->assertResponseNotEmptyList($resp);
     $results = $this->getResponseBody($resp);
     $objList = [];
     foreach ($results as $result) {
         $objList[] = ConvertUtil::arrayToObject($result, new GroupUser(), ['id', 'gid', 'uid', 'status', 'permission', 'create_time', 'remark']);
     }
     return $objList;
 }
コード例 #11
0
ファイル: UserManager.php プロジェクト: lscgzwd/jegarn
 public function getUser(User $model)
 {
     $dbManager = Db::getInstance();
     if ($model->id) {
         $statement = $dbManager->prepare(self::GET_USER_BY_UID);
         $statement->bindValue(1, $model->id, PDO::PARAM_INT);
     } else {
         if ($model->username) {
             $statement = $dbManager->prepare(self::GET_USER_BY_USERNAME);
             $statement->bindValue(1, $model->username, PDO::PARAM_STR);
         } else {
             return new ApiResponse(Code::FAIL_USER_UID_OR_NAME_NOT_EXISTS, null);
         }
     }
     if (!$statement->execute()) {
         return new ApiResponse(Code::FAIL_DATABASE_ERROR, 'get user failed');
     }
     $result = $statement->fetch(PDO::FETCH_ASSOC);
     if (!$result) {
         return new ApiResponse(Code::FAIL_USER_NOT_EXISTS, null);
     }
     ConvertUtil::arrayToObject($result, $model, ['id', 'username', 'password', 'avatar', 'token', 'nick', 'motto']);
     return null;
 }
コード例 #12
0
ファイル: RosterGroup.php プロジェクト: lscgzwd/jegarn
 function toArray()
 {
     $dst = ConvertUtil::objectToArray($this, $dst, ['id' => 'group_id', 'uid', 'rank']);
     $dst['name'] = $this->isDefaultGroup() ? self::DEFAULT_NAME : $this->name;
     return $dst;
 }