mirror of
https://git.ianrenton.com/ian/spothole.git
synced 2026-02-04 01:04:33 +00:00
First attempt at SSE backend #3
This commit is contained in:
@@ -149,6 +149,104 @@ paths:
|
||||
items:
|
||||
$ref: '#/components/schemas/Spot'
|
||||
|
||||
/spots/stream:
|
||||
get:
|
||||
tags:
|
||||
- Spots
|
||||
summary: Get spot stream
|
||||
description: Request a Server-Sent Event stream which will return individual spots immediately when they are added to the system. Only spots that match the provided filters will be returned.
|
||||
operationId: spots/stream
|
||||
parameters:
|
||||
- name: source
|
||||
in: query
|
||||
description: "Limit the spots to only ones from one or more sources. To select more than one source, supply a comma-separated list."
|
||||
required: false
|
||||
schema:
|
||||
$ref: "#/components/schemas/Source"
|
||||
- name: sig
|
||||
in: query
|
||||
description: "Limit the spots to only ones from one or more Special Interest Groups provided as an argument. To select more than one SIG, supply a comma-separated list. The special `sig` name `NO_SIG` matches spots with no sig set. You can use `sig=NO_SIG` to specifically only return generic spots with no associated SIG. You can also use combinations to request for example POTA + no SIG, but reject other SIGs. If you want to request 'every SIG and not No SIG', see the `needs_sig` query parameter for a shortcut."
|
||||
required: false
|
||||
schema:
|
||||
$ref: "#/components/schemas/SIGNameIncludingNoSIG"
|
||||
- name: needs_sig
|
||||
in: query
|
||||
description: "Limit the spots to only ones with a Special Interest Group such as POTA. Because supplying all known SIGs as a `sigs` parameter is unwieldy, and leaving `sigs` blank will also return spots with *no* SIG, this parameter can be set true to return only spots with a SIG, regardless of what it is, so long as it's not blank. This is the equivalent of supplying the `sig` query param with a list of every known SIG apart from the special `NO_SIG` value. This is what Field Spotter uses to exclude generic cluster spots and only retrieve xOTA things."
|
||||
required: false
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- name: needs_sig_ref
|
||||
in: query
|
||||
description: "Limit the spots to only ones which have at least one reference (e.g. a park reference) for Special Interest Groups such as POTA."
|
||||
required: false
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- name: band
|
||||
in: query
|
||||
description: "Limit the spots to only ones from one or more bands. To select more than one band, supply a comma-separated list."
|
||||
required: false
|
||||
schema:
|
||||
$ref: "#/components/schemas/BandName"
|
||||
- name: mode
|
||||
in: query
|
||||
description: "Limit the spots to only ones from one or more modes. To select more than one mode, supply a comma-separated list."
|
||||
required: false
|
||||
schema:
|
||||
$ref: "#/components/schemas/Mode"
|
||||
- name: mode_type
|
||||
in: query
|
||||
description: "Limit the spots to only ones from one or more mode families. To select more than one mode family, supply a comma-separated list."
|
||||
required: false
|
||||
schema:
|
||||
$ref: "#/components/schemas/Mode"
|
||||
- name: dx_continent
|
||||
in: query
|
||||
description: "Limit the spots to only ones where the DX (the operator being spotted) is on the given continent(s). To select more than one continent, supply a comma-separated list."
|
||||
required: false
|
||||
schema:
|
||||
$ref: "#/components/schemas/Continent"
|
||||
- name: de_continent
|
||||
in: query
|
||||
description: "Limit the spots to only ones where the spotteris on the given continent(s). To select more than one continent, supply a comma-separated list."
|
||||
required: false
|
||||
schema:
|
||||
$ref: "#/components/schemas/Continent"
|
||||
- name: dx_call_includes
|
||||
in: query
|
||||
description: "Limit the alerts to only ones where the DX callsign includes the supplied string (case-insensitive). Generally a complete callsign, but you can supply a shorter string for partial matches."
|
||||
required: false
|
||||
schema:
|
||||
type: string
|
||||
- name: comment_includes
|
||||
in: query
|
||||
description: "Return only spots where the comment includes the provided string (case-insensitive)."
|
||||
required: false
|
||||
schema:
|
||||
type: string
|
||||
- name: needs_good_location
|
||||
in: query
|
||||
description: "Return only spots with a 'good' location. (See the spot `dx_location_good` parameter for details. Useful for map-based clients, to avoid spots with 'bad' locations e.g. loads of cluster spots ending up in the centre of the DXCC entitity.)"
|
||||
required: false
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- name: allow_qrt
|
||||
in: query
|
||||
description: Allow spots that are known to be QRT to be returned.
|
||||
required: false
|
||||
schema:
|
||||
type: boolean
|
||||
default: true
|
||||
responses:
|
||||
'200':
|
||||
description: Success
|
||||
content:
|
||||
text/event-stream:
|
||||
schema:
|
||||
$ref: '#/components/schemas/SpotStream'
|
||||
|
||||
|
||||
/alerts:
|
||||
get:
|
||||
@@ -156,7 +254,7 @@ paths:
|
||||
- Alerts
|
||||
summary: Get alerts
|
||||
description: Retrieves alerts (indications of upcoming activations) from the system. Supply this with no query parameters to retrieve all alerts known to the system. Supply query parameters to filter what is retrieved.
|
||||
operationId: spots
|
||||
operationId: alerts
|
||||
parameters:
|
||||
- name: limit
|
||||
in: query
|
||||
@@ -217,6 +315,59 @@ paths:
|
||||
$ref: '#/components/schemas/Alert'
|
||||
|
||||
|
||||
/alerts/stream:
|
||||
get:
|
||||
tags:
|
||||
- Alerts
|
||||
summary: Get alert stream
|
||||
description: Request a Server-Sent Event stream which will return individual alerts immediately when they are added to the system. Only alerts that match the provided filters will be returned.
|
||||
operationId: alerts/stream
|
||||
parameters:
|
||||
- name: max_duration
|
||||
in: query
|
||||
description: Limit the alerts to only ones with a duration of this many seconds or less. Duration is end time minus start time, if end time is set, otherwise the activation is assumed to be short and therefore to always pass this check. This is useful to filter out people who alert POTA activations lasting months or even years, but note it will also include multi-day or multi-week DXpeditions that you might otherwise be interested in. See the dxpeditions_skip_max_duration_check parameter for the workaround.
|
||||
required: false
|
||||
schema:
|
||||
type: integer
|
||||
- name: dxpeditions_skip_max_duration_check
|
||||
in: query
|
||||
description: Return DXpedition alerts even if they last longer than max_duration. This allows the user to filter out multi-day/multi-week POTA alerts where the operator likely won't be on the air most of the time, but keep multi-day/multi-week DXpeditions where the operator(s) likely *will* be on the air most of the time.
|
||||
required: false
|
||||
schema:
|
||||
type: boolean
|
||||
- name: source
|
||||
in: query
|
||||
description: "Limit the alerts to only ones from one or more sources. To select more than one source, supply a comma-separated list."
|
||||
required: false
|
||||
schema:
|
||||
$ref: "#/components/schemas/Source"
|
||||
- name: sig
|
||||
in: query
|
||||
description: "Limit the alerts to only ones from one or more Special Interest Groups. To select more than one SIG, supply a comma-separated list. The special value 'NO_SIG' can be included to return alerts specifically without an associated SIG (i.e. general DXpeditions)."
|
||||
required: false
|
||||
schema:
|
||||
$ref: "#/components/schemas/SIGNameIncludingNoSIG"
|
||||
- name: dx_continent
|
||||
in: query
|
||||
description: "Limit the alerts to only ones where the DX operator is on the given continent(s). To select more than one continent, supply a comma-separated list."
|
||||
required: false
|
||||
schema:
|
||||
$ref: "#/components/schemas/Continent"
|
||||
- name: dx_call_includes
|
||||
in: query
|
||||
description: "Limit the alerts to only ones where the DX callsign includes the supplied string (case-insensitive). Generally a complete callsign, but you can supply a shorter string for partial matches."
|
||||
required: false
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: Success
|
||||
content:
|
||||
text/event-stream:
|
||||
schema:
|
||||
$ref: '#/components/schemas/AlertStream'
|
||||
|
||||
|
||||
/status:
|
||||
get:
|
||||
tags:
|
||||
@@ -933,6 +1084,15 @@ components:
|
||||
example: "GUID-123456"
|
||||
|
||||
|
||||
SpotStream:
|
||||
type: object
|
||||
description: A server-sent event containing a spot
|
||||
required: [data]
|
||||
properties:
|
||||
data:
|
||||
$ref: "#/components/schemas/Spot"
|
||||
|
||||
|
||||
Alert:
|
||||
type: object
|
||||
properties:
|
||||
@@ -1032,6 +1192,16 @@ components:
|
||||
description: The ID the source gave it, if any.
|
||||
example: "GUID-123456"
|
||||
|
||||
|
||||
AlertStream:
|
||||
type: object
|
||||
description: A server-sent event containing an alert
|
||||
required: [data]
|
||||
properties:
|
||||
data:
|
||||
$ref: "#/components/schemas/Alert"
|
||||
|
||||
|
||||
SpotProviderStatus:
|
||||
type: object
|
||||
properties:
|
||||
|
||||
Reference in New Issue
Block a user