Add enum hooks to log parseHook jsony errors
This commit is contained in:
		
							parent
							
								
									6a7e56b613
								
							
						
					
					
						commit
						da4d6eabdd
					
				| 
						 | 
				
			
			@ -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:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue