Skip to content
Snippets Groups Projects
Commit f2be5eac authored by Rivers, Travis (Contractor) Creighton's avatar Rivers, Travis (Contractor) Creighton
Browse files

refactor observatories endpoints, add to_json method to class

parent a0f17598
No related branches found
No related tags found
2 merge requests!146Release CMO metadata to production,!32Observatories endpoint
......@@ -51,6 +51,24 @@ class Observatory(BaseModel):
sensor_orientation = "HDZF"
return sensor_orientation
def to_json(self) -> str:
return {
"type": "Feature",
"id": self.id,
"properties": {
"name": self.name,
"agency": self.agency,
"agency_name": self.agency_name,
"sensor_orientation": self.sensor_orientation,
"sensor_sampling_rate": 0.01,
"declination_base": self.declination_base,
},
"geometry": {
"type": "Point",
"coordinates": [self.longitude, self.latitude, self.elevation],
},
}
OBSERVATORIES = [
Observatory(
......
......@@ -2,54 +2,20 @@ from typing import Dict
from fastapi import APIRouter
from .Observatory import OBSERVATORIES
from .Observatory import OBSERVATORIES, OBSERVATORY_INDEX
router = APIRouter()
@router.get("/observatories")
@router.get("/observatories/")
def get_observatories() -> Dict:
return {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"id": o.id,
"properties": {
"name": o.name,
"agency": o.agency,
"agency_name": o.agency_name,
"sensor_orientation": o.sensor_orientation,
"sensor_sampling_rate": 0.01,
"declination_base": o.declination_base,
},
"geometry": {
"type": "Point",
"coordinates": [o.longitude, o.latitude, o.elevation],
},
}
for o in OBSERVATORIES
],
"features": [o.to_json() for o in OBSERVATORIES],
}
@router.get("/observatories/{id}")
async def get_observatory_by_id(id: str) -> Dict:
for o in OBSERVATORIES:
if o.id == id:
return {
"id": o.id,
"properties": {
"name": o.name,
"agency": o.agency,
"agency_name": o.agency_name,
"sensor_orientation": o.sensor_orientation,
"sensor_sampling_rate": 0.01,
"declination_base": o.declination_base,
},
"geometry": {
"type": "Point",
"coordinates": [o.longitude, o.latitude, o.elevation],
},
}
return OBSERVATORY_INDEX[id].to_json()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment