diff --git a/schema.graphql b/schema.graphql new file mode 100644 index 0000000..93bc6d9 --- /dev/null +++ b/schema.graphql @@ -0,0 +1,121 @@ +# source: https://dancefinder.unbound.se/graph/ +# timestamp: Wed Jul 03 2019 13:36:10 GMT+0200 (Central European Summer Time) + +"""Band""" +type Band { + id: Int + name: String! + created: LocalDateTime! +} + +"""DanceHall""" +type DanceHall { + id: Int + name: String + city: String + municipality: String + state: String + latitude: Float + longitude: Float + created: LocalDateTime! +} + +"""DanceHallDistance""" +type DanceHallDistance { + origin: String! + distance: Int! + duration: String! +} + +"""Event""" +type Event { + id: Int + + """The date of the event""" + date: LocalDate! + + """The time of the event""" + time: String + + """Additional information regarding the event""" + extraInfo: String + created: LocalDateTime! + + """The band of the event""" + band: Band + + """The place of the event""" + danceHall: DanceHall + + """ + The driving distances and driving durations to the event from the provided origins + """ + distances: [DanceHallDistance!]! +} + +scalar LocalDate + +scalar LocalDateTime + +type Mutation { + """Toggle band in ignore list""" + ToggleIgnoreBand(name: String!): Boolean! + + """Toggle dance hall in ignore list""" + ToggleIgnoreDanceHall(name: String!): Boolean! + + """Toggle city in ignore list""" + ToggleIgnoreCity(name: String!): Boolean! + + """Toggle municipality in ignore list""" + ToggleIgnoreMunicipality(name: String!): Boolean! + + """Toggle state in ignore list""" + ToggleIgnoreState(name: String!): Boolean! + + """Save provided origin for authenticated user""" + SaveOrigin(origin: String!): Boolean! + + """Remove provided origin from authenticated user""" + RemoveOrigin(origin: String!): Boolean! +} + +type Query { + """Find events given provided criteria""" + Events(range: Range, origins: [String!]): [Event!]! + + """Find bands given provided criteria""" + Bands: [Band!]! + + """Find dance halls given provided criteria""" + DanceHalls: [DanceHall!]! + + """Fetch origins for authenticated user""" + Origins: [String!]! + + """Fetch address for provided lat/long""" + AddressFromLatLng(latlng: String!): String! + + """Fetch ignored bands for authenticated user""" + IgnoredBands: [String!]! + + """Fetch ignored dance halls for authenticated user""" + IgnoredDanceHalls: [String!]! + + """Fetch ignored cities for authenticated user""" + IgnoredCities: [String!]! + + """Fetch ignored municipalities for authenticated user""" + IgnoredMunicipalities: [String!]! + + """Fetch ignored states for authenticated user""" + IgnoredStates: [String!]! +} + +enum Range { + ONE_MONTH + ONE_YEAR + TWO_WEEKS + ONE_QUARTER + ONE_WEEK +}