| 
									
										
										
										
											2013-08-09 18:55:55 +03:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * ownCloud - Office App | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @author Victor Dubiniuk | 
					
						
							|  |  |  |  * @copyright 2013 Victor Dubiniuk victor.dubiniuk@gmail.com | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This file is licensed under the Affero General Public License version 3 or | 
					
						
							|  |  |  |  * later. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace OCA\Office; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Member { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	const DEFAULT_ACTIVITY_THRESHOLD = 600; // 10 Minutes
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	public static function add($esId, $displayname, $color){ | 
					
						
							| 
									
										
										
										
											2013-08-10 01:00:25 +03:00
										 |  |  | 		$query = \OCP\DB::prepare('INSERT INTO `*PREFIX*office_member`  (`es_id`, `uid`, `color`, `last_activity`) VALUES (?, ?, ?, ?) '); | 
					
						
							| 
									
										
										
										
											2013-08-09 18:55:55 +03:00
										 |  |  | 		$query->execute(array( | 
					
						
							|  |  |  | 			$esId, | 
					
						
							| 
									
										
										
										
											2013-08-09 19:49:30 +03:00
										 |  |  | 			\OCP\User::getUser(), | 
					
						
							| 
									
										
										
										
											2013-08-09 18:55:55 +03:00
										 |  |  | 			$color, | 
					
						
							|  |  |  | 			time() | 
					
						
							|  |  |  | 		)); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		return \OCP\DB::insertid(`*PREFIX*office_member`); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	public static function getMember($id){ | 
					
						
							| 
									
										
										
										
											2013-08-09 20:30:14 +03:00
										 |  |  | 		$query = \OCP\DB::prepare('SELECT * FROM `*PREFIX*office_member` WHERE `member_id`= ?'); | 
					
						
							| 
									
										
										
										
											2013-08-09 18:55:55 +03:00
										 |  |  | 		$result = $query->execute(array($id)); | 
					
						
							|  |  |  | 		return $result->fetchRow(); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	public static function getMembersAsArray($ids){ | 
					
						
							|  |  |  | 		$memberCount = count($ids); | 
					
						
							|  |  |  | 		if (!$memberCount || !$is_array($ids)){ | 
					
						
							|  |  |  | 			return array(); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		 | 
					
						
							|  |  |  | 		$placeholders = array_fill(0, $memberCount, '?'); | 
					
						
							|  |  |  | 		$stmt = implode(', ', $placeholders); | 
					
						
							| 
									
										
										
										
											2013-08-09 20:30:14 +03:00
										 |  |  | 		$query = \OCP\DB::prepare('SELECT * FROM `*PREFIX*office_member` WHERE `member_id`IN (' . $stmt . ')'); | 
					
						
							| 
									
										
										
										
											2013-08-09 18:55:55 +03:00
										 |  |  | 		$result = $query->execute(array($ids)); | 
					
						
							|  |  |  | 		return $result->fetchAll(); | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2013-08-12 15:49:15 +03:00
										 |  |  | 	 | 
					
						
							|  |  |  | 	public static function updateMemberActivity($memberId){ | 
					
						
							|  |  |  | 		$query = \OCP\DB::prepare('UPDATE `*PREFIX*office_member`  SET `last_activity`=? WHERE `member_id`=?'); | 
					
						
							|  |  |  | 		$query->execute(array( | 
					
						
							|  |  |  | 			time(), | 
					
						
							|  |  |  | 			$memberId | 
					
						
							|  |  |  | 		)); | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2013-08-09 18:55:55 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	public static function getMembersByEsId($esId, $lastActivity = null){ | 
					
						
							|  |  |  | 		if (is_null($lastActivity)){ | 
					
						
							|  |  |  | 			$activeSince = time() - self::ACTIVITY_THRESHOLD; | 
					
						
							|  |  |  | 		} else { | 
					
						
							|  |  |  | 			$activeSince = $lastActivity; | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-10 01:00:25 +03:00
										 |  |  | 		$query = \OCP\DB::prepare('SELECT * FROM `*PREFIX*office_member` WHERE `es_id`= ? and last_activity > ?'); | 
					
						
							| 
									
										
										
										
											2013-08-09 18:55:55 +03:00
										 |  |  | 		$result = $query->execute(array($esId, $activeSince)); | 
					
						
							|  |  |  | 		return $result->fetchAll(); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 |