Commit | Line | Data |
---|---|---|
f0acec37 CW |
1 | <?php |
2 | /* | |
3 | +--------------------------------------------------------------------+ | |
4 | | Copyright CiviCRM LLC. All rights reserved. | | |
5 | | | | |
6 | | This work is published under the GNU AGPLv3 license with some | | |
7 | | permitted exceptions and without any warranty. For full license | | |
8 | | and copyright information, see https://civicrm.org/licensing | | |
9 | +--------------------------------------------------------------------+ | |
10 | */ | |
11 | ||
12 | namespace Civi\Api4\Query; | |
13 | ||
14 | /** | |
15 | * Sql function | |
16 | */ | |
17 | class SqlFunctionCOUNT extends SqlFunction { | |
18 | ||
e7f6def6 CW |
19 | protected static $category = self::CATEGORY_AGGREGATE; |
20 | ||
f0acec37 CW |
21 | protected static $params = [ |
22 | [ | |
23 | 'prefix' => ['', 'DISTINCT', 'ALL'], | |
fa7465e4 | 24 | 'max_expr' => 1, |
f0acec37 CW |
25 | 'must_be' => ['SqlField', 'SqlWild'], |
26 | 'cant_be' => [], | |
27 | ], | |
28 | ]; | |
29 | ||
7ce7b1cd | 30 | /** |
daf464c1 | 31 | * Reformat result as integer |
7ce7b1cd CW |
32 | * |
33 | * @see \Civi\Api4\Utils\FormattingUtil::formatOutputValues | |
34 | * @param string $value | |
259207d0 | 35 | * @param string $dataType |
7ce7b1cd CW |
36 | * @return string|array |
37 | */ | |
259207d0 CW |
38 | public function formatOutputValue($value, &$dataType) { |
39 | // Count is always an integer | |
40 | $dataType = 'Integer'; | |
7ce7b1cd CW |
41 | return (int) $value; |
42 | } | |
43 | ||
9cae8a07 CW |
44 | /** |
45 | * @return string | |
46 | */ | |
47 | public static function getTitle(): string { | |
48 | return ts('Count'); | |
49 | } | |
50 | ||
f0acec37 | 51 | } |