-
Notifications
You must be signed in to change notification settings - Fork 2
/
mars_rovers.go
123 lines (108 loc) · 2.92 KB
/
mars_rovers.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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
package nasa
const (
marsRoversAPIURL = "https://api.nasa.gov/mars-photos/api/v1/rovers"
)
// Rover represents a Mars rover.
type Rover struct {
Name string
Slug string
Cameras []RoverCamera
}
// Defines Rovers to be used in the API request.
var (
RoverCuriosity = Rover{
Name: "Curiosity",
Slug: "curiosity",
Cameras: []RoverCamera{RoverCameraFHAZ, RoverCameraRHAZ, RoverCameraMAST, RoverCameraCHEMCAM, RoverCameraMAHLI, RoverCameraMARDI, RoverCameraNAVCAM},
}
RoverOpportunity = Rover{
Name: "Opportunity",
Slug: "opportunity",
Cameras: []RoverCamera{RoverCameraFHAZ, RoverCameraRHAZ, RoverCameraNAVCAM, RoverCameraPANCAM, RoverCameraMINITES},
}
RoverSpirit = Rover{
Name: "Spirit",
Slug: "spirit",
Cameras: []RoverCamera{RoverCameraFHAZ, RoverCameraRHAZ, RoverCameraNAVCAM, RoverCameraPANCAM, RoverCameraMINITES},
}
// Rovers is an easily iteratable array of rovers.
Rovers = []Rover{
RoverCuriosity,
RoverOpportunity,
RoverSpirit,
}
)
// RoverCamera represents a rover camera type.
type RoverCamera struct {
Name string
FullName string
Slug string
}
var (
// RoverCameraFHAZ is the Front Hazard Avoidance Camera.
RoverCameraFHAZ = RoverCamera{
Name: "FHAZ",
FullName: "Front Hazard Avoidance Camera",
Slug: "fhaz",
}
// RoverCameraRHAZ is the Rear Hazard Avoidance Camera.
RoverCameraRHAZ = RoverCamera{
Name: "RHAZ",
FullName: "Rear Hazard Avoidance Camera",
Slug: "rhaz",
}
// RoverCameraMAST is the Mast Camera.
RoverCameraMAST = RoverCamera{
Name: "MAST",
FullName: "Mast Camera",
Slug: "mast",
}
// RoverCameraCHEMCAM is the Chemistry and Camera Complex.
RoverCameraCHEMCAM = RoverCamera{
Name: "CHEMCAM",
FullName: "Chemistry and Camera Complex",
Slug: "chemcam",
}
// RoverCameraMAHLI is the Mars Hand Lens Imager.
RoverCameraMAHLI = RoverCamera{
Name: "MAHLI",
FullName: "Mars Hand Lens Imager",
Slug: "mahli",
}
// RoverCameraMARDI is the Mars Descent Imager.
RoverCameraMARDI = RoverCamera{
Name: "MARDI",
FullName: "Mars Descent Imager",
Slug: "mardi",
}
// RoverCameraNAVCAM is the Navigation Camera.
RoverCameraNAVCAM = RoverCamera{
Name: "NAVCAM",
FullName: "Navigation Camera",
Slug: "navcam",
}
// RoverCameraPANCAM is the Panoramic Camera.
RoverCameraPANCAM = RoverCamera{
Name: "PANCAM",
FullName: "Panoramic Camera",
Slug: "pancam",
}
// RoverCameraMINITES is the Miniature Thermal Emission Spectrometer (Mini-TES).
RoverCameraMINITES = RoverCamera{
Name: "MINITES",
FullName: "Miniature Thermal Emission Spectrometer (Mini-TES)",
Slug: "minites",
}
// RoverCameras is an easily iteratable array of cameras.
RoverCameras = []RoverCamera{
RoverCameraFHAZ,
RoverCameraRHAZ,
RoverCameraMAST,
RoverCameraCHEMCAM,
RoverCameraMAHLI,
RoverCameraMARDI,
RoverCameraNAVCAM,
RoverCameraPANCAM,
RoverCameraMINITES,
}
)