r792: - Add a relation on bug.assignedto
[bugdar.git] / includes / api_bug.php
1 <?php
2 /*=====================================================================*\
3 || ###################################################################
4 || # Bugdar [#]version[#]
5 || # Copyright ©2002-[#]year[#] Iris Studios, Inc.
6 || #
7 || # This program 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; version [#]gpl[#] of the License.
10 || #
11 || # This program is distributed in the hope that it will be useful, but
12 || # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 || # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
14 || # more details.
15 || #
16 || # You should have received a copy of the GNU General Public License along
17 || # with this program; if not, write to the Free Software Foundation, Inc.,
18 || # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
19 || ###################################################################
20 \*=====================================================================*/
21
22 $GLOBALS['isso:callback']->load('api', null);
23
24 /**
25 * API: Bug
26 *
27 * @author Iris Studios, Inc.
28 * @copyright Copyright ©2002 - [#]year[#], Iris Studios, Inc.
29 * @version $Revision$
30 * @package Bugdar
31 *
32 */
33 class BugAPI extends API
34 {
35 /**
36 * Database fields
37 * @var array
38 * @access private
39 */
40 var $fields = array(
41 'bugid' => array(TYPE_UINT, REQ_AUTO, 'verify_nozero'),
42 'userid' => array(TYPE_UINT, REQ_NO),
43 'dateline' => array(TYPE_UINT, REQ_SET),
44 'productid' => array(TYPE_UINT, REQ_YES, ':self'),
45 'componentid' => array(TYPE_UINT, REQ_NO, ':self'),
46 'versionid' => array(TYPE_UINT, REQ_YES, ':self'),
47 'summary' => array(TYPE_STR, REQ_YES, 'verify_noempty'),
48 'priority' => array(TYPE_UINT, REQ_NO, ':self'),
49 'severity' => array(TYPE_UINT, REQ_NO, ':self'),
50 'status' => array(TYPE_UINT, REQ_NO, ':self'),
51 'resolution' => array(TYPE_UINT, REQ_NO, ':self'),
52 'assignedto' => array(TYPE_UINT, REQ_NO, ':self', array('includes/api_user.php', 'UserAPI'),
53 'duplicateof' => array(TYPE_STR, REQ_NO),
54 'dependency' => array(TYPE_STR, REQ_NO),
55 'hidden' => array(TYPE_BOOL, REQ_NO),
56 'initialreport' => array(TYPE_UINT, REQ_NO),
57 'lastposttime' => array(TYPE_UINT, REQ_NO),
58 'lastpostby' => array(TYPE_UINT, REQ_NO),
59 'hiddenlastposttime' => array(TYPE_UINT, REQ_NO),
60 'hiddenlastpostby' => array(TYPE_UINT, REQ_NO)
61 );
62
63 /**
64 * Database table
65 * @var string
66 * @access private
67 */
68 var $table = 'bug';
69
70 /**
71 * Table prefix
72 * @var string
73 * @access private
74 */
75 var $prefix = TABLE_PREFIX;
76
77 // ###################################################################
78 /**
79 * Set field: dateline
80 *
81 * @access private
82 */
83 function set_dateline()
84 {
85 $this->set('dateline', time());
86 }
87
88 // ###################################################################
89 /**
90 * Verify: productid
91 *
92 * @access private
93 */
94 function verify_productid()
95 {
96 if (!$this->registry->datastore['product'][ $this->values['productid'] ])
97 {
98 return false;
99 }
100 return true;
101 }
102
103 // ###################################################################
104 /**
105 * Verify: componentid
106 *
107 * @access private
108 */
109 function verify_componentid()
110 {
111
112 }
113
114 // ###################################################################
115 /**
116 * Verify: versionid
117 *
118 * @access private
119 */
120 function verify_versionid()
121 {
122 if (!$this->registry->datastore['version'][ $this->values['versionid'] ])
123 {
124 return false;
125 }
126 return true;
127 }
128
129 // ###################################################################
130 /**
131 * Verify: priority
132 *
133 * @access private
134 */
135 function verify_priority()
136 {
137 if (!$this->registry->datastore['priority'][ $this->values['priority'] ])
138 {
139 return false;
140 }
141 return true;
142 }
143
144 // ###################################################################
145 /**
146 * Verify: severity
147 *
148 * @access private
149 */
150 function verify_severity()
151 {
152 if (!$this->registry->datastore['severity'][ $this->values['severity'] ])
153 {
154 return false;
155 }
156 return true;
157 }
158
159 // ###################################################################
160 /**
161 * Verify: status
162 *
163 * @access private
164 */
165 function verify_status()
166 {
167 if (!$this->registry->datastore['status'][ $this->values['status'] ])
168 {
169 return false;
170 }
171 return true;
172 }
173
174 // ###################################################################
175 /**
176 * Verify: resolution
177 *
178 * @access private
179 */
180 function verify_resolution()
181 {
182 if (!$this->registry->datastore['resolution'][ $this->values['resolution'] ])
183 {
184 return false;
185 }
186 return true;
187 }
188
189 // ###################################################################
190 /**
191 * Verify: assignedto
192 *
193 * @access private
194 */
195 function verify_assignedto()
196 {
197 if (!$this->registry->datastore['assignedto'][ $this->values['assignedto'] ]['userid'])
198 {
199 return false;
200 }
201 return true;
202 }
203 }
204
205 /*=====================================================================*\
206 || ###################################################################
207 || # $HeadURL$
208 || # $Id$
209 || ###################################################################
210 \*=====================================================================*/
211 ?>