ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
ilBuddySystemRelationRepository Class Reference

Class ilBuddySystemRelationRepository. More...

+ Collaboration diagram for ilBuddySystemRelationRepository:

Public Member Functions

 getDatabaseAdapter ()
 
 setDatabaseAdapter (ilDB $db)
 
 getAll ()
 Reads all items from database. More...
 
 destroy ()
 
 save (ilBuddySystemRelation $relation)
 

Data Fields

const TYPE_APPROVED = 'app'
 
const TYPE_REQUESTED = 'req'
 
const TYPE_IGNORED = 'ign'
 

Protected Attributes

 $db
 
 $usr_id
 

Private Member Functions

 getRelationByDatabaseRecord ($row)
 
 addToApprovedBuddies (ilBuddySystemRelation $relation)
 
 removeFromApprovedBuddies (ilBuddySystemRelation $relation)
 
 addToRequestedBuddies (ilBuddySystemRelation $relation, $ignored)
 
 removeFromRequestedBuddies (ilBuddySystemRelation $relation)
 

Detailed Description

Member Function Documentation

◆ addToApprovedBuddies()

ilBuddySystemRelationRepository::addToApprovedBuddies ( ilBuddySystemRelation  $relation)
private
Parameters
ilBuddySystemRelation$relation

Definition at line 134 of file class.ilBuddySystemRelationRepository.php.

135 {
136 $this->db->replace(
137 'buddylist',
138 array(
139 'usr_id' => array('integer', $relation->getUserId()),
140 'buddy_usr_id' => array('integer', $relation->getBuddyUserId())
141 ),
142 array(
143 'ts' => array('integer', $relation->getTimestamp())
144 )
145 );
146
147 $this->db->replace(
148 'buddylist',
149 array(
150 'usr_id' => array('integer', $relation->getBuddyUserId()),
151 'buddy_usr_id' => array('integer', $relation->getUserId())
152 ),
153 array(
154 'ts' => array('integer', $relation->getTimestamp())
155 )
156 );
157 }

References ilBuddySystemRelation\getBuddyUserId(), ilBuddySystemRelation\getTimestamp(), and ilBuddySystemRelation\getUserId().

Referenced by save().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ addToRequestedBuddies()

ilBuddySystemRelationRepository::addToRequestedBuddies ( ilBuddySystemRelation  $relation,
  $ignored 
)
private
Parameters
ilBuddySystemRelation$relation
boolean$ignored

Definition at line 181 of file class.ilBuddySystemRelationRepository.php.

182 {
183 $this->db->replace(
184 'buddylist_requests',
185 array(
186 'usr_id' => array('integer', $relation->getUserId()),
187 'buddy_usr_id' => array('integer', $relation->getBuddyUserId())
188 ),
189 array(
190 'ts' => array('integer', $relation->getTimestamp()),
191 'ignored' => array('integer', (int)$ignored)
192 )
193 );
194 }

References ilBuddySystemRelation\getBuddyUserId(), ilBuddySystemRelation\getTimestamp(), and ilBuddySystemRelation\getUserId().

Referenced by save().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ destroy()

ilBuddySystemRelationRepository::destroy ( )

Definition at line 116 of file class.ilBuddySystemRelationRepository.php.

117 {
118 $this->db->queryF(
119 "DELETE FROM buddylist WHERE usr_id = %s OR buddy_usr_id = %s",
120 array('integer', 'integer'),
121 array($this->usr_id, $this->usr_id)
122 );
123
124 $this->db->queryF(
125 "DELETE FROM buddylist_requests WHERE usr_id = %s OR buddy_usr_id = %s",
126 array('integer', 'integer'),
127 array($this->usr_id, $this->usr_id)
128 );
129 }

◆ getAll()

ilBuddySystemRelationRepository::getAll ( )

Reads all items from database.

Returns
ilBuddySystemRelation[]

Definition at line 59 of file class.ilBuddySystemRelationRepository.php.

60 {
61 $relations = array();
62
63 $res = $this->db->queryF(
64 "
65 SELECT usr_id, buddy_usr_id, ts, '" . self::TYPE_APPROVED . "' rel_type FROM buddylist WHERE usr_id = %s
66 UNION
67 SELECT usr_id, buddy_usr_id, ts, IF(ignored = 1, '" . self::TYPE_IGNORED . "', '" . self::TYPE_REQUESTED . "') rel_type FROM buddylist_requests WHERE usr_id = %s OR buddy_usr_id = %s
68 ",
69 array('integer', 'integer', 'integer'),
70 array($this->usr_id, $this->usr_id, $this->usr_id)
71 );
72
73 while($row = $this->db->fetchAssoc($res))
74 {
75 $relation = $this->getRelationByDatabaseRecord($row);
76 $relation->setUserId($row['usr_id']);
77 $relation->setBuddyUserId($row['buddy_usr_id']);
78 $relation->setTimestamp($row['ts']);
79 $relation->setIsOwnedByRequest($relation->getUserId() == $this->usr_id);
80 $key = $this->usr_id == $relation->getUserId() ? $relation->getBuddyUserId() : $relation->getUserId();
81 $relations[$key] = $relation;
82 }
83
84 return $relations;
85 }

References $res, $row, and getRelationByDatabaseRecord().

+ Here is the call graph for this function:

◆ getDatabaseAdapter()

ilBuddySystemRelationRepository::getDatabaseAdapter ( )

◆ getRelationByDatabaseRecord()

ilBuddySystemRelationRepository::getRelationByDatabaseRecord (   $row)
private
Parameters
$row
Returns
ilBuddySystemRelation

Definition at line 91 of file class.ilBuddySystemRelationRepository.php.

92 {
93 if(self::TYPE_APPROVED == $row['rel_type'])
94 {
96 return $relation;
97 }
98 else
99 {
100 if(self::TYPE_IGNORED == $row['rel_type'])
101 {
103 return $relation;
104 }
105 else
106 {
108 return $relation;
109 }
110 }
111 }
Class ilBuddySystemRelation.

References $row.

Referenced by getAll().

+ Here is the caller graph for this function:

◆ removeFromApprovedBuddies()

ilBuddySystemRelationRepository::removeFromApprovedBuddies ( ilBuddySystemRelation  $relation)
private
Parameters
ilBuddySystemRelation$relation

Definition at line 162 of file class.ilBuddySystemRelationRepository.php.

163 {
164 $this->db->manipulateF(
165 "DELETE FROM buddylist WHERE usr_id = %s AND buddy_usr_id = %s",
166 array('integer', 'integer'),
167 array($relation->getUserId(), $relation->getBuddyUserId())
168 );
169
170 $this->db->manipulateF(
171 "DELETE FROM buddylist WHERE buddy_usr_id = %s AND usr_id = %s",
172 array('integer', 'integer'),
173 array($relation->getUserId(), $relation->getBuddyUserId())
174 );
175 }

References ilBuddySystemRelation\getBuddyUserId(), and ilBuddySystemRelation\getUserId().

Referenced by save().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ removeFromRequestedBuddies()

ilBuddySystemRelationRepository::removeFromRequestedBuddies ( ilBuddySystemRelation  $relation)
private
Parameters
ilBuddySystemRelation$relation

Definition at line 199 of file class.ilBuddySystemRelationRepository.php.

200 {
201 $this->db->manipulateF(
202 "DELETE FROM buddylist_requests WHERE usr_id = %s AND buddy_usr_id = %s",
203 array('integer', 'integer'),
204 array($relation->getUserId(), $relation->getBuddyUserId())
205 );
206
207 $this->db->manipulateF(
208 "DELETE FROM buddylist_requests WHERE buddy_usr_id = %s AND usr_id = %s",
209 array('integer', 'integer'),
210 array($relation->getUserId(), $relation->getBuddyUserId())
211 );
212 }

References ilBuddySystemRelation\getBuddyUserId(), and ilBuddySystemRelation\getUserId().

Referenced by save().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ save()

ilBuddySystemRelationRepository::save ( ilBuddySystemRelation  $relation)
Parameters
ilBuddySystemRelation$relation

Definition at line 217 of file class.ilBuddySystemRelationRepository.php.

218 {
219 $this->db->beginTransaction();
220
221 if($relation->isLinked())
222 {
223 $this->addToApprovedBuddies($relation);
224 }
225 else if($relation->wasLinked())
226 {
227 $this->removeFromApprovedBuddies($relation);
228 }
229
230 if($relation->isRequested())
231 {
232 $this->addToRequestedBuddies($relation, false);
233 }
234 else if($relation->isIgnored())
235 {
236 $this->addToRequestedBuddies($relation, true);
237 }
238 else if($relation->wasRequested() || $relation->wasIgnored())
239 {
240 $this->removeFromRequestedBuddies($relation);
241 }
242
243 $this->db->commit();
244 }
removeFromRequestedBuddies(ilBuddySystemRelation $relation)
removeFromApprovedBuddies(ilBuddySystemRelation $relation)
addToRequestedBuddies(ilBuddySystemRelation $relation, $ignored)
addToApprovedBuddies(ilBuddySystemRelation $relation)

References addToApprovedBuddies(), addToRequestedBuddies(), ilBuddySystemRelation\isIgnored(), ilBuddySystemRelation\isLinked(), ilBuddySystemRelation\isRequested(), removeFromApprovedBuddies(), removeFromRequestedBuddies(), ilBuddySystemRelation\wasIgnored(), ilBuddySystemRelation\wasLinked(), and ilBuddySystemRelation\wasRequested().

+ Here is the call graph for this function:

◆ setDatabaseAdapter()

ilBuddySystemRelationRepository::setDatabaseAdapter ( ilDB  $db)
Parameters
ilDB$db

Definition at line 50 of file class.ilBuddySystemRelationRepository.php.

51 {
52 $this->db = $db;
53 }

References $db.

Field Documentation

◆ $db

ilBuddySystemRelationRepository::$db
protected

◆ $usr_id

int ilBuddySystemRelationRepository::$usr_id
protected

Definition at line 23 of file class.ilBuddySystemRelationRepository.php.

◆ TYPE_APPROVED

const ilBuddySystemRelationRepository::TYPE_APPROVED = 'app'

Definition at line 11 of file class.ilBuddySystemRelationRepository.php.

◆ TYPE_IGNORED

const ilBuddySystemRelationRepository::TYPE_IGNORED = 'ign'

Definition at line 13 of file class.ilBuddySystemRelationRepository.php.

◆ TYPE_REQUESTED

const ilBuddySystemRelationRepository::TYPE_REQUESTED = 'req'

Definition at line 12 of file class.ilBuddySystemRelationRepository.php.


The documentation for this class was generated from the following file: