3 * @copyright Copyright (C) 2010-2024, the Friendica project
5 * @license GNU AGPL version 3 or any later version
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU Affero General Public License as
9 * published by the Free Software Foundation, either version 3 of the
10 * License, or (at your option) any later version.
12 * This program 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 Affero General Public License for more details.
17 * You should have received a copy of the GNU Affero General Public License
18 * along with this program. If not, see <https://www.gnu.org/licenses/>.
22 namespace Friendica\Model;
24 use Friendica\Database\Database;
25 use Friendica\Database\DBA;
32 * Insert a verb record and return its id
36 * @return integer verb id
39 public static function getID(string $verb): int
45 $id = array_search($verb, self::$verbs);
50 $verb_record = DBA::selectFirst('verb', ['id'], ['name' => $verb]);
51 if (DBA::isResult($verb_record)) {
52 self::$verbs[$verb_record['id']] = $verb;
53 return $verb_record['id'];
56 DBA::insert('verb', ['name' => $verb], Database::INSERT_IGNORE);
58 $id = DBA::lastInsertId();
59 self::$verbs[$id] = $verb;
65 * Return verb name for the given ID
70 public static function getByID(int $id): string
76 if (!empty(self::$verbs[$id])) {
77 return self::$verbs[$id];
80 $verb_record = DBA::selectFirst('verb', ['name'], ['id' => $id]);
81 if (!DBA::isResult($verb_record)) {
85 self::$verbs[$id] = $verb_record['name'];
87 return $verb_record['name'];