diff --git a/crates/fmp-py-gen/src/bin/gen_go/models.rs b/crates/fmp-py-gen/src/bin/gen_go/models.rs index 30ebbab..0401ac7 100644 --- a/crates/fmp-py-gen/src/bin/gen_go/models.rs +++ b/crates/fmp-py-gen/src/bin/gen_go/models.rs @@ -336,7 +336,7 @@ fn render_required_switch(model: &ModelPlan, out: &mut String) { /// The per-member decode a raw shadow value needs after the presence check. fn render_codec_block(model: &str, field: &GoField, local: &str, out: &mut String) { if field.raw_key { - render_raw_member(field, local, out); + render_raw_member(model, field, local, out); return; } match field.codec { @@ -352,10 +352,13 @@ fn render_codec_block(model: &str, field: &GoField, local: &str, out: &mut Strin let inner = field.public_ty.trim_start_matches('*'); let _ = writeln!( out, - "\tvar {local} {}\n\tif shadow.{}.Kind() != 'n' {{\n\t\tvar value {inner}\n\ - \t\tif err := json.Unmarshal(shadow.{}, &value); err != nil {{\n\ - \t\t\treturn err\n\t\t}}\n\t\t{local} = &value\n\t}}", - field.public_ty, field.name, field.name + "\tvar {local} {ty}\n\tif shadow.{name}.Kind() != 'n' {{\n\t\tvar value {inner}\n\ + \t\tif err := json.Unmarshal(shadow.{name}, &value); err != nil {{\n\ + \t\t\treturn memberDecodeError({model:?}, {wire:?}, shadow.{name}, err)\n\ + \t\t}}\n\t\t{local} = &value\n\t}}", + ty = field.public_ty, + name = field.name, + wire = field.wire ); } Codec::EmptyOrNullString | Codec::NullTextString => { @@ -367,10 +370,13 @@ fn render_codec_block(model: &str, field: &GoField, local: &str, out: &mut Strin }; let _ = writeln!( out, - "\tvar {local} {}\n\tif shadow.{}.Kind() != 'n' {{\n\t\tvar value {inner}\n\ - \t\tif err := json.Unmarshal(shadow.{}, &value); err != nil {{\n\ - \t\t\treturn err\n\t\t}}\n\t\tif value != {sentinel:?} {{\n\t\t\t{local} = &value\n\t\t}}\n\t}}", - field.public_ty, field.name, field.name + "\tvar {local} {ty}\n\tif shadow.{name}.Kind() != 'n' {{\n\t\tvar value {inner}\n\ + \t\tif err := json.Unmarshal(shadow.{name}, &value); err != nil {{\n\ + \t\t\treturn memberDecodeError({model:?}, {wire:?}, shadow.{name}, err)\n\t\t}}\n\ + \t\tif value != {sentinel:?} {{\n\t\t\t{local} = &value\n\t\t}}\n\t}}", + ty = field.public_ty, + name = field.name, + wire = field.wire ); } Codec::EmptyDate | Codec::EmptyOrNullDate => { @@ -436,7 +442,7 @@ fn member_tag(field: &GoField, options: &str) -> String { /// The decode of a raw-keyed plain member from the value `rawMember` found: /// missing and null were already reported for a required member and mean nil /// for an optional one. -fn render_raw_member(field: &GoField, local: &str, out: &mut String) { +fn render_raw_member(model: &str, field: &GoField, local: &str, out: &mut String) { let wire = format!("{local}Wire"); if field.optional { let inner = field.public_ty.trim_start_matches('*'); @@ -444,15 +450,18 @@ fn render_raw_member(field: &GoField, local: &str, out: &mut String) { out, "\tvar {local} {}\n\tif {wire} != nil {{\n\t\tvar value {inner}\n\ \t\tif err := json.Unmarshal({wire}, &value); err != nil {{\n\ - \t\t\treturn err\n\t\t}}\n\t\t{local} = &value\n\t}}", - field.public_ty + \t\t\treturn memberDecodeError({model:?}, {member:?}, {wire}, err)\n\ + \t\t}}\n\t\t{local} = &value\n\t}}", + field.public_ty, + member = field.wire ); } else { let _ = writeln!( out, "\tvar {local} {}\n\tif err := json.Unmarshal({wire}, &{local}); err != nil {{\n\ - \t\treturn err\n\t}}", - field.public_ty + \t\treturn memberDecodeError({model:?}, {member:?}, {wire}, err)\n\t}}", + field.public_ty, + member = field.wire ); } } diff --git a/crates/fmp-py-gen/src/bin/gen_go/tests.rs b/crates/fmp-py-gen/src/bin/gen_go/tests.rs index e4b4702..4ba383a 100644 --- a/crates/fmp-py-gen/src/bin/gen_go/tests.rs +++ b/crates/fmp-py-gen/src/bin/gen_go/tests.rs @@ -745,6 +745,48 @@ fn null_text_codec_decodes_the_null_text_and_null_to_nil_through_the_raw_shadow( } } +#[test] +fn shadow_decoded_members_report_their_failures_against_the_member() { + let aliases = BTreeMap::new(); + let structs = Vec::new(); + let table = TypeTable::new(&structs, &aliases); + let def = row(vec![ + field("beta", "Option", deserialize_with("required_option")), + field( + "cusip", + "Option", + deserialize_with("crate::codecs::empty_or_null::deserialize"), + ), + field("last_updated_raw", "String", rename("lastUpdated\"")), + field( + "note", + "Option", + FieldAttrs { + rename: Some("a,b".to_string()), + ..skip_serializing_if("Option::is_none") + }, + ), + ]); + let models = plan_models("test", &[&def], &table).expect("plans"); + let rendered = render_models("test", &models); + for expected in [ + "return memberDecodeError(\"Row\", \"beta\", shadow.Beta, err)", + "return memberDecodeError(\"Row\", \"cusip\", shadow.CUSIP, err)", + "return memberDecodeError(\"Row\", \"lastUpdated\\\"\", lastUpdatedRawWire, err)", + "return memberDecodeError(\"Row\", \"a,b\", noteWire, err)", + ] { + assert!( + rendered.contains(expected), + "missing {expected:?} in\n{rendered}" + ); + } + assert!( + !rendered.contains("&value); err != nil {\n\t\t\treturn err\n") + && !rendered.contains("&lastUpdatedRaw); err != nil {\n\t\treturn err\n"), + "a member unmarshal returns its error without the member in\n{rendered}" + ); +} + #[test] fn skip_serializing_if_none_marks_only_the_public_tag_omitzero() { let aliases = BTreeMap::new(); diff --git a/sdk/go/analyst_models.go b/sdk/go/analyst_models.go index 080f858..ea383ff 100644 --- a/sdk/go/analyst_models.go +++ b/sdk/go/analyst_models.go @@ -122,7 +122,7 @@ func (m *FinancialEstimate) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.EbitdaLow.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.EbitdaLow, &value); err != nil { - return err + return memberDecodeError("FinancialEstimate", "ebitdaLow", shadow.EbitdaLow, err) } ebitdaLow = &value } @@ -130,7 +130,7 @@ func (m *FinancialEstimate) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.EbitdaHigh.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.EbitdaHigh, &value); err != nil { - return err + return memberDecodeError("FinancialEstimate", "ebitdaHigh", shadow.EbitdaHigh, err) } ebitdaHigh = &value } @@ -138,7 +138,7 @@ func (m *FinancialEstimate) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.EbitdaAvg.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.EbitdaAvg, &value); err != nil { - return err + return memberDecodeError("FinancialEstimate", "ebitdaAvg", shadow.EbitdaAvg, err) } ebitdaAvg = &value } @@ -146,7 +146,7 @@ func (m *FinancialEstimate) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.EbitLow.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.EbitLow, &value); err != nil { - return err + return memberDecodeError("FinancialEstimate", "ebitLow", shadow.EbitLow, err) } ebitLow = &value } @@ -154,7 +154,7 @@ func (m *FinancialEstimate) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.EbitHigh.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.EbitHigh, &value); err != nil { - return err + return memberDecodeError("FinancialEstimate", "ebitHigh", shadow.EbitHigh, err) } ebitHigh = &value } @@ -162,7 +162,7 @@ func (m *FinancialEstimate) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.EbitAvg.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.EbitAvg, &value); err != nil { - return err + return memberDecodeError("FinancialEstimate", "ebitAvg", shadow.EbitAvg, err) } ebitAvg = &value } diff --git a/sdk/go/bulk_models.go b/sdk/go/bulk_models.go index a662795..9fdf02d 100644 --- a/sdk/go/bulk_models.go +++ b/sdk/go/bulk_models.go @@ -2603,7 +2603,7 @@ func (m *BulkETFHolding) UnmarshalJSONFrom(dec *jsontext.Decoder) error { } var lastUpdatedRaw string if err := json.Unmarshal(lastUpdatedRawWire, &lastUpdatedRaw); err != nil { - return err + return memberDecodeError("BulkETFHolding", "lastUpdated\"", lastUpdatedRawWire, err) } *m = BulkETFHolding{ Symbol: *shadow.Symbol, diff --git a/sdk/go/calendar_models.go b/sdk/go/calendar_models.go index 8c9aa27..cd1b0dc 100644 --- a/sdk/go/calendar_models.go +++ b/sdk/go/calendar_models.go @@ -144,7 +144,7 @@ func (m *EarningsEvent) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.EPSActual.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.EPSActual, &value); err != nil { - return err + return memberDecodeError("EarningsEvent", "epsActual", shadow.EPSActual, err) } epsActual = &value } @@ -152,7 +152,7 @@ func (m *EarningsEvent) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.EPSEstimated.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.EPSEstimated, &value); err != nil { - return err + return memberDecodeError("EarningsEvent", "epsEstimated", shadow.EPSEstimated, err) } epsEstimated = &value } @@ -160,7 +160,7 @@ func (m *EarningsEvent) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.RevenueActual.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.RevenueActual, &value); err != nil { - return err + return memberDecodeError("EarningsEvent", "revenueActual", shadow.RevenueActual, err) } revenueActual = &value } @@ -168,7 +168,7 @@ func (m *EarningsEvent) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.RevenueEstimated.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.RevenueEstimated, &value); err != nil { - return err + return memberDecodeError("EarningsEvent", "revenueEstimated", shadow.RevenueEstimated, err) } revenueEstimated = &value } @@ -244,7 +244,7 @@ func (m *IPOCalendarEvent) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Exchange.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.Exchange, &value); err != nil { - return err + return memberDecodeError("IPOCalendarEvent", "exchange", shadow.Exchange, err) } exchange = &value } @@ -252,7 +252,7 @@ func (m *IPOCalendarEvent) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Shares.Kind() != 'n' { var value jsontext.Value if err := json.Unmarshal(shadow.Shares, &value); err != nil { - return err + return memberDecodeError("IPOCalendarEvent", "shares", shadow.Shares, err) } shares = &value } @@ -260,7 +260,7 @@ func (m *IPOCalendarEvent) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.PriceRange.Kind() != 'n' { var value jsontext.Value if err := json.Unmarshal(shadow.PriceRange, &value); err != nil { - return err + return memberDecodeError("IPOCalendarEvent", "priceRange", shadow.PriceRange, err) } priceRange = &value } @@ -268,7 +268,7 @@ func (m *IPOCalendarEvent) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.MarketCap.Kind() != 'n' { var value jsontext.Value if err := json.Unmarshal(shadow.MarketCap, &value); err != nil { - return err + return memberDecodeError("IPOCalendarEvent", "marketCap", shadow.MarketCap, err) } marketCap = &value } @@ -423,7 +423,7 @@ func (m *IPOProspectus) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.DiscountsAndCommissionsPerShare.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.DiscountsAndCommissionsPerShare, &value); err != nil { - return err + return memberDecodeError("IPOProspectus", "discountsAndCommissionsPerShare", shadow.DiscountsAndCommissionsPerShare, err) } discountsAndCommissionsPerShare = &value } @@ -431,7 +431,7 @@ func (m *IPOProspectus) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.DiscountsAndCommissionsTotal.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.DiscountsAndCommissionsTotal, &value); err != nil { - return err + return memberDecodeError("IPOProspectus", "discountsAndCommissionsTotal", shadow.DiscountsAndCommissionsTotal, err) } discountsAndCommissionsTotal = &value } @@ -497,7 +497,7 @@ func (m *StockSplitEvent) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.SplitType.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.SplitType, &value); err != nil { - return err + return memberDecodeError("StockSplitEvent", "splitType", shadow.SplitType, err) } splitType = &value } diff --git a/sdk/go/commodities_models.go b/sdk/go/commodities_models.go index 5c5df88..237b208 100644 --- a/sdk/go/commodities_models.go +++ b/sdk/go/commodities_models.go @@ -55,7 +55,7 @@ func (m *CommodityListing) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Exchange.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.Exchange, &value); err != nil { - return err + return memberDecodeError("CommodityListing", "exchange", shadow.Exchange, err) } exchange = &value } diff --git a/sdk/go/company_models.go b/sdk/go/company_models.go index d76ec3d..0cee64a 100644 --- a/sdk/go/company_models.go +++ b/sdk/go/company_models.go @@ -179,7 +179,7 @@ func (m *CompanyProfile) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.CIK.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.CIK, &value); err != nil { - return err + return memberDecodeError("CompanyProfile", "cik", shadow.CIK, err) } cik = &value } @@ -187,7 +187,7 @@ func (m *CompanyProfile) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.CUSIP.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.CUSIP, &value); err != nil { - return err + return memberDecodeError("CompanyProfile", "cusip", shadow.CUSIP, err) } cusip = &value } @@ -195,7 +195,7 @@ func (m *CompanyProfile) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.FullTimeEmployees.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.FullTimeEmployees, &value); err != nil { - return err + return memberDecodeError("CompanyProfile", "fullTimeEmployees", shadow.FullTimeEmployees, err) } fullTimeEmployees = &value } @@ -203,7 +203,7 @@ func (m *CompanyProfile) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Phone.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.Phone, &value); err != nil { - return err + return memberDecodeError("CompanyProfile", "phone", shadow.Phone, err) } phone = &value } @@ -291,7 +291,7 @@ func (m *CompanyNote) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Exchange.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.Exchange, &value); err != nil { - return err + return memberDecodeError("CompanyNote", "exchange", shadow.Exchange, err) } exchange = &value } @@ -509,7 +509,7 @@ func (m *CompanyMarketCapitalization) UnmarshalJSONFrom(dec *jsontext.Decoder) e if shadow.MarketCap.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.MarketCap, &value); err != nil { - return err + return memberDecodeError("CompanyMarketCapitalization", "marketCap", shadow.MarketCap, err) } marketCap = &value } @@ -570,7 +570,7 @@ func (m *CompanyShareFloat) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Source.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.Source, &value); err != nil { - return err + return memberDecodeError("CompanyShareFloat", "source", shadow.Source, err) } source = &value } @@ -629,7 +629,7 @@ func (m *ShareFloat) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.FreeFloat.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.FreeFloat, &value); err != nil { - return err + return memberDecodeError("ShareFloat", "freeFloat", shadow.FreeFloat, err) } freeFloat = &value } @@ -637,7 +637,7 @@ func (m *ShareFloat) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.FloatShares.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.FloatShares, &value); err != nil { - return err + return memberDecodeError("ShareFloat", "floatShares", shadow.FloatShares, err) } floatShares = &value } @@ -712,7 +712,7 @@ func (m *MergerAcquisition) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.TargetedCIK.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.TargetedCIK, &value); err != nil { - return err + return memberDecodeError("MergerAcquisition", "targetedCik", shadow.TargetedCIK, err) } targetedCIK = &value } @@ -720,7 +720,7 @@ func (m *MergerAcquisition) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.TargetedSymbol.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.TargetedSymbol, &value); err != nil { - return err + return memberDecodeError("MergerAcquisition", "targetedSymbol", shadow.TargetedSymbol, err) } targetedSymbol = &value } @@ -789,7 +789,7 @@ func (m *CompanyExecutive) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Gender.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.Gender, &value); err != nil { - return err + return memberDecodeError("CompanyExecutive", "gender", shadow.Gender, err) } gender = &value } @@ -891,7 +891,7 @@ func (m *ExecutiveCompensation) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.OptionAward.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.OptionAward, &value); err != nil { - return err + return memberDecodeError("ExecutiveCompensation", "optionAward", shadow.OptionAward, err) } optionAward = &value } diff --git a/sdk/go/congressional_models.go b/sdk/go/congressional_models.go index 2afad26..d6ae671 100644 --- a/sdk/go/congressional_models.go +++ b/sdk/go/congressional_models.go @@ -178,7 +178,7 @@ func (m *CongressionalMemberProfile) UnmarshalJSONFrom(dec *jsontext.Decoder) er if shadow.Image.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.Image, &value); err != nil { - return err + return memberDecodeError("CongressionalMemberProfile", "image", shadow.Image, err) } image = &value } @@ -253,7 +253,7 @@ func (m *CongressionalMemberPosition) UnmarshalJSONFrom(dec *jsontext.Decoder) e if shadow.EndDate.Kind() != 'n' { var value Date if err := json.Unmarshal(shadow.EndDate, &value); err != nil { - return err + return memberDecodeError("CongressionalMemberPosition", "endDate", shadow.EndDate, err) } endDate = &value } @@ -429,7 +429,7 @@ func (m *CongressionalMemberNetWorth) UnmarshalJSONFrom(dec *jsontext.Decoder) e if shadow.IncomeType.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.IncomeType, &value); err != nil { - return err + return memberDecodeError("CongressionalMemberNetWorth", "incomeType", shadow.IncomeType, err) } incomeType = &value } @@ -437,7 +437,7 @@ func (m *CongressionalMemberNetWorth) UnmarshalJSONFrom(dec *jsontext.Decoder) e if shadow.Comment.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.Comment, &value); err != nil { - return err + return memberDecodeError("CongressionalMemberNetWorth", "comment", shadow.Comment, err) } comment = &value } @@ -445,7 +445,7 @@ func (m *CongressionalMemberNetWorth) UnmarshalJSONFrom(dec *jsontext.Decoder) e if shadow.DebtDetails.Kind() != 'n' { var value CongressionalDebtDetails if err := json.Unmarshal(shadow.DebtDetails, &value); err != nil { - return err + return memberDecodeError("CongressionalMemberNetWorth", "debtDetails", shadow.DebtDetails, err) } debtDetails = &value } @@ -453,7 +453,7 @@ func (m *CongressionalMemberNetWorth) UnmarshalJSONFrom(dec *jsontext.Decoder) e if shadow.ValueRange.Kind() != 'n' { var value CongressionalNetWorthRange if err := json.Unmarshal(shadow.ValueRange, &value); err != nil { - return err + return memberDecodeError("CongressionalMemberNetWorth", "valueRange", shadow.ValueRange, err) } valueRange = &value } @@ -461,7 +461,7 @@ func (m *CongressionalMemberNetWorth) UnmarshalJSONFrom(dec *jsontext.Decoder) e if shadow.IncomeRange.Kind() != 'n' { var value CongressionalNetWorthRange if err := json.Unmarshal(shadow.IncomeRange, &value); err != nil { - return err + return memberDecodeError("CongressionalMemberNetWorth", "incomeRange", shadow.IncomeRange, err) } incomeRange = &value } @@ -469,7 +469,7 @@ func (m *CongressionalMemberNetWorth) UnmarshalJSONFrom(dec *jsontext.Decoder) e if shadow.Income.Kind() != 'n' { var value jsontext.Value if err := json.Unmarshal(shadow.Income, &value); err != nil { - return err + return memberDecodeError("CongressionalMemberNetWorth", "income", shadow.Income, err) } income = &value } diff --git a/sdk/go/crypto_models.go b/sdk/go/crypto_models.go index c59fb63..21658bc 100644 --- a/sdk/go/crypto_models.go +++ b/sdk/go/crypto_models.go @@ -63,7 +63,7 @@ func (m *CryptocurrencyListing) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.CirculatingSupply.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.CirculatingSupply, &value); err != nil { - return err + return memberDecodeError("CryptocurrencyListing", "circulatingSupply", shadow.CirculatingSupply, err) } circulatingSupply = &value } @@ -71,7 +71,7 @@ func (m *CryptocurrencyListing) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.TotalSupply.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.TotalSupply, &value); err != nil { - return err + return memberDecodeError("CryptocurrencyListing", "totalSupply", shadow.TotalSupply, err) } totalSupply = &value } diff --git a/sdk/go/decode.go b/sdk/go/decode.go index 4884428..d06dd7a 100644 --- a/sdk/go/decode.go +++ b/sdk/go/decode.go @@ -27,14 +27,14 @@ func decodeEmptyDate(model, member string, raw jsontext.Value, allowNull bool) ( case '"': var text string if err := json.Unmarshal(raw, &text); err != nil { - return nil, err + return nil, memberDecodeError(model, member, raw, err) } if text == "" { return nil, nil } date, err := ParseDate(text) if err != nil { - return nil, err + return nil, invalidMemberValueError(model, member, "string holding a "+dateExpected) } return &date, nil default: @@ -112,7 +112,7 @@ func decodeLocation(body []byte, err error) (string, DecodeKind) { pointer := semantic.JSONPointer var member *Error if errors.As(semantic.Err, &member) && member.member != "" { - pointer = pointer.AppendToken(member.member) + pointer = pointer.AppendToken(member.member) + member.memberPath value, found := valueAt(body, pointer) switch { case !found: diff --git a/sdk/go/decode_path_test.go b/sdk/go/decode_path_test.go index ee57f5e..b44b831 100644 --- a/sdk/go/decode_path_test.go +++ b/sdk/go/decode_path_test.go @@ -3,6 +3,7 @@ package fmp import ( "context" "encoding/json/jsontext" + "encoding/json/v2" "errors" "net/http" "strings" @@ -111,3 +112,64 @@ func TestRequireObjectRowsLocatesTheNonObjectRow(t *testing.T) { t.Fatalf("error = %+v, want Path /1 wrong_type", typed) } } + +func TestDecodeErrorNamesTheNullableMemberThatHasTheWrongType(t *testing.T) { + t.Parallel() + body := strings.Replace(string(readFixture(t, "company_screener_null_beta_synthetic.json")), + `"beta": null`, `"beta": "`+decodePathSentinel+`"`, 1) + typed := decodeScreenerBody(t, []byte(body)) + + if typed.Path != "/37/beta" || typed.DecodeKind != DecodeKindWrongType { + t.Fatalf("Path = %q, DecodeKind = %v, want /37/beta wrong_type", typed.Path, typed.DecodeKind) + } + if strings.Contains(typed.Error(), decodePathSentinel) || strings.Contains(typed.Unwrap().Error(), decodePathSentinel) { + t.Fatalf("decode error leaked the member value: %q / %q", typed.Error(), typed.Unwrap()) + } +} + +func TestDecodeErrorNamesTheCodecMemberThatFailed(t *testing.T) { + t.Parallel() + holdings := string(readFixture(t, "etf_fund_holdings.json")) + dividends := string(readFixture(t, "dividends.json")) + netWorth := `[{"senateID":"P000197","formType":"House Report","year":2022,"filingDate":"2023-05-15",` + + `"section":"Liabilities","category":"Mortgage","name":"Bank","assetType":"Mortgage","incomeType":null,` + + `"owner":"Joint","comment":null,"valueRange":{"min":1},"value":-1,"incomeRange":null,` + + `"income":null,"link":"https://example.test","debtDetails":null}]` + cases := []struct { + name string + decode func([]byte) error + body string + path string + kind DecodeKind + }{ + {"empty_or_null wrong type", decodeRows[ETFFundHolding], strings.Replace(holdings, `"US0378331005"`, "5", 1), + "/0/isin", DecodeKindWrongType}, + {"date wrong type", decodeRows[DividendEvent], strings.Replace(dividends, `"2026-05-11", + "symbol"`, `5, + "symbol"`, 1), "/0/recordDate", DecodeKindWrongType}, + {"date malformed", decodeRows[DividendEvent], strings.Replace(dividends, `"2026-05-14"`, `"`+decodePathSentinel+`"`, 1), + "/0/paymentDate", DecodeKindInvalidValue}, + {"nested model", decodeRows[CongressionalMemberNetWorth], netWorth, "/0/valueRange/max", DecodeKindMissingMember}, + } + for _, tc := range cases { + t.Run(tc.name, func(t *testing.T) { + t.Parallel() + err := tc.decode([]byte(tc.body)) + if err == nil { + t.Fatal("decode succeeded, want an error") + } + path, kind := decodeLocation([]byte(tc.body), err) + if path != tc.path || kind != tc.kind { + t.Fatalf("Path = %q, DecodeKind = %v, want %q %v", path, kind, tc.path, tc.kind) + } + if strings.Contains(err.Error(), decodePathSentinel) { + t.Fatalf("decode error leaked the member value: %q", err) + } + }) + } +} + +func decodeRows[T any](body []byte) error { + var rows []T + return json.Unmarshal(body, &rows) +} diff --git a/sdk/go/directory_models.go b/sdk/go/directory_models.go index d5d6dc6..1db28bd 100644 --- a/sdk/go/directory_models.go +++ b/sdk/go/directory_models.go @@ -87,7 +87,7 @@ func (m *FinancialStatementSymbol) UnmarshalJSONFrom(dec *jsontext.Decoder) erro if shadow.ReportingCurrency.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.ReportingCurrency, &value); err != nil { - return err + return memberDecodeError("FinancialStatementSymbol", "reportingCurrency", shadow.ReportingCurrency, err) } if value != "" { reportingCurrency = &value @@ -340,7 +340,7 @@ func (m *AvailableExchange) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.CountryCode.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.CountryCode, &value); err != nil { - return err + return memberDecodeError("AvailableExchange", "countryCode", shadow.CountryCode, err) } if value != "" { countryCode = &value @@ -350,7 +350,7 @@ func (m *AvailableExchange) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Delay.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.Delay, &value); err != nil { - return err + return memberDecodeError("AvailableExchange", "delay", shadow.Delay, err) } delay = &value } diff --git a/sdk/go/economics_models.go b/sdk/go/economics_models.go index b2e175a..c6c39fc 100644 --- a/sdk/go/economics_models.go +++ b/sdk/go/economics_models.go @@ -87,7 +87,7 @@ func (m *TreasuryRate) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Month1.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.Month1, &value); err != nil { - return err + return memberDecodeError("TreasuryRate", "month1", shadow.Month1, err) } month1 = &value } @@ -95,7 +95,7 @@ func (m *TreasuryRate) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Month2.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.Month2, &value); err != nil { - return err + return memberDecodeError("TreasuryRate", "month2", shadow.Month2, err) } month2 = &value } @@ -103,7 +103,7 @@ func (m *TreasuryRate) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Month3.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.Month3, &value); err != nil { - return err + return memberDecodeError("TreasuryRate", "month3", shadow.Month3, err) } month3 = &value } @@ -111,7 +111,7 @@ func (m *TreasuryRate) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Month6.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.Month6, &value); err != nil { - return err + return memberDecodeError("TreasuryRate", "month6", shadow.Month6, err) } month6 = &value } @@ -119,7 +119,7 @@ func (m *TreasuryRate) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Year1.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.Year1, &value); err != nil { - return err + return memberDecodeError("TreasuryRate", "year1", shadow.Year1, err) } year1 = &value } @@ -127,7 +127,7 @@ func (m *TreasuryRate) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Year2.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.Year2, &value); err != nil { - return err + return memberDecodeError("TreasuryRate", "year2", shadow.Year2, err) } year2 = &value } @@ -135,7 +135,7 @@ func (m *TreasuryRate) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Year3.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.Year3, &value); err != nil { - return err + return memberDecodeError("TreasuryRate", "year3", shadow.Year3, err) } year3 = &value } @@ -143,7 +143,7 @@ func (m *TreasuryRate) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Year5.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.Year5, &value); err != nil { - return err + return memberDecodeError("TreasuryRate", "year5", shadow.Year5, err) } year5 = &value } @@ -151,7 +151,7 @@ func (m *TreasuryRate) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Year7.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.Year7, &value); err != nil { - return err + return memberDecodeError("TreasuryRate", "year7", shadow.Year7, err) } year7 = &value } @@ -159,7 +159,7 @@ func (m *TreasuryRate) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Year10.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.Year10, &value); err != nil { - return err + return memberDecodeError("TreasuryRate", "year10", shadow.Year10, err) } year10 = &value } @@ -167,7 +167,7 @@ func (m *TreasuryRate) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Year20.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.Year20, &value); err != nil { - return err + return memberDecodeError("TreasuryRate", "year20", shadow.Year20, err) } year20 = &value } @@ -175,7 +175,7 @@ func (m *TreasuryRate) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Year30.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.Year30, &value); err != nil { - return err + return memberDecodeError("TreasuryRate", "year30", shadow.Year30, err) } year30 = &value } @@ -234,7 +234,7 @@ func (m *EconomicIndicatorObservation) UnmarshalJSONFrom(dec *jsontext.Decoder) if shadow.Value.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.Value, &value); err != nil { - return err + return memberDecodeError("EconomicIndicatorObservation", "value", shadow.Value, err) } valueMember = &value } @@ -314,7 +314,7 @@ func (m *EconomicCalendarEvent) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Previous.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.Previous, &value); err != nil { - return err + return memberDecodeError("EconomicCalendarEvent", "previous", shadow.Previous, err) } previous = &value } @@ -322,7 +322,7 @@ func (m *EconomicCalendarEvent) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Estimate.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.Estimate, &value); err != nil { - return err + return memberDecodeError("EconomicCalendarEvent", "estimate", shadow.Estimate, err) } estimate = &value } @@ -330,7 +330,7 @@ func (m *EconomicCalendarEvent) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Actual.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.Actual, &value); err != nil { - return err + return memberDecodeError("EconomicCalendarEvent", "actual", shadow.Actual, err) } actual = &value } @@ -338,7 +338,7 @@ func (m *EconomicCalendarEvent) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Change.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.Change, &value); err != nil { - return err + return memberDecodeError("EconomicCalendarEvent", "change", shadow.Change, err) } change = &value } @@ -346,7 +346,7 @@ func (m *EconomicCalendarEvent) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.ChangePercentage.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.ChangePercentage, &value); err != nil { - return err + return memberDecodeError("EconomicCalendarEvent", "changePercentage", shadow.ChangePercentage, err) } changePercentage = &value } @@ -354,7 +354,7 @@ func (m *EconomicCalendarEvent) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Unit.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.Unit, &value); err != nil { - return err + return memberDecodeError("EconomicCalendarEvent", "unit", shadow.Unit, err) } unit = &value } diff --git a/sdk/go/errors.go b/sdk/go/errors.go index bb1ae20..cbd640d 100644 --- a/sdk/go/errors.go +++ b/sdk/go/errors.go @@ -1,6 +1,7 @@ package fmp import ( + "encoding/json/jsontext" "errors" "fmt" "slices" @@ -163,6 +164,7 @@ type Error struct { Path string DecodeKind DecodeKind member string + memberPath jsontext.Pointer memberKind DecodeKind cause error } @@ -238,6 +240,28 @@ func invalidMemberValueError(model, member, expected string) *Error { return err } +// memberDecodeError reports a member whose raw value the generated decoder +// could not unmarshal into its Go type. raw is that value and err the +// unmarshal failure; the location inside raw is kept so the Decode error +// names the full member path, and the failure text is dropped so no member +// value survives. A failure a nested model already reported keeps that +// model's message, which names the innermost member. +func memberDecodeError(model, member string, raw jsontext.Value, err error) *Error { + path, kind := decodeLocation(raw, err) + message := fmt.Sprintf("member %q of %s could not be decoded", member, model) + var nested *Error + if errors.As(err, &nested) { + message = nested.Message + } + return &Error{ + Category: CategoryDecode, + Message: message, + member: member, + memberPath: jsontext.Pointer(path), + memberKind: kind, + } +} + func transportError(endpoint, message string, cause error) *Error { return &Error{Category: CategoryTransport, Message: message, Endpoint: endpoint, cause: cause} } diff --git a/sdk/go/esg_models.go b/sdk/go/esg_models.go index f88a908..6d45728 100644 --- a/sdk/go/esg_models.go +++ b/sdk/go/esg_models.go @@ -78,7 +78,7 @@ func (m *ESGDisclosure) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.CompanyName.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.CompanyName, &value); err != nil { - return err + return memberDecodeError("ESGDisclosure", "companyName", shadow.CompanyName, err) } companyName = &value } @@ -86,7 +86,7 @@ func (m *ESGDisclosure) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.FormType.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.FormType, &value); err != nil { - return err + return memberDecodeError("ESGDisclosure", "formType", shadow.FormType, err) } formType = &value } @@ -157,7 +157,7 @@ func (m *ESGRating) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.CompanyName.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.CompanyName, &value); err != nil { - return err + return memberDecodeError("ESGRating", "companyName", shadow.CompanyName, err) } companyName = &value } diff --git a/sdk/go/fundraising_models.go b/sdk/go/fundraising_models.go index 5a476f9..22d4685 100644 --- a/sdk/go/fundraising_models.go +++ b/sdk/go/fundraising_models.go @@ -47,7 +47,7 @@ func (m *CrowdfundingOfferingSearchResult) UnmarshalJSONFrom(dec *jsontext.Decod if shadow.Date.Kind() != 'n' { var value jsontext.Value if err := json.Unmarshal(shadow.Date, &value); err != nil { - return err + return memberDecodeError("CrowdfundingOfferingSearchResult", "date", shadow.Date, err) } date = &value } @@ -316,7 +316,7 @@ func (m *CrowdfundingOffering) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.IssuerWebsite.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.IssuerWebsite, &value); err != nil { - return err + return memberDecodeError("CrowdfundingOffering", "issuerWebsite", shadow.IssuerWebsite, err) } issuerWebsite = &value } @@ -324,7 +324,7 @@ func (m *CrowdfundingOffering) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.IntermediaryCompanyName.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.IntermediaryCompanyName, &value); err != nil { - return err + return memberDecodeError("CrowdfundingOffering", "intermediaryCompanyName", shadow.IntermediaryCompanyName, err) } intermediaryCompanyName = &value } @@ -332,7 +332,7 @@ func (m *CrowdfundingOffering) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.IntermediaryCommissionFileNumber.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.IntermediaryCommissionFileNumber, &value); err != nil { - return err + return memberDecodeError("CrowdfundingOffering", "intermediaryCommissionFileNumber", shadow.IntermediaryCommissionFileNumber, err) } intermediaryCommissionFileNumber = &value } @@ -340,7 +340,7 @@ func (m *CrowdfundingOffering) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.CompensationAmount.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.CompensationAmount, &value); err != nil { - return err + return memberDecodeError("CrowdfundingOffering", "compensationAmount", shadow.CompensationAmount, err) } compensationAmount = &value } @@ -348,7 +348,7 @@ func (m *CrowdfundingOffering) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.FinancialInterest.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.FinancialInterest, &value); err != nil { - return err + return memberDecodeError("CrowdfundingOffering", "financialInterest", shadow.FinancialInterest, err) } financialInterest = &value } @@ -356,7 +356,7 @@ func (m *CrowdfundingOffering) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.SecurityOfferedType.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.SecurityOfferedType, &value); err != nil { - return err + return memberDecodeError("CrowdfundingOffering", "securityOfferedType", shadow.SecurityOfferedType, err) } securityOfferedType = &value } @@ -364,7 +364,7 @@ func (m *CrowdfundingOffering) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.SecurityOfferedOtherDescription.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.SecurityOfferedOtherDescription, &value); err != nil { - return err + return memberDecodeError("CrowdfundingOffering", "securityOfferedOtherDescription", shadow.SecurityOfferedOtherDescription, err) } securityOfferedOtherDescription = &value } @@ -375,7 +375,7 @@ func (m *CrowdfundingOffering) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.OverSubscriptionAllocationType.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.OverSubscriptionAllocationType, &value); err != nil { - return err + return memberDecodeError("CrowdfundingOffering", "overSubscriptionAllocationType", shadow.OverSubscriptionAllocationType, err) } overSubscriptionAllocationType = &value } @@ -383,7 +383,7 @@ func (m *CrowdfundingOffering) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.OfferingDeadlineDate.Kind() != 'n' { var value USDate if err := json.Unmarshal(shadow.OfferingDeadlineDate, &value); err != nil { - return err + return memberDecodeError("CrowdfundingOffering", "offeringDeadlineDate", shadow.OfferingDeadlineDate, err) } offeringDeadlineDate = &value } @@ -640,7 +640,7 @@ func (m *RegulationDOffering) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.IncorporatedWithinFiveYears.Kind() != 'n' { var value bool if err := json.Unmarshal(shadow.IncorporatedWithinFiveYears, &value); err != nil { - return err + return memberDecodeError("RegulationDOffering", "incorporatedWithinFiveYears", shadow.IncorporatedWithinFiveYears, err) } incorporatedWithinFiveYears = &value } @@ -648,7 +648,7 @@ func (m *RegulationDOffering) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.RevenueRange.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.RevenueRange, &value); err != nil { - return err + return memberDecodeError("RegulationDOffering", "revenueRange", shadow.RevenueRange, err) } revenueRange = &value } @@ -660,7 +660,7 @@ func (m *RegulationDOffering) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.SecuritiesOfferedAreOfEquityType.Kind() != 'n' { var value bool if err := json.Unmarshal(shadow.SecuritiesOfferedAreOfEquityType, &value); err != nil { - return err + return memberDecodeError("RegulationDOffering", "securitiesOfferedAreOfEquityType", shadow.SecuritiesOfferedAreOfEquityType, err) } securitiesOfferedAreOfEquityType = &value } diff --git a/sdk/go/funds_models.go b/sdk/go/funds_models.go index 96fd47b..b14784c 100644 --- a/sdk/go/funds_models.go +++ b/sdk/go/funds_models.go @@ -70,7 +70,7 @@ func (m *ETFFundHolding) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Asset.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.Asset, &value); err != nil { - return err + return memberDecodeError("ETFFundHolding", "asset", shadow.Asset, err) } if value != "" { asset = &value @@ -80,7 +80,7 @@ func (m *ETFFundHolding) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.ISIN.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.ISIN, &value); err != nil { - return err + return memberDecodeError("ETFFundHolding", "isin", shadow.ISIN, err) } if value != "" { isin = &value @@ -90,7 +90,7 @@ func (m *ETFFundHolding) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.SecurityCUSIP.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.SecurityCUSIP, &value); err != nil { - return err + return memberDecodeError("ETFFundHolding", "securityCusip", shadow.SecurityCUSIP, err) } if value != "" { securityCUSIP = &value @@ -574,7 +574,7 @@ func (m *FundDisclosure) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Symbol.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.Symbol, &value); err != nil { - return err + return memberDecodeError("FundDisclosure", "symbol", shadow.Symbol, err) } symbol = &value } @@ -582,7 +582,7 @@ func (m *FundDisclosure) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.ISIN.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.ISIN, &value); err != nil { - return err + return memberDecodeError("FundDisclosure", "isin", shadow.ISIN, err) } if value != "" { isin = &value @@ -693,7 +693,7 @@ func (m *FundDisclosureSearchResult) UnmarshalJSONFrom(dec *jsontext.Decoder) er if shadow.EntityOrgType.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.EntityOrgType, &value); err != nil { - return err + return memberDecodeError("FundDisclosureSearchResult", "entityOrgType", shadow.EntityOrgType, err) } if value != "NULL" { entityOrgType = &value @@ -703,7 +703,7 @@ func (m *FundDisclosureSearchResult) UnmarshalJSONFrom(dec *jsontext.Decoder) er if shadow.Address.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.Address, &value); err != nil { - return err + return memberDecodeError("FundDisclosureSearchResult", "address", shadow.Address, err) } address = &value } diff --git a/sdk/go/indexes_models.go b/sdk/go/indexes_models.go index f4e22b5..39459a1 100644 --- a/sdk/go/indexes_models.go +++ b/sdk/go/indexes_models.go @@ -113,7 +113,7 @@ func (m *IndexConstituent) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.DateFirstAdded.Kind() != 'n' { var value Date if err := json.Unmarshal(shadow.DateFirstAdded, &value); err != nil { - return err + return memberDecodeError("IndexConstituent", "dateFirstAdded", shadow.DateFirstAdded, err) } dateFirstAdded = &value } @@ -183,7 +183,7 @@ func (m *HistoricalIndexConstituent) UnmarshalJSONFrom(dec *jsontext.Decoder) er if shadow.AddedSecurity.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.AddedSecurity, &value); err != nil { - return err + return memberDecodeError("HistoricalIndexConstituent", "addedSecurity", shadow.AddedSecurity, err) } addedSecurity = &value } @@ -191,7 +191,7 @@ func (m *HistoricalIndexConstituent) UnmarshalJSONFrom(dec *jsontext.Decoder) er if shadow.RemovedTicker.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.RemovedTicker, &value); err != nil { - return err + return memberDecodeError("HistoricalIndexConstituent", "removedTicker", shadow.RemovedTicker, err) } if value != "" { removedTicker = &value @@ -201,7 +201,7 @@ func (m *HistoricalIndexConstituent) UnmarshalJSONFrom(dec *jsontext.Decoder) er if shadow.RemovedSecurity.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.RemovedSecurity, &value); err != nil { - return err + return memberDecodeError("HistoricalIndexConstituent", "removedSecurity", shadow.RemovedSecurity, err) } removedSecurity = &value } @@ -209,7 +209,7 @@ func (m *HistoricalIndexConstituent) UnmarshalJSONFrom(dec *jsontext.Decoder) er if shadow.Reason.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.Reason, &value); err != nil { - return err + return memberDecodeError("HistoricalIndexConstituent", "reason", shadow.Reason, err) } reason = &value } diff --git a/sdk/go/insider_trading_models.go b/sdk/go/insider_trading_models.go index 3b3d595..2046a23 100644 --- a/sdk/go/insider_trading_models.go +++ b/sdk/go/insider_trading_models.go @@ -98,7 +98,7 @@ func (m *InsiderTrade) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.TransactionType.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.TransactionType, &value); err != nil { - return err + return memberDecodeError("InsiderTrade", "transactionType", shadow.TransactionType, err) } if value != "" { transactionType = &value @@ -108,7 +108,7 @@ func (m *InsiderTrade) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.SecuritiesOwned.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.SecuritiesOwned, &value); err != nil { - return err + return memberDecodeError("InsiderTrade", "securitiesOwned", shadow.SecuritiesOwned, err) } securitiesOwned = &value } @@ -116,7 +116,7 @@ func (m *InsiderTrade) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.DirectOrIndirect.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.DirectOrIndirect, &value); err != nil { - return err + return memberDecodeError("InsiderTrade", "directOrIndirect", shadow.DirectOrIndirect, err) } directOrIndirect = &value } @@ -398,7 +398,7 @@ func (m *BeneficialOwnershipAcquisition) UnmarshalJSONFrom(dec *jsontext.Decoder if shadow.CUSIP.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.CUSIP, &value); err != nil { - return err + return memberDecodeError("BeneficialOwnershipAcquisition", "cusip", shadow.CUSIP, err) } cusip = &value } @@ -406,7 +406,7 @@ func (m *BeneficialOwnershipAcquisition) UnmarshalJSONFrom(dec *jsontext.Decoder if shadow.CitizenshipOrPlaceOfOrganization.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.CitizenshipOrPlaceOfOrganization, &value); err != nil { - return err + return memberDecodeError("BeneficialOwnershipAcquisition", "citizenshipOrPlaceOfOrganization", shadow.CitizenshipOrPlaceOfOrganization, err) } citizenshipOrPlaceOfOrganization = &value } @@ -414,7 +414,7 @@ func (m *BeneficialOwnershipAcquisition) UnmarshalJSONFrom(dec *jsontext.Decoder if shadow.SharedVotingPower.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.SharedVotingPower, &value); err != nil { - return err + return memberDecodeError("BeneficialOwnershipAcquisition", "sharedVotingPower", shadow.SharedVotingPower, err) } sharedVotingPower = &value } diff --git a/sdk/go/institutional_ownership_models.go b/sdk/go/institutional_ownership_models.go index 94a678b..30634f1 100644 --- a/sdk/go/institutional_ownership_models.go +++ b/sdk/go/institutional_ownership_models.go @@ -156,7 +156,7 @@ func (m *InstitutionalHolding) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Symbol.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.Symbol, &value); err != nil { - return err + return memberDecodeError("InstitutionalHolding", "symbol", shadow.Symbol, err) } symbol = &value } @@ -705,7 +705,7 @@ func (m *HolderIndustryBreakdown) UnmarshalJSONFrom(dec *jsontext.Decoder) error if shadow.IndustryTitle.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.IndustryTitle, &value); err != nil { - return err + return memberDecodeError("HolderIndustryBreakdown", "industryTitle", shadow.IndustryTitle, err) } industryTitle = &value } @@ -713,7 +713,7 @@ func (m *HolderIndustryBreakdown) UnmarshalJSONFrom(dec *jsontext.Decoder) error if shadow.ChangeInWeightPercentage.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.ChangeInWeightPercentage, &value); err != nil { - return err + return memberDecodeError("HolderIndustryBreakdown", "changeInWeightPercentage", shadow.ChangeInWeightPercentage, err) } changeInWeightPercentage = &value } @@ -721,7 +721,7 @@ func (m *HolderIndustryBreakdown) UnmarshalJSONFrom(dec *jsontext.Decoder) error if shadow.PerformancePercentage.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.PerformancePercentage, &value); err != nil { - return err + return memberDecodeError("HolderIndustryBreakdown", "performancePercentage", shadow.PerformancePercentage, err) } performancePercentage = &value } diff --git a/sdk/go/market_hours_models.go b/sdk/go/market_hours_models.go index aa93bcf..d8099c0 100644 --- a/sdk/go/market_hours_models.go +++ b/sdk/go/market_hours_models.go @@ -113,7 +113,7 @@ func (m *ExchangeHoliday) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.IsClosed.Kind() != 'n' { var value bool if err := json.Unmarshal(shadow.IsClosed, &value); err != nil { - return err + return memberDecodeError("ExchangeHoliday", "isClosed", shadow.IsClosed, err) } isClosed = &value } @@ -121,7 +121,7 @@ func (m *ExchangeHoliday) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.AdjOpenTime.Kind() != 'n' { var value jsontext.Value if err := json.Unmarshal(shadow.AdjOpenTime, &value); err != nil { - return err + return memberDecodeError("ExchangeHoliday", "adjOpenTime", shadow.AdjOpenTime, err) } adjOpenTime = &value } @@ -129,7 +129,7 @@ func (m *ExchangeHoliday) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.AdjCloseTime.Kind() != 'n' { var value jsontext.Value if err := json.Unmarshal(shadow.AdjCloseTime, &value); err != nil { - return err + return memberDecodeError("ExchangeHoliday", "adjCloseTime", shadow.AdjCloseTime, err) } adjCloseTime = &value } diff --git a/sdk/go/news_models.go b/sdk/go/news_models.go index 449eaad..1f77c61 100644 --- a/sdk/go/news_models.go +++ b/sdk/go/news_models.go @@ -130,7 +130,7 @@ func (m *NewsArticle) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Symbol.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.Symbol, &value); err != nil { - return err + return memberDecodeError("NewsArticle", "symbol", shadow.Symbol, err) } symbol = &value } @@ -138,7 +138,7 @@ func (m *NewsArticle) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Image.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.Image, &value); err != nil { - return err + return memberDecodeError("NewsArticle", "image", shadow.Image, err) } image = &value } @@ -146,7 +146,7 @@ func (m *NewsArticle) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Site.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.Site, &value); err != nil { - return err + return memberDecodeError("NewsArticle", "site", shadow.Site, err) } site = &value } diff --git a/sdk/go/quote_models.go b/sdk/go/quote_models.go index 3334c8f..5579051 100644 --- a/sdk/go/quote_models.go +++ b/sdk/go/quote_models.go @@ -157,7 +157,7 @@ func (m *QuoteShort) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Price.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.Price, &value); err != nil { - return err + return memberDecodeError("QuoteShort", "price", shadow.Price, err) } price = &value } @@ -165,7 +165,7 @@ func (m *QuoteShort) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Change.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.Change, &value); err != nil { - return err + return memberDecodeError("QuoteShort", "change", shadow.Change, err) } change = &value } @@ -173,7 +173,7 @@ func (m *QuoteShort) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Volume.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.Volume, &value); err != nil { - return err + return memberDecodeError("QuoteShort", "volume", shadow.Volume, err) } volume = &value } @@ -226,7 +226,7 @@ func (m *AftermarketTrade) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.TradeSize.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.TradeSize, &value); err != nil { - return err + return memberDecodeError("AftermarketTrade", "tradeSize", shadow.TradeSize, err) } tradeSize = &value } diff --git a/sdk/go/screener_models.go b/sdk/go/screener_models.go index 247707a..61eeb7e 100644 --- a/sdk/go/screener_models.go +++ b/sdk/go/screener_models.go @@ -95,7 +95,7 @@ func (m *CompanyScreenerResult) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Beta.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.Beta, &value); err != nil { - return err + return memberDecodeError("CompanyScreenerResult", "beta", shadow.Beta, err) } beta = &value } @@ -103,7 +103,7 @@ func (m *CompanyScreenerResult) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Price.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.Price, &value); err != nil { - return err + return memberDecodeError("CompanyScreenerResult", "price", shadow.Price, err) } price = &value } @@ -111,7 +111,7 @@ func (m *CompanyScreenerResult) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.LastAnnualDividend.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.LastAnnualDividend, &value); err != nil { - return err + return memberDecodeError("CompanyScreenerResult", "lastAnnualDividend", shadow.LastAnnualDividend, err) } lastAnnualDividend = &value } @@ -119,7 +119,7 @@ func (m *CompanyScreenerResult) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Country.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.Country, &value); err != nil { - return err + return memberDecodeError("CompanyScreenerResult", "country", shadow.Country, err) } country = &value } @@ -127,7 +127,7 @@ func (m *CompanyScreenerResult) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.IsFund.Kind() != 'n' { var value bool if err := json.Unmarshal(shadow.IsFund, &value); err != nil { - return err + return memberDecodeError("CompanyScreenerResult", "isFund", shadow.IsFund, err) } isFund = &value } diff --git a/sdk/go/search_models.go b/sdk/go/search_models.go index ebb7db2..eae5196 100644 --- a/sdk/go/search_models.go +++ b/sdk/go/search_models.go @@ -424,7 +424,7 @@ func (m *ExchangeVariant) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Price.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.Price, &value); err != nil { - return err + return memberDecodeError("ExchangeVariant", "price", shadow.Price, err) } price = &value } @@ -432,7 +432,7 @@ func (m *ExchangeVariant) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Range.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.Range, &value); err != nil { - return err + return memberDecodeError("ExchangeVariant", "range", shadow.Range, err) } range_ = &value } @@ -440,7 +440,7 @@ func (m *ExchangeVariant) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Changes.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.Changes, &value); err != nil { - return err + return memberDecodeError("ExchangeVariant", "changes", shadow.Changes, err) } changes = &value } @@ -448,7 +448,7 @@ func (m *ExchangeVariant) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.CIK.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.CIK, &value); err != nil { - return err + return memberDecodeError("ExchangeVariant", "cik", shadow.CIK, err) } cik = &value } @@ -456,7 +456,7 @@ func (m *ExchangeVariant) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.ISIN.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.ISIN, &value); err != nil { - return err + return memberDecodeError("ExchangeVariant", "isin", shadow.ISIN, err) } isin = &value } @@ -464,7 +464,7 @@ func (m *ExchangeVariant) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.CUSIP.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.CUSIP, &value); err != nil { - return err + return memberDecodeError("ExchangeVariant", "cusip", shadow.CUSIP, err) } if value != "" { cusip = &value @@ -474,7 +474,7 @@ func (m *ExchangeVariant) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Website.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.Website, &value); err != nil { - return err + return memberDecodeError("ExchangeVariant", "website", shadow.Website, err) } website = &value } @@ -482,7 +482,7 @@ func (m *ExchangeVariant) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Ceo.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.Ceo, &value); err != nil { - return err + return memberDecodeError("ExchangeVariant", "ceo", shadow.Ceo, err) } ceo = &value } @@ -490,7 +490,7 @@ func (m *ExchangeVariant) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.FullTimeEmployees.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.FullTimeEmployees, &value); err != nil { - return err + return memberDecodeError("ExchangeVariant", "fullTimeEmployees", shadow.FullTimeEmployees, err) } fullTimeEmployees = &value } @@ -498,7 +498,7 @@ func (m *ExchangeVariant) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Phone.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.Phone, &value); err != nil { - return err + return memberDecodeError("ExchangeVariant", "phone", shadow.Phone, err) } phone = &value } @@ -506,7 +506,7 @@ func (m *ExchangeVariant) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Address.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.Address, &value); err != nil { - return err + return memberDecodeError("ExchangeVariant", "address", shadow.Address, err) } address = &value } @@ -514,7 +514,7 @@ func (m *ExchangeVariant) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.City.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.City, &value); err != nil { - return err + return memberDecodeError("ExchangeVariant", "city", shadow.City, err) } city = &value } @@ -522,7 +522,7 @@ func (m *ExchangeVariant) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.State.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.State, &value); err != nil { - return err + return memberDecodeError("ExchangeVariant", "state", shadow.State, err) } state = &value } @@ -530,7 +530,7 @@ func (m *ExchangeVariant) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Zip.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.Zip, &value); err != nil { - return err + return memberDecodeError("ExchangeVariant", "zip", shadow.Zip, err) } zip = &value } @@ -538,7 +538,7 @@ func (m *ExchangeVariant) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.DCFDiff.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.DCFDiff, &value); err != nil { - return err + return memberDecodeError("ExchangeVariant", "dcfDiff", shadow.DCFDiff, err) } dcfDiff = &value } diff --git a/sdk/go/sec_filings_models.go b/sdk/go/sec_filings_models.go index f2caa49..f8aa1ed 100644 --- a/sdk/go/sec_filings_models.go +++ b/sdk/go/sec_filings_models.go @@ -126,7 +126,7 @@ func (m *SECCompanySearchResult) UnmarshalJSONFrom(dec *jsontext.Decoder) error if shadow.PhoneNumber.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.PhoneNumber, &value); err != nil { - return err + return memberDecodeError("SECCompanySearchResult", "phoneNumber", shadow.PhoneNumber, err) } phoneNumber = &value } @@ -306,7 +306,7 @@ func (m *SECCompanyProfile) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.FiscalYearEnd.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.FiscalYearEnd, &value); err != nil { - return err + return memberDecodeError("SECCompanyProfile", "fiscalYearEnd", shadow.FiscalYearEnd, err) } fiscalYearEnd = &value } @@ -314,7 +314,7 @@ func (m *SECCompanyProfile) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Employees.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.Employees, &value); err != nil { - return err + return memberDecodeError("SECCompanyProfile", "employees", shadow.Employees, err) } employees = &value } @@ -322,7 +322,7 @@ func (m *SECCompanyProfile) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.SecurityType.Kind() != 'n' { var value jsontext.Value if err := json.Unmarshal(shadow.SecurityType, &value); err != nil { - return err + return memberDecodeError("SECCompanyProfile", "securityType", shadow.SecurityType, err) } securityType = &value } diff --git a/sdk/go/statements_models.go b/sdk/go/statements_models.go index b003b76..737b5aa 100644 --- a/sdk/go/statements_models.go +++ b/sdk/go/statements_models.go @@ -59,7 +59,7 @@ func (m *AsReportedFinancialStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) if shadow.ReportedCurrency.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.ReportedCurrency, &value); err != nil { - return err + return memberDecodeError("AsReportedFinancialStatement", "reportedCurrency", shadow.ReportedCurrency, err) } reportedCurrency = &value } @@ -345,7 +345,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.CashAndCashEquivalents.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.CashAndCashEquivalents, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "cashAndCashEquivalents", shadow.CashAndCashEquivalents, err) } cashAndCashEquivalents = &value } @@ -353,7 +353,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.ShortTermInvestments.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.ShortTermInvestments, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "shortTermInvestments", shadow.ShortTermInvestments, err) } shortTermInvestments = &value } @@ -361,7 +361,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.CashAndShortTermInvestments.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.CashAndShortTermInvestments, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "cashAndShortTermInvestments", shadow.CashAndShortTermInvestments, err) } cashAndShortTermInvestments = &value } @@ -369,7 +369,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.NetReceivables.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.NetReceivables, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "netReceivables", shadow.NetReceivables, err) } netReceivables = &value } @@ -377,7 +377,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.AccountsReceivables.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.AccountsReceivables, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "accountsReceivables", shadow.AccountsReceivables, err) } accountsReceivables = &value } @@ -385,7 +385,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Inventory.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.Inventory, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "inventory", shadow.Inventory, err) } inventory = &value } @@ -393,7 +393,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Prepaids.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.Prepaids, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "prepaids", shadow.Prepaids, err) } prepaids = &value } @@ -401,7 +401,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.TotalCurrentAssets.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.TotalCurrentAssets, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "totalCurrentAssets", shadow.TotalCurrentAssets, err) } totalCurrentAssets = &value } @@ -409,7 +409,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.PropertyPlantEquipmentNet.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.PropertyPlantEquipmentNet, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "propertyPlantEquipmentNet", shadow.PropertyPlantEquipmentNet, err) } propertyPlantEquipmentNet = &value } @@ -417,7 +417,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Goodwill.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.Goodwill, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "goodwill", shadow.Goodwill, err) } goodwill = &value } @@ -425,7 +425,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.IntangibleAssets.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.IntangibleAssets, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "intangibleAssets", shadow.IntangibleAssets, err) } intangibleAssets = &value } @@ -433,7 +433,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.GoodwillAndIntangibleAssets.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.GoodwillAndIntangibleAssets, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "goodwillAndIntangibleAssets", shadow.GoodwillAndIntangibleAssets, err) } goodwillAndIntangibleAssets = &value } @@ -441,7 +441,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.LongTermInvestments.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.LongTermInvestments, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "longTermInvestments", shadow.LongTermInvestments, err) } longTermInvestments = &value } @@ -449,7 +449,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.TaxAssets.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.TaxAssets, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "taxAssets", shadow.TaxAssets, err) } taxAssets = &value } @@ -457,7 +457,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.TotalNonCurrentAssets.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.TotalNonCurrentAssets, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "totalNonCurrentAssets", shadow.TotalNonCurrentAssets, err) } totalNonCurrentAssets = &value } @@ -465,7 +465,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.TotalAssets.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.TotalAssets, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "totalAssets", shadow.TotalAssets, err) } totalAssets = &value } @@ -473,7 +473,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.AccountPayables.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.AccountPayables, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "accountPayables", shadow.AccountPayables, err) } accountPayables = &value } @@ -481,7 +481,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.OtherPayables.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.OtherPayables, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "otherPayables", shadow.OtherPayables, err) } otherPayables = &value } @@ -489,7 +489,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.AccruedExpenses.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.AccruedExpenses, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "accruedExpenses", shadow.AccruedExpenses, err) } accruedExpenses = &value } @@ -497,7 +497,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.ShortTermDebt.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.ShortTermDebt, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "shortTermDebt", shadow.ShortTermDebt, err) } shortTermDebt = &value } @@ -505,7 +505,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.CapitalLeaseObligationsCurrent.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.CapitalLeaseObligationsCurrent, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "capitalLeaseObligationsCurrent", shadow.CapitalLeaseObligationsCurrent, err) } capitalLeaseObligationsCurrent = &value } @@ -513,7 +513,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.TaxPayables.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.TaxPayables, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "taxPayables", shadow.TaxPayables, err) } taxPayables = &value } @@ -521,7 +521,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.DeferredRevenue.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.DeferredRevenue, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "deferredRevenue", shadow.DeferredRevenue, err) } deferredRevenue = &value } @@ -529,7 +529,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.TotalCurrentLiabilities.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.TotalCurrentLiabilities, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "totalCurrentLiabilities", shadow.TotalCurrentLiabilities, err) } totalCurrentLiabilities = &value } @@ -537,7 +537,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.LongTermDebt.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.LongTermDebt, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "longTermDebt", shadow.LongTermDebt, err) } longTermDebt = &value } @@ -545,7 +545,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.CapitalLeaseObligationsNonCurrent.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.CapitalLeaseObligationsNonCurrent, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "capitalLeaseObligationsNonCurrent", shadow.CapitalLeaseObligationsNonCurrent, err) } capitalLeaseObligationsNonCurrent = &value } @@ -553,7 +553,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.DeferredRevenueNonCurrent.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.DeferredRevenueNonCurrent, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "deferredRevenueNonCurrent", shadow.DeferredRevenueNonCurrent, err) } deferredRevenueNonCurrent = &value } @@ -561,7 +561,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.DeferredTaxLiabilitiesNonCurrent.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.DeferredTaxLiabilitiesNonCurrent, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "deferredTaxLiabilitiesNonCurrent", shadow.DeferredTaxLiabilitiesNonCurrent, err) } deferredTaxLiabilitiesNonCurrent = &value } @@ -569,7 +569,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.TotalNonCurrentLiabilities.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.TotalNonCurrentLiabilities, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "totalNonCurrentLiabilities", shadow.TotalNonCurrentLiabilities, err) } totalNonCurrentLiabilities = &value } @@ -577,7 +577,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.TotalLiabilities.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.TotalLiabilities, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "totalLiabilities", shadow.TotalLiabilities, err) } totalLiabilities = &value } @@ -585,7 +585,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.TreasuryStock.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.TreasuryStock, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "treasuryStock", shadow.TreasuryStock, err) } treasuryStock = &value } @@ -593,7 +593,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.CommonStock.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.CommonStock, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "commonStock", shadow.CommonStock, err) } commonStock = &value } @@ -601,7 +601,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.RetainedEarnings.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.RetainedEarnings, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "retainedEarnings", shadow.RetainedEarnings, err) } retainedEarnings = &value } @@ -609,7 +609,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.AdditionalPaidInCapital.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.AdditionalPaidInCapital, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "additionalPaidInCapital", shadow.AdditionalPaidInCapital, err) } additionalPaidInCapital = &value } @@ -617,7 +617,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.AccumulatedOtherComprehensiveIncomeLoss.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.AccumulatedOtherComprehensiveIncomeLoss, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "accumulatedOtherComprehensiveIncomeLoss", shadow.AccumulatedOtherComprehensiveIncomeLoss, err) } accumulatedOtherComprehensiveIncomeLoss = &value } @@ -625,7 +625,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.TotalStockholdersEquity.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.TotalStockholdersEquity, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "totalStockholdersEquity", shadow.TotalStockholdersEquity, err) } totalStockholdersEquity = &value } @@ -633,7 +633,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.TotalEquity.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.TotalEquity, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "totalEquity", shadow.TotalEquity, err) } totalEquity = &value } @@ -641,7 +641,7 @@ func (m *BalanceSheetStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.TotalLiabilitiesAndTotalEquity.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.TotalLiabilitiesAndTotalEquity, &value); err != nil { - return err + return memberDecodeError("BalanceSheetStatement", "totalLiabilitiesAndTotalEquity", shadow.TotalLiabilitiesAndTotalEquity, err) } totalLiabilitiesAndTotalEquity = &value } @@ -1250,7 +1250,7 @@ func (m *CashFlowStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.DeferredIncomeTax.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.DeferredIncomeTax, &value); err != nil { - return err + return memberDecodeError("CashFlowStatement", "deferredIncomeTax", shadow.DeferredIncomeTax, err) } deferredIncomeTax = &value } @@ -1258,7 +1258,7 @@ func (m *CashFlowStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.StockBasedCompensation.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.StockBasedCompensation, &value); err != nil { - return err + return memberDecodeError("CashFlowStatement", "stockBasedCompensation", shadow.StockBasedCompensation, err) } stockBasedCompensation = &value } @@ -1266,7 +1266,7 @@ func (m *CashFlowStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.AccountsReceivables.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.AccountsReceivables, &value); err != nil { - return err + return memberDecodeError("CashFlowStatement", "accountsReceivables", shadow.AccountsReceivables, err) } accountsReceivables = &value } @@ -1274,7 +1274,7 @@ func (m *CashFlowStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.Inventory.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.Inventory, &value); err != nil { - return err + return memberDecodeError("CashFlowStatement", "inventory", shadow.Inventory, err) } inventory = &value } @@ -1282,7 +1282,7 @@ func (m *CashFlowStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.AccountsPayables.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.AccountsPayables, &value); err != nil { - return err + return memberDecodeError("CashFlowStatement", "accountsPayables", shadow.AccountsPayables, err) } accountsPayables = &value } @@ -1290,7 +1290,7 @@ func (m *CashFlowStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.PurchasesOfInvestments.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.PurchasesOfInvestments, &value); err != nil { - return err + return memberDecodeError("CashFlowStatement", "purchasesOfInvestments", shadow.PurchasesOfInvestments, err) } purchasesOfInvestments = &value } @@ -1298,7 +1298,7 @@ func (m *CashFlowStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.SalesMaturitiesOfInvestments.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.SalesMaturitiesOfInvestments, &value); err != nil { - return err + return memberDecodeError("CashFlowStatement", "salesMaturitiesOfInvestments", shadow.SalesMaturitiesOfInvestments, err) } salesMaturitiesOfInvestments = &value } @@ -1306,7 +1306,7 @@ func (m *CashFlowStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.LongTermNetDebtIssuance.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.LongTermNetDebtIssuance, &value); err != nil { - return err + return memberDecodeError("CashFlowStatement", "longTermNetDebtIssuance", shadow.LongTermNetDebtIssuance, err) } longTermNetDebtIssuance = &value } @@ -1314,7 +1314,7 @@ func (m *CashFlowStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.NetStockIssuance.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.NetStockIssuance, &value); err != nil { - return err + return memberDecodeError("CashFlowStatement", "netStockIssuance", shadow.NetStockIssuance, err) } netStockIssuance = &value } @@ -1322,7 +1322,7 @@ func (m *CashFlowStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.NetCommonStockIssuance.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.NetCommonStockIssuance, &value); err != nil { - return err + return memberDecodeError("CashFlowStatement", "netCommonStockIssuance", shadow.NetCommonStockIssuance, err) } netCommonStockIssuance = &value } @@ -1330,7 +1330,7 @@ func (m *CashFlowStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.CommonStockRepurchased.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.CommonStockRepurchased, &value); err != nil { - return err + return memberDecodeError("CashFlowStatement", "commonStockRepurchased", shadow.CommonStockRepurchased, err) } commonStockRepurchased = &value } @@ -1338,7 +1338,7 @@ func (m *CashFlowStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.NetPreferredStockIssuance.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.NetPreferredStockIssuance, &value); err != nil { - return err + return memberDecodeError("CashFlowStatement", "netPreferredStockIssuance", shadow.NetPreferredStockIssuance, err) } netPreferredStockIssuance = &value } @@ -1346,7 +1346,7 @@ func (m *CashFlowStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.NetDividendsPaid.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.NetDividendsPaid, &value); err != nil { - return err + return memberDecodeError("CashFlowStatement", "netDividendsPaid", shadow.NetDividendsPaid, err) } netDividendsPaid = &value } @@ -1354,7 +1354,7 @@ func (m *CashFlowStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.CommonDividendsPaid.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.CommonDividendsPaid, &value); err != nil { - return err + return memberDecodeError("CashFlowStatement", "commonDividendsPaid", shadow.CommonDividendsPaid, err) } commonDividendsPaid = &value } @@ -1362,7 +1362,7 @@ func (m *CashFlowStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.PreferredDividendsPaid.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.PreferredDividendsPaid, &value); err != nil { - return err + return memberDecodeError("CashFlowStatement", "preferredDividendsPaid", shadow.PreferredDividendsPaid, err) } preferredDividendsPaid = &value } @@ -1370,7 +1370,7 @@ func (m *CashFlowStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.NetCashProvidedByFinancingActivities.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.NetCashProvidedByFinancingActivities, &value); err != nil { - return err + return memberDecodeError("CashFlowStatement", "netCashProvidedByFinancingActivities", shadow.NetCashProvidedByFinancingActivities, err) } netCashProvidedByFinancingActivities = &value } @@ -1378,7 +1378,7 @@ func (m *CashFlowStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.CashAtBeginningOfPeriod.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.CashAtBeginningOfPeriod, &value); err != nil { - return err + return memberDecodeError("CashFlowStatement", "cashAtBeginningOfPeriod", shadow.CashAtBeginningOfPeriod, err) } cashAtBeginningOfPeriod = &value } @@ -1386,7 +1386,7 @@ func (m *CashFlowStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.IncomeTaxesPaid.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.IncomeTaxesPaid, &value); err != nil { - return err + return memberDecodeError("CashFlowStatement", "incomeTaxesPaid", shadow.IncomeTaxesPaid, err) } incomeTaxesPaid = &value } @@ -1394,7 +1394,7 @@ func (m *CashFlowStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.InterestPaid.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.InterestPaid, &value); err != nil { - return err + return memberDecodeError("CashFlowStatement", "interestPaid", shadow.InterestPaid, err) } interestPaid = &value } @@ -2612,7 +2612,7 @@ func (m *IncomeStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.FilingDate.Kind() != 'n' { var value Date if err := json.Unmarshal(shadow.FilingDate, &value); err != nil { - return err + return memberDecodeError("IncomeStatement", "filingDate", shadow.FilingDate, err) } filingDate = &value } @@ -2620,7 +2620,7 @@ func (m *IncomeStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.AcceptedDate.Kind() != 'n' { var value DateTime if err := json.Unmarshal(shadow.AcceptedDate, &value); err != nil { - return err + return memberDecodeError("IncomeStatement", "acceptedDate", shadow.AcceptedDate, err) } acceptedDate = &value } @@ -2628,7 +2628,7 @@ func (m *IncomeStatement) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.InterestIncome.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.InterestIncome, &value); err != nil { - return err + return memberDecodeError("IncomeStatement", "interestIncome", shadow.InterestIncome, err) } interestIncome = &value } @@ -2887,7 +2887,7 @@ func (m *KeyMetrics) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.GrahamNumber.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.GrahamNumber, &value); err != nil { - return err + return memberDecodeError("KeyMetrics", "grahamNumber", shadow.GrahamNumber, err) } grahamNumber = &value } @@ -3139,7 +3139,7 @@ func (m *KeyMetricsTTM) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.GrahamNumberTTM.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.GrahamNumberTTM, &value); err != nil { - return err + return memberDecodeError("KeyMetricsTTM", "grahamNumberTTM", shadow.GrahamNumberTTM, err) } grahamNumberTTM = &value } @@ -4158,7 +4158,7 @@ func (m *FinancialScore) UnmarshalJSONFrom(dec *jsontext.Decoder) error { if shadow.AltmanZScore.Kind() != 'n' { var value float64 if err := json.Unmarshal(shadow.AltmanZScore, &value); err != nil { - return err + return memberDecodeError("FinancialScore", "altmanZScore", shadow.AltmanZScore, err) } altmanZScore = &value } diff --git a/sdk/go/tipranks_models.go b/sdk/go/tipranks_models.go index e1d7d61..7094653 100644 --- a/sdk/go/tipranks_models.go +++ b/sdk/go/tipranks_models.go @@ -203,7 +203,7 @@ func (m *TipRanksPointInTimeRating) UnmarshalJSONFrom(dec *jsontext.Decoder) err if shadow.PriceTargetCurrency.Kind() != 'n' { var value string if err := json.Unmarshal(shadow.PriceTargetCurrency, &value); err != nil { - return err + return memberDecodeError("TipRanksPointInTimeRating", "priceTargetCurrency", shadow.PriceTargetCurrency, err) } priceTargetCurrency = &value } @@ -218,7 +218,7 @@ func (m *TipRanksPointInTimeRating) UnmarshalJSONFrom(dec *jsontext.Decoder) err if shadow.BeatTarget.Kind() != 'n' { var value bool if err := json.Unmarshal(shadow.BeatTarget, &value); err != nil { - return err + return memberDecodeError("TipRanksPointInTimeRating", "beatTarget", shadow.BeatTarget, err) } beatTarget = &value }