PageRenderTime 26ms CodeModel.GetById 37ms RepoModel.GetById 0ms app.codeStats 0ms

/frontend/server/src/DAO/Base/ProblemsetIdentityRequest.php

https://github.com/omegaup/omegaup
PHP | 374 lines | 251 code | 10 blank | 113 comment | 9 complexity | 067410b378c9b092186d528a4d781a5c MD5 | raw file
  1. <?php
  2. /** ************************************************************************ *
  3. * !ATENCION! *
  4. * *
  5. * Este codigo es generado automáticamente. Si lo modificas, tus cambios *
  6. * serán reemplazados la proxima vez que se autogenere el código. *
  7. * *
  8. * ************************************************************************* */
  9. namespace OmegaUp\DAO\Base;
  10. /** ProblemsetIdentityRequest Data Access Object (DAO) Base.
  11. *
  12. * Esta clase contiene toda la manipulacion de bases de datos que se necesita
  13. * para almacenar de forma permanente y recuperar instancias de objetos
  14. * {@link \OmegaUp\DAO\VO\ProblemsetIdentityRequest}.
  15. * @access public
  16. * @abstract
  17. */
  18. abstract class ProblemsetIdentityRequest {
  19. /**
  20. * Guardar registros.
  21. *
  22. * Este metodo guarda el estado actual del objeto {@link \OmegaUp\DAO\VO\ProblemsetIdentityRequest}
  23. * pasado en la base de datos. La llave primaria indicará qué instancia va
  24. * a ser actualizada en base de datos. Si la llave primara o combinación de
  25. * llaves primarias que describen una fila que no se encuentra en la base de
  26. * datos, entonces replace() creará una nueva fila.
  27. *
  28. * @throws \OmegaUp\Exceptions\NotFoundException si las columnas de la
  29. * llave primaria están vacías.
  30. *
  31. * @param \OmegaUp\DAO\VO\ProblemsetIdentityRequest $Problemset_Identity_Request El
  32. * objeto de tipo {@link \OmegaUp\DAO\VO\ProblemsetIdentityRequest}.
  33. *
  34. * @return int Un entero mayor o igual a cero identificando el número de filas afectadas.
  35. */
  36. final public static function replace(
  37. \OmegaUp\DAO\VO\ProblemsetIdentityRequest $Problemset_Identity_Request
  38. ): int {
  39. if (
  40. empty($Problemset_Identity_Request->identity_id) ||
  41. empty($Problemset_Identity_Request->problemset_id)
  42. ) {
  43. throw new \OmegaUp\Exceptions\NotFoundException('recordNotFound');
  44. }
  45. $sql = '
  46. REPLACE INTO
  47. Problemset_Identity_Request (
  48. `identity_id`,
  49. `problemset_id`,
  50. `request_time`,
  51. `last_update`,
  52. `accepted`,
  53. `extra_note`
  54. ) VALUES (
  55. ?,
  56. ?,
  57. ?,
  58. ?,
  59. ?,
  60. ?
  61. );';
  62. $params = [
  63. $Problemset_Identity_Request->identity_id,
  64. $Problemset_Identity_Request->problemset_id,
  65. \OmegaUp\DAO\DAO::toMySQLTimestamp(
  66. $Problemset_Identity_Request->request_time
  67. ),
  68. \OmegaUp\DAO\DAO::toMySQLTimestamp(
  69. $Problemset_Identity_Request->last_update
  70. ),
  71. (
  72. !is_null($Problemset_Identity_Request->accepted) ?
  73. intval($Problemset_Identity_Request->accepted) :
  74. null
  75. ),
  76. $Problemset_Identity_Request->extra_note,
  77. ];
  78. \OmegaUp\MySQLConnection::getInstance()->Execute($sql, $params);
  79. return \OmegaUp\MySQLConnection::getInstance()->Affected_Rows();
  80. }
  81. /**
  82. * Actualizar registros.
  83. *
  84. * @param \OmegaUp\DAO\VO\ProblemsetIdentityRequest $Problemset_Identity_Request El objeto de tipo ProblemsetIdentityRequest a actualizar.
  85. *
  86. * @return int Número de filas afectadas
  87. */
  88. final public static function update(
  89. \OmegaUp\DAO\VO\ProblemsetIdentityRequest $Problemset_Identity_Request
  90. ): int {
  91. $sql = '
  92. UPDATE
  93. `Problemset_Identity_Request`
  94. SET
  95. `request_time` = ?,
  96. `last_update` = ?,
  97. `accepted` = ?,
  98. `extra_note` = ?
  99. WHERE
  100. (
  101. `identity_id` = ? AND
  102. `problemset_id` = ?
  103. );';
  104. $params = [
  105. \OmegaUp\DAO\DAO::toMySQLTimestamp(
  106. $Problemset_Identity_Request->request_time
  107. ),
  108. \OmegaUp\DAO\DAO::toMySQLTimestamp(
  109. $Problemset_Identity_Request->last_update
  110. ),
  111. (
  112. is_null($Problemset_Identity_Request->accepted) ?
  113. null :
  114. intval($Problemset_Identity_Request->accepted)
  115. ),
  116. $Problemset_Identity_Request->extra_note,
  117. (
  118. is_null($Problemset_Identity_Request->identity_id) ?
  119. null :
  120. intval($Problemset_Identity_Request->identity_id)
  121. ),
  122. (
  123. is_null($Problemset_Identity_Request->problemset_id) ?
  124. null :
  125. intval($Problemset_Identity_Request->problemset_id)
  126. ),
  127. ];
  128. \OmegaUp\MySQLConnection::getInstance()->Execute($sql, $params);
  129. return \OmegaUp\MySQLConnection::getInstance()->Affected_Rows();
  130. }
  131. /**
  132. * Obtener {@link \OmegaUp\DAO\VO\ProblemsetIdentityRequest} por llave primaria.
  133. *
  134. * Este método cargará un objeto {@link \OmegaUp\DAO\VO\ProblemsetIdentityRequest}
  135. * de la base de datos usando sus llaves primarias.
  136. *
  137. * @return ?\OmegaUp\DAO\VO\ProblemsetIdentityRequest Un objeto del tipo
  138. * {@link \OmegaUp\DAO\VO\ProblemsetIdentityRequest} o NULL si no hay tal
  139. * registro.
  140. */
  141. final public static function getByPK(
  142. ?int $identity_id,
  143. ?int $problemset_id
  144. ): ?\OmegaUp\DAO\VO\ProblemsetIdentityRequest {
  145. $sql = '
  146. SELECT
  147. `Problemset_Identity_Request`.`identity_id`,
  148. `Problemset_Identity_Request`.`problemset_id`,
  149. `Problemset_Identity_Request`.`request_time`,
  150. `Problemset_Identity_Request`.`last_update`,
  151. `Problemset_Identity_Request`.`accepted`,
  152. `Problemset_Identity_Request`.`extra_note`
  153. FROM
  154. `Problemset_Identity_Request`
  155. WHERE
  156. (
  157. `identity_id` = ? AND
  158. `problemset_id` = ?
  159. )
  160. LIMIT 1;';
  161. $params = [$identity_id, $problemset_id];
  162. $row = \OmegaUp\MySQLConnection::getInstance()->GetRow($sql, $params);
  163. if (empty($row)) {
  164. return null;
  165. }
  166. return new \OmegaUp\DAO\VO\ProblemsetIdentityRequest($row);
  167. }
  168. /**
  169. * Verificar si existe un {@link \OmegaUp\DAO\VO\ProblemsetIdentityRequest} por llave primaria.
  170. *
  171. * Este método verifica la existencia de un objeto {@link \OmegaUp\DAO\VO\ProblemsetIdentityRequest}
  172. * de la base de datos usando sus llaves primarias **sin necesidad de cargar sus campos**.
  173. *
  174. * Este método es más eficiente que una llamada a getByPK cuando no se van a utilizar
  175. * los campos.
  176. *
  177. * @return bool Si existe o no tal registro.
  178. */
  179. final public static function existsByPK(
  180. ?int $identity_id,
  181. ?int $problemset_id
  182. ): bool {
  183. $sql = '
  184. SELECT
  185. COUNT(*)
  186. FROM
  187. `Problemset_Identity_Request`
  188. WHERE
  189. (
  190. `identity_id` = ? AND
  191. `problemset_id` = ?
  192. );';
  193. $params = [$identity_id, $problemset_id];
  194. /** @var int */
  195. $count = \OmegaUp\MySQLConnection::getInstance()->GetOne($sql, $params);
  196. return $count > 0;
  197. }
  198. /**
  199. * Eliminar registros.
  200. *
  201. * Este metodo eliminará el registro identificado por la llave primaria en
  202. * el objeto {@link \OmegaUp\DAO\VO\ProblemsetIdentityRequest} suministrado.
  203. * Una vez que se ha eliminado un objeto, este no puede ser restaurado
  204. * llamando a {@link replace()}, ya que este último creará un nuevo
  205. * registro con una llave primaria distinta a la que estaba en el objeto
  206. * eliminado.
  207. *
  208. * Si no puede encontrar el registro a eliminar,
  209. * {@link \OmegaUp\Exceptions\NotFoundException} será arrojada.
  210. *
  211. * @param \OmegaUp\DAO\VO\ProblemsetIdentityRequest $Problemset_Identity_Request El
  212. * objeto de tipo \OmegaUp\DAO\VO\ProblemsetIdentityRequest a eliminar
  213. *
  214. * @throws \OmegaUp\Exceptions\NotFoundException Se arroja cuando no se
  215. * encuentra el objeto a eliminar en la base de datos.
  216. */
  217. final public static function delete(
  218. \OmegaUp\DAO\VO\ProblemsetIdentityRequest $Problemset_Identity_Request
  219. ): void {
  220. $sql = '
  221. DELETE FROM
  222. `Problemset_Identity_Request`
  223. WHERE
  224. (
  225. `identity_id` = ? AND
  226. `problemset_id` = ?
  227. );';
  228. $params = [
  229. $Problemset_Identity_Request->identity_id,
  230. $Problemset_Identity_Request->problemset_id
  231. ];
  232. \OmegaUp\MySQLConnection::getInstance()->Execute($sql, $params);
  233. if (\OmegaUp\MySQLConnection::getInstance()->Affected_Rows() == 0) {
  234. throw new \OmegaUp\Exceptions\NotFoundException('recordNotFound');
  235. }
  236. }
  237. /**
  238. * Obtener todas las filas.
  239. *
  240. * Esta funcion leerá todos los contenidos de la tabla en la base de datos
  241. * y construirá un arreglo que contiene objetos de tipo
  242. * {@link \OmegaUp\DAO\VO\ProblemsetIdentityRequest}.
  243. * Este método consume una cantidad de memoria proporcional al número de
  244. * registros regresados, así que sólo debe usarse cuando la tabla en
  245. * cuestión es pequeña o se proporcionan parámetros para obtener un menor
  246. * número de filas.
  247. *
  248. * @param ?int $pagina Página a ver.
  249. * @param int $filasPorPagina Filas por página.
  250. * @param ?string $orden Debe ser una cadena con el nombre de una columna en la base de datos.
  251. * @param string $tipoDeOrden 'ASC' o 'DESC' el default es 'ASC'
  252. *
  253. * @return list<\OmegaUp\DAO\VO\ProblemsetIdentityRequest> Un arreglo que contiene objetos del tipo
  254. * {@link \OmegaUp\DAO\VO\ProblemsetIdentityRequest}.
  255. */
  256. final public static function getAll(
  257. ?int $pagina = null,
  258. int $filasPorPagina = 100,
  259. ?string $orden = null,
  260. string $tipoDeOrden = 'ASC'
  261. ): array {
  262. $sql = '
  263. SELECT
  264. `Problemset_Identity_Request`.`identity_id`,
  265. `Problemset_Identity_Request`.`problemset_id`,
  266. `Problemset_Identity_Request`.`request_time`,
  267. `Problemset_Identity_Request`.`last_update`,
  268. `Problemset_Identity_Request`.`accepted`,
  269. `Problemset_Identity_Request`.`extra_note`
  270. FROM
  271. `Problemset_Identity_Request`
  272. ';
  273. if (!is_null($orden)) {
  274. $sql .= (
  275. ' ORDER BY `' .
  276. \OmegaUp\MySQLConnection::getInstance()->escape($orden) .
  277. '` ' .
  278. ($tipoDeOrden == 'DESC' ? 'DESC' : 'ASC')
  279. );
  280. }
  281. if (!is_null($pagina)) {
  282. $sql .= (
  283. ' LIMIT ' .
  284. (($pagina - 1) * $filasPorPagina) .
  285. ', ' .
  286. intval($filasPorPagina)
  287. );
  288. }
  289. $allData = [];
  290. foreach (
  291. \OmegaUp\MySQLConnection::getInstance()->GetAll($sql) as $row
  292. ) {
  293. $allData[] = new \OmegaUp\DAO\VO\ProblemsetIdentityRequest(
  294. $row
  295. );
  296. }
  297. return $allData;
  298. }
  299. /**
  300. * Crear registros.
  301. *
  302. * Este metodo creará una nueva fila en la base de datos de acuerdo con los
  303. * contenidos del objeto {@link \OmegaUp\DAO\VO\ProblemsetIdentityRequest}
  304. * suministrado.
  305. *
  306. * @param \OmegaUp\DAO\VO\ProblemsetIdentityRequest $Problemset_Identity_Request El
  307. * objeto de tipo {@link \OmegaUp\DAO\VO\ProblemsetIdentityRequest}
  308. * a crear.
  309. *
  310. * @return int Un entero mayor o igual a cero identificando el número de
  311. * filas afectadas.
  312. */
  313. final public static function create(
  314. \OmegaUp\DAO\VO\ProblemsetIdentityRequest $Problemset_Identity_Request
  315. ): int {
  316. $sql = '
  317. INSERT INTO
  318. `Problemset_Identity_Request` (
  319. `identity_id`,
  320. `problemset_id`,
  321. `request_time`,
  322. `last_update`,
  323. `accepted`,
  324. `extra_note`
  325. ) VALUES (
  326. ?,
  327. ?,
  328. ?,
  329. ?,
  330. ?,
  331. ?
  332. );';
  333. $params = [
  334. (
  335. is_null($Problemset_Identity_Request->identity_id) ?
  336. null :
  337. intval($Problemset_Identity_Request->identity_id)
  338. ),
  339. (
  340. is_null($Problemset_Identity_Request->problemset_id) ?
  341. null :
  342. intval($Problemset_Identity_Request->problemset_id)
  343. ),
  344. \OmegaUp\DAO\DAO::toMySQLTimestamp(
  345. $Problemset_Identity_Request->request_time
  346. ),
  347. \OmegaUp\DAO\DAO::toMySQLTimestamp(
  348. $Problemset_Identity_Request->last_update
  349. ),
  350. (
  351. is_null($Problemset_Identity_Request->accepted) ?
  352. null :
  353. intval($Problemset_Identity_Request->accepted)
  354. ),
  355. $Problemset_Identity_Request->extra_note,
  356. ];
  357. \OmegaUp\MySQLConnection::getInstance()->Execute($sql, $params);
  358. $affectedRows = \OmegaUp\MySQLConnection::getInstance()->Affected_Rows();
  359. if ($affectedRows == 0) {
  360. return 0;
  361. }
  362. return $affectedRows;
  363. }
  364. }