tvdb - request.go
1 package tvdb
2
3 import (
4 "encoding/json"
5 "fmt"
6 )
7
8 type requestErrors struct {
9 InvalidFilters ErrInvalidFilters `json:"invalidFilters"`
10 InvalidLanguage ErrInvalidLanguage `json:"invalidLanguage"`
11 InvalidQueryParams ErrInvalidQueryParams `json:"invalidQueryParams"`
12 }
13
14 // ErrInvalidFilters is returned from query that use an unknown or invalid
15 // filter
16 type ErrInvalidFilters []string
17
18 // Error satisfies the error interface
19 func (ErrInvalidFilters) Error() string {
20 return "invalid filters"
21 }
22
23 // UnmarshalJSON uses the json decoding of the error to generate an error
24 // instead of decoding
25 func (ErrInvalidFilters) UnmarshalJSON(b []byte) error {
26 var e []string
27 if err := json.Unmarshal(b, &e); err != nil {
28 return fmt.Errorf("error decoding Invalid Filters error: %w", err)
29 } else if len(e) > 0 {
30 return ErrInvalidFilters(e)
31 }
32 return nil
33 }
34
35 // ErrInvalidLanguage is returned when a query requests an unknown or invalid
36 // language
37 type ErrInvalidLanguage string
38
39 // Error satisfies the error interface
40 func (ErrInvalidLanguage) Error() string {
41 return "invalid language"
42 }
43
44 // UnmarshalJSON uses the json decoding of the error to generate an error
45 // instead of decoding
46 func (ErrInvalidLanguage) UnmarshalJSON(b []byte) error {
47 var e string
48 if err := json.Unmarshal(b, &e); err != nil {
49 return fmt.Errorf("error decoding Invalid Language error: %w", err)
50 } else if len(e) > 0 {
51 return ErrInvalidLanguage(e)
52 }
53 return nil
54 }
55
56 // ErrInvalidQueryParams is returned when a query uses unknown or invalid
57 // params
58 type ErrInvalidQueryParams []string
59
60 // Error satisfies the error interface
61 func (ErrInvalidQueryParams) Error() string {
62 return "invalid query params"
63 }
64
65 // UnmarshalJSON uses the json decoding of the error to generate an error
66 // instead of decoding
67 func (ErrInvalidQueryParams) UnmarshalJSON(b []byte) error {
68 var e []string
69 if err := json.Unmarshal(b, &e); err != nil {
70 return fmt.Errorf("error decoding Invalid Query Params error: %w", err)
71 } else if len(e) > 0 {
72 return ErrInvalidQueryParams(e)
73 }
74 return nil
75 }