3 * Copyright (c) Xerox Corporation, Codendi Team, 2001-2009. All rights reserved
5 * This file is a part of Fusionforge.
7 * Fusionforge 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 * Fusionforge 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 Fusionforge. If not, see <http://www.gnu.org/licenses/>.
21 require_once 'common/dao/include/DataAccessObject.class.php';
24 * Data Access Object for PluginHudsonJob
26 class PluginHudsonJobDao extends DataAccessObject {
28 * Constructs the PluginHudsonJobDao
29 * @param $da instance of the DataAccess class
31 function PluginHudsonJobDao( $da ) {
32 DataAccessObject::DataAccessObject($da);
36 * Gets all jobs in the db
37 * @return DataAccessResult
39 function & searchAll() {
40 $sql = "SELECT * FROM plugin_hudson_job";
41 return $this->retrieve($sql, array());
45 * Searches PluginHudsonJob by Codendi group ID
46 * @return DataAccessResult
48 function & searchByGroupID($group_id) {
50 FROM plugin_hudson_job
52 $group_id = $this->da->quoteSmart($group_id);
53 return $this->retrieve($sql,array($group_id));
57 * Searches PluginHudsonJob by job ID
58 * @return DataAccessResult
60 function & searchByJobID($job_id) {
62 FROM plugin_hudson_job
64 $job_id = $this->da->quoteSmart($job_id);
65 return $this->retrieve($sql,array($job_id));
69 * Searches PluginHudsonJob by job name
70 * @return DataAccessResult
72 function & searchByJobName($job_name) {
74 FROM plugin_hudson_job
76 $job_name = $this->da->quoteSmart($job_name);
77 return $this->retrieve($sql,array($job_name));
81 * Searches PluginHudsonJob by user ID
82 * means "all the jobs of all projects the user is member of"
83 * @return DataAccessResult
85 function & searchByUserID($user_id) {
87 FROM plugin_hudson_job j, users u, user_group ug
88 WHERE ug.group_id = j.group_id AND
89 u.user_id = ug.user_id AND
91 $user_id = $this->da->quoteSmart($user_id);
92 return $this->retrieve($sql,array($user_id));
96 * create a row in the table plugin_hudson_job
97 * @return true if there is no error
99 function createHudsonJob($group_id, $hudson_job_url, $job_name, $use_svn_trigger = false, $use_cvs_trigger = false, $token = null) {
100 $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)";
101 $group_id = $this->da->quoteSmart($group_id);
102 $hudson_job_url = $this->da->quoteSmart($hudson_job_url);
103 $job_name = $this->da->quoteSmart($job_name);
104 $use_svn_trigger = ($use_svn_trigger?1:0);
105 $use_cvs_trigger = ($use_cvs_trigger?1:0);
106 $token = (($token !== null)?$this->da->quoteSmart($token):$this->da->quoteSmart(''));
107 $ok = $this->update($sql,array($group_id, $hudson_job_url, $job_name , $use_svn_trigger, $use_cvs_trigger,$token));
111 function updateHudsonJob($job_id, $hudson_job_url, $job_name, $use_svn_trigger = false, $use_cvs_trigger = false, $token = null) {
112 $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";
113 $hudson_job_url = $this->da->quoteSmart($hudson_job_url);
114 $job_name = $this->da->quoteSmart($job_name);
115 $use_svn_trigger = ($use_svn_trigger?1:0);
116 $use_cvs_trigger = ($use_cvs_trigger?1:0);
117 $token = (($token !== null)?$this->da->quoteSmart($token):$this->da->quoteSmart(''));
118 $job_id=$this->da->quoteSmart($job_id);
119 $ok = $this->update($sql,array($hudson_job_url, $job_name , $use_svn_trigger, $use_cvs_trigger,$token, $job_id));
123 function deleteHudsonJob($job_id) {
124 $sql = "DELETE FROM plugin_hudson_job WHERE job_id = $1";
125 $job_id=$this->da->quoteSmart($job_id);
126 $updated = $this->update($sql,array($job_id));
130 function deleteHudsonJobsByGroupID($group_id) {
131 $sql = "DELETE FROM plugin_hudson_job WHERE group_id = $1";
132 $group_id = $this->da->quoteSmart($group_id);
133 $updated = $this->update($sql,array($group_id));