forked from OpenBeta/openbeta-graphql
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathClimb.gql
More file actions
208 lines (185 loc) · 5.58 KB
/
Climb.gql
File metadata and controls
208 lines (185 loc) · 5.58 KB
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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
type Query {
climb(uuid: ID): Climb
}
"A climbing route or a boulder problem"
type Climb {
id: ID!
"""
The UUID of the climb is the field used for identification.
The id field is used in internal database relations, most GQL
queries will use the uuid field.
"""
uuid: ID!
"The name that this climb is commonly identified by"
name: String!
"First ascent, if known. Who was the first person to climb this route?"
fa: String
"Total length in meters if known (-1 otherwise)"
length: Int!
"Number of bolts/permanent anchors, if known (-1 otherwise)"
boltsCount: Int
"List of Pitch objects representing individual pitches of a multi-pitch climb"
pitches: [Pitch]
"The grade(s) assigned to this climb. See GradeType documentation"
grades: GradeType
"""
Grade systems have minor variations between countries.
gradeContext is a short abbreviated string that identifies the
context in which the grade was assigned.
"""
gradeContext: String
type: ClimbType!
safety: SafetyEnum
metadata: ClimbMetadata!
"""
Composable attributes for this climb, these are the bread and butter
guidebook-like data that make up the bulk of the text beta for this climb
"""
content: Content!
"""
Area names traversing up the heirarchy from this climbs immediate
parent to the root area.
"""
pathTokens: [String!]!
"""
Area UUIDs traversing up the heirarchy from this climbs immediate
parent to the root area.
"""
ancestors: [String!]!
"Media associated with this climb"
media: [MediaWithTags]
yds: String @deprecated(reason: "Migrating to 'grades' field")
"The parent area object"
parent: Area!
"Metadata about creation & update of this climb"
authorMetadata: AuthorMetadata!
}
type ClimbMetadata {
lat: Float
lng: Float
left_right_index: Int
leftRightIndex: Int
"If this climb originated from Mountain Project, this is the ID"
mp_id: String
climb_id: ID!
climbId: ID!
}
"""
Composable attributes for this climb, these are the bread and butter
guidebook-like data that make up the bulk of the text beta for this climb
"""
type Content {
"""
The description of this climb, this is the main text field for this climb.
This contains beta, visual descriptors, and any other information useful
to identifying and attempting the climb
"""
description: String
"""
Information regarding Approach and other location context for this climb.
Could also include information about the situation of this specific climb.
"""
location: String
"""
What do climbers need to know about making a safe attempt of this climb?
What gear do they need, what are the hazards, etc.
"""
protection: String
}
"""
What sort of climb is this? Routes can combine these fields, which is why
this is not an enumeration.
For example, a route may be a sport route, but also a top rope route.
"""
type ClimbType {
"https://en.wikipedia.org/wiki/Traditional_climbing"
trad: Boolean
"https://en.wikipedia.org/wiki/Sport_climbing"
sport: Boolean
"https://en.wikipedia.org/wiki/Bouldering"
bouldering: Boolean
"https://en.wikipedia.org/wiki/Deep-water_soloing"
deepwatersolo: Boolean
"https://en.wikipedia.org/wiki/Alpine_climbing"
alpine: Boolean
"https://en.wikipedia.org/wiki/Ice_climbing"
snow: Boolean
"https://en.wikipedia.org/wiki/Ice_climbing"
ice: Boolean
mixed: Boolean
"https://en.wikipedia.org/wiki/Aid_climbing"
aid: Boolean
"https://en.wikipedia.org/wiki/Top_rope_climbing"
tr: Boolean
}
"""
There are a number of grading systems around the world, this enum
specifies the system. Developers will then use the key to best understand
its value.
https://en.wikipedia.org/wiki/Grade_(climbing)
"""
type GradeType {
"""
[read more about vscale](https://www.99boulders.com/bouldering-grades#v-scale)
"""
vscale: String
"""
Yosemite Decimal System
https://en.wikipedia.org/wiki/Grade_(climbing)#Yosemite_Decimal_System
"""
yds: String
"""
Ewbank grade
https://en.wikipedia.org/wiki/Grade_(climbing)#Ewbank
"""
ewbank: String
french: String
brazilianCrux: String
"""
Fontainebleau grading system, the most widely used grading system in Europe.
Mostly used for bouldering.
https://www.99boulders.com/bouldering-grades#font-scale-aka-fontainebleau-scale
"""
font: String
"""
UIAA grading system, typically used in Central Europe (e.g. Germany, Austria, Switzerland).
Uses Arabic numerals, e.g. "7-", "7", "7+". (Roman numerals, like "VII-", are not supported).
https://en.wikipedia.org/wiki/Grade_(climbing)#UIAA
"""
uiaa: String
}
"""
rating indicates the quality and spacing of a route's available protection for a
competent climber. Amusingly, the letter codes associated with the different
protection ratings are based on the American system for movie ratings:
"""
enum SafetyEnum {
UNSPECIFIED
"Generally good protection with a few sections of poor protection"
PG
"Fair protection that may result in long, potentially dangerous falls"
PG13
"""
a part of a route where there isn’t any protection for a while below you.
It happens when a route is sparsely bolted or there isn’t be anywhere to
place a cam. “Running it out” is common on classic routes and
sometimes hard sport overhangs.
[source](https://www.climbernews.com/what-is-a-runout-in-climbing/)
"""
runout
terrain
"where there's limited protection and the possibility of serious injury"
R
"No protection and overall the route is extremely dangerous."
X
}
type Pitch {
id: ID!
parentId: ID!
pitchNumber: Int!
grades: GradeType
type: ClimbType
length: Int
boltsCount: Int
description: String
}