-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdataobservation.go
83 lines (75 loc) · 2.91 KB
/
dataobservation.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
package phoebe
import (
"github.com/phoebe-bird/phoebe-go/internal/apijson"
"github.com/phoebe-bird/phoebe-go/option"
)
// DataObservationService contains methods and other services that help with
// interacting with the phoebe API.
//
// Note, unlike clients, this service does not read variables from the environment
// automatically. You should not instantiate this service directly, and instead use
// the [NewDataObservationService] method instead.
type DataObservationService struct {
Options []option.RequestOption
Recent *DataObservationRecentService
Geo *DataObservationGeoService
Nearest *DataObservationNearestService
}
// NewDataObservationService generates a new service that applies the given options
// to each request. These options are applied after the parent client's options (if
// there is one), and before any request-specific options.
func NewDataObservationService(opts ...option.RequestOption) (r *DataObservationService) {
r = &DataObservationService{}
r.Options = opts
r.Recent = NewDataObservationRecentService(opts...)
r.Geo = NewDataObservationGeoService(opts...)
r.Nearest = NewDataObservationNearestService(opts...)
return
}
type Observation struct {
ID int64 `json:"id"`
ComName string `json:"comName"`
Firstname string `json:"firstname"`
HowMany int64 `json:"howMany"`
Lastname string `json:"lastname"`
Lat float64 `json:"lat"`
Lng float64 `json:"lng"`
LocationPrivate bool `json:"locationPrivate"`
LocID string `json:"locId"`
LocName string `json:"locName"`
ObsDt string `json:"obsDt"`
ObsReviewed bool `json:"obsReviewed"`
ObsValid bool `json:"obsValid"`
SciName string `json:"sciName"`
SpeciesCode string `json:"speciesCode"`
SubID string `json:"subId"`
JSON observationJSON `json:"-"`
}
// observationJSON contains the JSON metadata for the struct [Observation]
type observationJSON struct {
ID apijson.Field
ComName apijson.Field
Firstname apijson.Field
HowMany apijson.Field
Lastname apijson.Field
Lat apijson.Field
Lng apijson.Field
LocationPrivate apijson.Field
LocID apijson.Field
LocName apijson.Field
ObsDt apijson.Field
ObsReviewed apijson.Field
ObsValid apijson.Field
SciName apijson.Field
SpeciesCode apijson.Field
SubID apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *Observation) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r observationJSON) RawJSON() string {
return r.raw
}