From da4d6eabddc322306b152b7d856b13c530f58e95 Mon Sep 17 00:00:00 2001 From: Zed Date: Sun, 27 Nov 2022 17:24:29 +0100 Subject: [PATCH] Add enum hooks to log parseHook jsony errors --- src/experimental/parser/unifiedcard.nim | 2 ++ src/experimental/types/unifiedcard.nim | 26 +++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/src/experimental/parser/unifiedcard.nim b/src/experimental/parser/unifiedcard.nim index 337c3b9..12689e1 100644 --- a/src/experimental/parser/unifiedcard.nim +++ b/src/experimental/parser/unifiedcard.nim @@ -82,6 +82,8 @@ proc parseUnifiedCard*(json: string): Card = component.parseMedia(card, result) of buttonGroup: discard + of unknown: + echo "ERROR: Unknown component type: ", json case component.kind of twitterListDetails: diff --git a/src/experimental/types/unifiedcard.nim b/src/experimental/types/unifiedcard.nim index 16500df..737fdd6 100644 --- a/src/experimental/types/unifiedcard.nim +++ b/src/experimental/types/unifiedcard.nim @@ -17,6 +17,7 @@ type twitterListDetails communityDetails mediaWithDetailsHorizontal + unknown Component* = object kind*: ComponentType @@ -77,3 +78,28 @@ converter fromText*(text: Text): string = text.content proc renameHook*(v: var HasTypeField; fieldName: var string) = if fieldName == "type": fieldName = "kind" + +proc enumHook*(s: string; v: var ComponentType) = + v = case s + of "details": details + of "media": media + of "swipeable_media": swipeableMedia + of "button_group": buttonGroup + of "app_store_details": appStoreDetails + of "twitter_list_details": twitterListDetails + of "community_details": communityDetails + of "media_with_details_horizontal": mediaWithDetailsHorizontal + else: echo "ERROR: Unknown enum value (ComponentType): ", s; unknown + +proc enumHook*(s: string; v: var AppType) = + v = case s + of "android_app": androidApp + of "iphone_app": iPhoneApp + of "ipad_app": iPadApp + else: echo "ERROR: Unknown enum value (AppType): ", s; androidApp + +proc enumHook*(s: string; v: var MediaType) = + v = case s + of "video": video + of "photo": photo + else: echo "ERROR: Unknown enum value (MediaType): ", s; photo