From 5d34e578421422340998ab293dd51f1cc31b5761 Mon Sep 17 00:00:00 2001 From: benbenbang Date: Wed, 30 Sep 2026 23:18:13 +0800 Subject: [PATCH 1/3] fix(sdk/go): keep member path on nullable and codec decode failures Add memberDecodeError so a member whose raw value the generated decoder cannot unmarshal keeps its full member path when reported. The failure location inside the raw value is preserved and appended to the pointer, while the underlying unmarshal text is dropped so no member value leaks into the surfaced error. A failure already reported by a nested model keeps that model's message, which names the innermost member. The date decode path now uses invalidMemberValueError to report an invalid string value with its member context intact. --- sdk/go/decode.go | 6 +++--- sdk/go/errors.go | 24 ++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 3 deletions(-) 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/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} } From cb59c394e68659eb9676f6516eb045a16f149482 Mon Sep 17 00:00:00 2001 From: benbenbang Date: Wed, 30 Sep 2026 23:18:53 +0800 Subject: [PATCH 2/3] fix(sdk/go/artifact): route member unmarshal errors through memberDecodeError The generated Go models previously returned the bare `err` from `json.Unmarshal` when decoding nullable, empty-or-null, and raw-keyed members, losing the model and wire field context needed to diagnose failures. **Generator changes**: * `gen_go/models.rs` now emits `memberDecodeError(model, wire, raw, err)` in the nullable and empty-or-null codec blocks, threading the model name and wire key into the render helpers. * `render_raw_member` takes the model name and reports raw-keyed member decode failures through `memberDecodeError` for both optional and required members. **Regenerated models**: * All affected `sdk/go/*_models.go` files were regenerated so their member decode paths return `memberDecodeError` with the owning model and wire field instead of a bare error. --- crates/fmp-py-gen/src/bin/gen_go/models.rs | 37 +++--- sdk/go/analyst_models.go | 12 +- sdk/go/bulk_models.go | 2 +- sdk/go/calendar_models.go | 22 ++-- sdk/go/commodities_models.go | 2 +- sdk/go/company_models.go | 26 ++--- sdk/go/congressional_models.go | 16 +-- sdk/go/crypto_models.go | 4 +- sdk/go/directory_models.go | 6 +- sdk/go/economics_models.go | 38 +++--- sdk/go/esg_models.go | 6 +- sdk/go/fundraising_models.go | 26 ++--- sdk/go/funds_models.go | 14 +-- sdk/go/indexes_models.go | 10 +- sdk/go/insider_trading_models.go | 12 +- sdk/go/institutional_ownership_models.go | 8 +- sdk/go/market_hours_models.go | 6 +- sdk/go/news_models.go | 6 +- sdk/go/quote_models.go | 8 +- sdk/go/screener_models.go | 10 +- sdk/go/search_models.go | 30 ++--- sdk/go/sec_filings_models.go | 8 +- sdk/go/statements_models.go | 128 ++++++++++----------- sdk/go/tipranks_models.go | 4 +- 24 files changed, 225 insertions(+), 216 deletions(-) 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/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/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/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 } From 6a6bc69913129db1b7d4ac08b6910d65ff166a7d Mon Sep 17 00:00:00 2001 From: benbenbang Date: Wed, 30 Sep 2026 23:22:57 +0800 Subject: [PATCH 3/3] test(sdk/go): add decode-path tests for nullable and codec members Add Go decode-path tests covering nullable members, the empty_or_null and date codecs, and nested-model member locations, asserting that decode errors name the failing member and never leak its raw value. Add a gen_go render test verifying that shadow-decoded members report their failures against the correct member rather than returning the bare unmarshal error. close #387 --- crates/fmp-py-gen/src/bin/gen_go/tests.rs | 42 +++++++++++++++ sdk/go/decode_path_test.go | 62 +++++++++++++++++++++++ 2 files changed, 104 insertions(+) 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/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) +}