3 * Copyright (c) Xerox Corporation, Codendi Team, 2001-2009. All rights reserved
5 * This file is a part of Codendi.
7 * Codendi is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
12 * Codendi is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with Codendi. If not, see <http://www.gnu.org/licenses/>.
20 require_once 'common/dao/include/DataAccessObject.class.php';
23 * Data Access Object for PluginHudsonJob
25 class PluginHudsonJobDao extends DataAccessObject {
27 * Constructs the PluginHudsonJobDao
28 * @param $da instance of the DataAccess class
30 function PluginHudsonJobDao( $da ) {
31 DataAccessObject::DataAccessObject($da);
35 * Gets all jobs in the db
36 * @return DataAccessResult
38 function & searchAll() {
39 $sql = "SELECT * FROM plugin_hudson_job";
40 return $this->retrieve($sql);
44 * Searches PluginHudsonJob by Codendi group ID
45 * @return DataAccessResult
47 function & searchByGroupID($group_id) {
49 FROM plugin_hudson_job
51 $group_id = $this->da->quoteSmart($group_id);
52 return $this->retrieve($sql,array($group_id));
56 * Searches PluginHudsonJob by job ID
57 * @return DataAccessResult
59 function & searchByJobID($job_id) {
61 FROM plugin_hudson_job
63 $job_id = $this->da->quoteSmart($job_id);
64 return $this->retrieve($sql,array($job_id));
68 * Searches PluginHudsonJob by job name
69 * @return DataAccessResult
71 function & searchByJobName($job_name) {
73 FROM plugin_hudson_job
75 $job_name = $this->da->quoteSmart($job_name);
76 return $this->retrieve($sql,array($job_name));
80 * Searches PluginHudsonJob by user ID
81 * means "all the jobs of all projects the user is member of"
82 * @return DataAccessResult
84 function & searchByUserID($user_id) {
86 FROM plugin_hudson_job j, users u, user_group ug
87 WHERE ug.group_id = j.group_id AND
88 u.user_id = ug.user_id AND
90 $user_id = $this->da->quoteSmart($user_id);
91 return $this->retrieve($sql,array($user_id));
95 * create a row in the table plugin_hudson_job
96 * @return true if there is no error
98 function createHudsonJob($group_id, $hudson_job_url, $job_name, $use_svn_trigger = false, $use_cvs_trigger = false, $token = null) {
99 $sql = "INSERT INTO plugin_hudson_job (group_id, job_url, name, use_svn_trigger, use_cvs_trigger, token) VALUES ($1, $2, $3, $4, $5, $6)";
100 $group_id = $this->da->quoteSmart($group_id);
101 $hudson_job_url = $this->da->quoteSmart($hudson_job_url);
102 $job_name = $this->da->quoteSmart($job_name);
103 $use_svn_trigger = ($use_svn_trigger?1:0);
104 $use_cvs_trigger = ($use_cvs_trigger?1:0);
105 $token = (($token !== null)?$this->da->quoteSmart($token):$this->da->quoteSmart(''));
106 $ok = $this->update($sql,array($group_id, $hudson_job_url, $job_name , $use_svn_trigger, $use_cvs_trigger,$token));
110 function updateHudsonJob($job_id, $hudson_job_url, $job_name, $use_svn_trigger = false, $use_cvs_trigger = false, $token = null) {
111 $sql = "UPDATE plugin_hudson_job SET job_url = $1, name = $2, use_svn_trigger = $3, use_cvs_trigger = $4, token = $5 WHERE job_id = $6";
112 $hudson_job_url = $this->da->quoteSmart($hudson_job_url);
113 $job_name = $this->da->quoteSmart($job_name);
114 $use_svn_trigger = ($use_svn_trigger?1:0);
115 $use_cvs_trigger = ($use_cvs_trigger?1:0);
116 $token = (($token !== null)?$this->da->quoteSmart($token):$this->da->quoteSmart(''));
117 $job_id=$this->da->quoteSmart($job_id);
118 $ok = $this->update($sql,array($hudson_job_url, $job_name , $use_svn_trigger, $use_cvs_trigger,$token, $job_id));
122 function deleteHudsonJob($job_id) {
123 $sql = "DELETE FROM plugin_hudson_job WHERE job_id = $1";
124 $job_id=$this->da->quoteSmart($job_id);
125 $updated = $this->update($sql,array($job_id));
129 function deleteHudsonJobsByGroupID($group_id) {
130 $sql = "DELETE FROM plugin_hudson_job WHERE group_id = $1";
131 $group_id = $this->da->quoteSmart($group_id);
132 $updated = $this->update($sql,array($group_id));