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.

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

Referenced by save().

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  }
+ 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.

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

Referenced by save().

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  }
+ 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.

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

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  }
+ Here is the call graph for this function:

◆ getDatabaseAdapter()

ilBuddySystemRelationRepository::getDatabaseAdapter ( )
Returns
ilDB

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

References $db.

◆ getRelationByDatabaseRecord()

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

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

References $row.

Referenced by getAll().

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.
+ 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.

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

Referenced by save().

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  }
+ 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.

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

Referenced by save().

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  }
+ 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.

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

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)
addToApprovedBuddies(ilBuddySystemRelation $relation)
addToRequestedBuddies(ilBuddySystemRelation $relation, $ignored)
+ 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.

References $db.

Field Documentation

◆ $db

ilBuddySystemRelationRepository::$db
protected

◆ $usr_id

int ilBuddySystemRelationRepository::$usr_id
protected

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

Referenced by getAll().

◆ 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: