LCML/ДанныеAPI-формата
groupbyfield
groupbyfield - Группировка и сортировка данных
Метод
Part: LCML/Данные API-формата
Функция groupbyField группирует данные, представленные в формате models.ResponseData, по указанному полю и значению точки. Также функция выполняет сортировку данных внутри каждой группы по заданному полю и сортировочному значению.
Формат:
groupbyField queryData groupField groupPoint sortField sortPoint desc
queryData — входные данные, представленные в формате models.ResponseData.
groupField — название поля для группировки.
groupPoint — точка данных для определения ключа группировки (например, src, rev или value).
sortField — название поля для сортировки.
sortPoint — точка данных для сортировки (src, rev или value).
desc — булевое значение, указывающее порядок сортировки: true — по убыванию, false — по возрастанию. Результат:
Сгруппированные и отсортированные данные в виде карты ( map[string][]models.Data ), где:
Ключ — значение из поля groupField с учетом точки groupPoint.
Значение — список объектов models.Data, относящихся к группе. Ошибка (если произошла проблема с обработкой входных данных).
Пример использования:
{{ $groupedObjsMes := groupbyfield $objsMes "sender" "value" "_datecreate" "value" false }}
objfromid
objfromid - Получение объекта из массива объектов по ID
Метод
Part: LCML/Данные API-формата
Формат
objfromid dt id
- dt — массив объектов типа models.Data, в котором нужно найти объект по ID.
- id — строка, содержащая идентификатор объекта, который нужно найти. Результат
Возвращает объект, найденный в массиве, если его ID совпадает с переданным. Иначе, возвращается строка “nil”.
Пример использования
sortbyfield
sortbyfield - Сортирует объекты формата models.ResponseData по указанному полю.
Метод
Part: LCML/Данные API-формата
Формат:
sortbyfield data sortField sortPoint desc
data — входные данные в формате models.ResponseData, содержащие объекты для сортировки.
sortField — название поля для сортировки (например, _datecreate, Title ). Если пусто, используется сортировка по умолчанию.
sortPoint — уточняет, по какому атрибуту внутри объекта сортировать (например, value, src, rev ). Если пусто, используется сортировка по умолчанию.
desc — логическое значение:
true — сортировка по убыванию.
false — сортировка по возрастанию.
Результат:
Возвращает отсортированные данные в формате models.ResponseData. В случае ошибки возвращает nil и описание ошибки.
Пример использования:
{{$sortedObjsMes := sortbyfield $objsMes "_datecreate" "value" false}}
sortbyfieldint
sortbyfieldint - Сортирует объекты формата models.ResponseData по указанному полю, при этом если сортировка производится по полям src или value, значения приводятся к типу int.
Метод
Part: LCML/Данные API-формата
Формат:
sortbyfieldint data sortField sortPoint desc
data — входные данные в формате models.ResponseData, содержащие объекты для сортировки.
sortField — название поля для сортировки (например, Src, Rev ).
sortPoint — уточняет, по какому атрибуту внутри объекта сортировать (например, value, src, rev ).
desc — логическое значение:
true — сортировка по убыванию.
false — сортировка по возрастанию.
Результат:
Возвращает отсортированные данные в формате models.ResponseData. В случае ошибки возвращает nil и описание ошибки.
Пример использования:
{{$sortedObjsMes := sortbyfieldint $objsMes "priority" "value" true}}
Исходный объект:
{
"Data": [
{"Title": "Task A", "Attributes": {"priority": {"Value": "5", "Src": ""}}},
{"Title": "Task B", "Attributes": {"priority": {"Value": "3", "Src": ""}}},
{"Title": "Task C", "Attributes": {"priority": {"Value": "4", "Src": ""}}}
]
}
Результат сортировки:
{
"Data": [
{"Title": "Task A", "Attributes": {"priority": {"Value": "5", "Src": ""}}},
{"Title": "Task C", "Attributes": {"priority": {"Value": "4", "Src": ""}}},
{"Title": "Task B", "Attributes": {"priority": {"Value": "3", "Src": ""}}}
]
}