Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private func parseResponse(response: CardPOIMapper.ResponseCardPOI) -> [CardPOIMapper.PointSectionItem] {
- var items: [CardPOIMapper.PointSectionItem] = []
- // Группы атрибутов
- var groups = [String: [String]]()
- // Все возможные группы и их возможные значения
- let allGroups = MetadataServices.shared.categoriesService.attributesGroup(categoryInternalName: categoryInternalName)
- response.attributeValues.forEach({ [weak self](attribute) in
- guard let `self` = self else { return }
- if let item = CardPOIMapper.attributeValueToItem(
- categoryInternalName: self.categoryInternalName,
- internalName: attribute.key,
- value: attribute.value) {
- items = CardPOIMapper.addNewItemPOI(items: items, item: item)
- } else {
- allGroups.forEach { (group) in
- if let element = group.allowedValues.first(where: { $0.key == attribute.key}) {
- // если ключ Bool и есть в наличии, то формируется список к определенной группе
- if attribute.value.value as? Bool == true {
- let oldValue = groups[group.title] ?? []
- groups.updateValue(oldValue + [element.title], forKey: group.title)
- }
- }
- }
- }
- })
- for group in groups {
- let item = CardPOIMapper.PointSectionItem.listData(CardPOIMapper.ListDataPOI(title: group.key, items: group.value))
- items = CardPOIMapper.addNewItemPOI(items: items, item: item)
- }
- return items.sorted(by: { $1 > $0 })
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement