From aeea3ef5c5502d3527fe75a10acb4b4233763466 Mon Sep 17 00:00:00 2001 From: Travis Rivers <trivers@contractor.usgs.gov> Date: Fri, 18 Sep 2020 12:07:26 -0600 Subject: [PATCH] add observatories endpoint --- Pipfile.lock | 99 ++++++++++++++++++++++++++++++++ geomagio/api/secure/login.py | 1 + geomagio/api/ws/observatories.py | 23 +++++++- 3 files changed, 122 insertions(+), 1 deletion(-) diff --git a/Pipfile.lock b/Pipfile.lock index ba0dd2e72..2a26ade89 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,11 @@ { "_meta": { "hash": { +<<<<<<< HEAD "sha256": "d66957b30cff9d753efb31ff03f3e6cacc900f7702dfc0d113c6b2e64a0a3739" +======= + "sha256": "43d433eeabd702a645eb41c4c59069ff003a7a364504d6374f596fcba83cfa9e" +>>>>>>> add observatories endpoint }, "pipfile-spec": 6, "requires": {}, @@ -223,7 +227,10 @@ "sha256:61bcfe25cd4c97f014292576863fe142e962fbff6157ea567188a10341b134ef", "sha256:dcaa0cdc68e3cc581817c72adb5e9dacc992574397e01c9bab66759d41af72f5" ], +<<<<<<< HEAD "markers": "python_version >= '3.6'", +======= +>>>>>>> add observatories endpoint "version": "==2020.9.9" }, "httptools": { @@ -333,7 +340,10 @@ "sha256:ecc930ae559ea8a43377e8b60ca6f8d61ac532fc57efb915d899de4a67928efd", "sha256:f161af26f596131b63b236372e4ce40f3167c1b5b5d459b29d2514bd8c9dc9ee" ], +<<<<<<< HEAD "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", +======= +>>>>>>> add observatories endpoint "version": "==4.5.2" }, "matplotlib": { @@ -366,11 +376,15 @@ "sha256:fab11637734eb14affb9c5e20d44d69429c18b49595d6e67c69295de24827fc4", "sha256:ffbae66e2db70dc330cb3299525f97e1c0efdfc763e04e1a4e08f968c7ad21f0" ], +<<<<<<< HEAD "markers": "python_version >= '3.6'", +======= +>>>>>>> add observatories endpoint "version": "==3.3.1" }, "numpy": { "hashes": [ +<<<<<<< HEAD "sha256:04c7d4ebc5ff93d9822075ddb1751ff392a4375e5885299445fcebf877f179d5", "sha256:0bfd85053d1e9f60234f28f63d4a5147ada7f432943c113a11afcf3e65d9d4c8", "sha256:0c66da1d202c52051625e55a249da35b31f65a81cb56e4c69af0dfb8fb0125bf", @@ -400,6 +414,37 @@ ], "index": "pypi", "version": "==1.19.2" +======= + "sha256:082f8d4dd69b6b688f64f509b91d482362124986d98dc7dc5f5e9f9b9c3bb983", + "sha256:1bc0145999e8cb8aed9d4e65dd8b139adf1919e521177f198529687dbf613065", + "sha256:309cbcfaa103fc9a33ec16d2d62569d541b79f828c382556ff072442226d1968", + "sha256:3673c8b2b29077f1b7b3a848794f8e11f401ba0b71c49fbd26fb40b71788b132", + "sha256:480fdd4dbda4dd6b638d3863da3be82873bba6d32d1fc12ea1b8486ac7b8d129", + "sha256:56ef7f56470c24bb67fb43dae442e946a6ce172f97c69f8d067ff8550cf782ff", + "sha256:5a936fd51049541d86ccdeef2833cc89a18e4d3808fe58a8abeb802665c5af93", + "sha256:5b6885c12784a27e957294b60f97e8b5b4174c7504665333c5e94fbf41ae5d6a", + "sha256:667c07063940e934287993366ad5f56766bc009017b4a0fe91dbd07960d0aba7", + "sha256:7ed448ff4eaffeb01094959b19cbaf998ecdee9ef9932381420d514e446601cd", + "sha256:8343bf67c72e09cfabfab55ad4a43ce3f6bf6e6ced7acf70f45ded9ebb425055", + "sha256:92feb989b47f83ebef246adabc7ff3b9a59ac30601c3f6819f8913458610bdcc", + "sha256:935c27ae2760c21cd7354402546f6be21d3d0c806fffe967f745d5f2de5005a7", + "sha256:aaf42a04b472d12515debc621c31cf16c215e332242e7a9f56403d814c744624", + "sha256:b12e639378c741add21fbffd16ba5ad25c0a1a17cf2b6fe4288feeb65144f35b", + "sha256:b1cca51512299841bf69add3b75361779962f9cee7d9ee3bb446d5982e925b69", + "sha256:b8456987b637232602ceb4d663cb34106f7eb780e247d51a260b84760fd8f491", + "sha256:b9792b0ac0130b277536ab8944e7b754c69560dac0415dd4b2dbd16b902c8954", + "sha256:c9591886fc9cbe5532d5df85cb8e0cc3b44ba8ce4367bd4cf1b93dc19713da72", + "sha256:cf1347450c0b7644ea142712619533553f02ef23f92f781312f6a3553d031fc7", + "sha256:de8b4a9b56255797cbddb93281ed92acbc510fb7b15df3f01bd28f46ebc4edae", + "sha256:e1b1dc0372f530f26a03578ac75d5e51b3868b9b76cd2facba4c9ee0eb252ab1", + "sha256:e45f8e981a0ab47103181773cc0a54e650b2aef8c7b6cd07405d0fa8d869444a", + "sha256:e4f6d3c53911a9d103d8ec9518190e52a8b945bab021745af4939cfc7c0d4a9e", + "sha256:ed8a311493cf5480a2ebc597d1e177231984c818a86875126cfd004241a73c3e", + "sha256:ef71a1d4fd4858596ae80ad1ec76404ad29701f8ca7cdcebc50300178db14dfc" + ], + "index": "pypi", + "version": "==1.19.1" +>>>>>>> add observatories endpoint }, "obspy": { "hashes": [ @@ -671,7 +716,10 @@ "sha256:bd2ffe5e37fb75d014728511f8e68ebf2c80b0fa3d04ca1479f4dc752ae31ac9", "sha256:ebe8ee08d9be96a3c9f31b2cb2a24dbdf845247b745664bd8a3f9bd0c977fdbc" ], +<<<<<<< HEAD "markers": "python_version >= '3.6'", +======= +>>>>>>> add observatories endpoint "version": "==0.13.6" }, "typing": { @@ -696,7 +744,10 @@ "sha256:91056c15fa70756691db97756772bb1eb9678fa585d9184f24534b100dc60f4a", "sha256:e7983572181f5e1522d9c98453462384ee92a0be7fac5f1413a1e35c56cc0461" ], +<<<<<<< HEAD "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'", +======= +>>>>>>> add observatories endpoint "version": "==1.25.10" }, "uvicorn": { @@ -763,6 +814,7 @@ "hashes": [ "sha256:26b54ddbbb9ee1d34d5d3668dd37d6cf74990ab23c828c2888dccdceee395594", "sha256:fce7fc47dfc976152e82d53ff92fa0407700c21acd20886a13777a0d20e655dc" +<<<<<<< HEAD ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==20.2.0" @@ -774,6 +826,10 @@ ], "index": "pypi", "version": "==1.6.2" +======= + ], + "version": "==20.2.0" +>>>>>>> add observatories endpoint }, "beautifulsoup4": { "hashes": [ @@ -790,6 +846,7 @@ ], "index": "pypi", "version": "==20.8b1" +<<<<<<< HEAD }, "certifi": { "hashes": [ @@ -797,11 +854,14 @@ "sha256:8fc0819f1f30ba15bdb34cceffb9ef04d99f420f68eb75d901e9560b8749fc41" ], "version": "==2020.6.20" +======= +>>>>>>> add observatories endpoint }, "cfgv": { "hashes": [ "sha256:32e43d604bbe7896fe7c248a9c2276447dbef840feb28fe20494f62af110211d", "sha256:cf22deb93d4bcf92f345a5c3cd39d3d41d6340adc60c78bbbd6588c384fda6a1" +<<<<<<< HEAD ], "markers": "python_full_version >= '3.6.1'", "version": "==3.2.0" @@ -812,6 +872,10 @@ "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691" ], "version": "==3.0.4" +======= + ], + "version": "==3.2.0" +>>>>>>> add observatories endpoint }, "click": { "hashes": [ @@ -858,7 +922,10 @@ "sha256:ce7866f29d3025b5b34c2e944e66ebef0d92e4a4f2463f7266daa03a1332a651", "sha256:e26c993bd4b220429d4ec8c1468eca445a4064a61c74ca08da7429af9bc53bb0" ], +<<<<<<< HEAD "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'", +======= +>>>>>>> add observatories endpoint "version": "==5.2.1" }, "distlib": { @@ -903,6 +970,7 @@ "hashes": [ "sha256:009f92ba753c467a99f6fd3eb395412cbc34077dd5a64313b62ba04297f2ab8e", "sha256:0868312cb7402b48cf44fe3f568259f804ef4e983c143d11bf7a51ca311ebc34" +<<<<<<< HEAD ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==1.5.0" @@ -914,6 +982,17 @@ ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==2.10" +======= + ], + "version": "==1.5.0" +>>>>>>> add observatories endpoint + }, + "iniconfig": { + "hashes": [ + "sha256:80cf40c597eb564e86346103f609d74efce0f6b4d4f30ec8ce9e2c26411ba437", + "sha256:e5f92f89355a67de0595932a6c6c02ab4afddc6fcdc0bfc5becd0d60884d3f69" + ], + "version": "==1.0.1" }, "iniconfig": { "hashes": [ @@ -926,6 +1005,7 @@ "hashes": [ "sha256:6f83822ae94818eae2612063a5101a7311e68ae8002005b5e05f03fd74a86a20", "sha256:9b30f12df9393f0d28af9210ff8efe48d10c94f73e5daf886f10c4b0b0b4f03c" +<<<<<<< HEAD ], "markers": "python_version >= '3.5'", "version": "==8.5.0" @@ -935,6 +1015,16 @@ "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d", "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8" ], +======= + ], + "version": "==8.5.0" + }, + "mypy-extensions": { + "hashes": [ + "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d", + "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8" + ], +>>>>>>> add observatories endpoint "version": "==0.4.3" }, "nodeenv": { @@ -1056,6 +1146,7 @@ "sha256:e46d13f38cfcbb79bfdb2964b0fe12561fe633caf964a77a5f8d4e45fe5d2ef7" ], "version": "==2020.7.14" +<<<<<<< HEAD }, "requests": { "hashes": [ @@ -1072,6 +1163,8 @@ ], "index": "pypi", "version": "==1.9.0" +======= +>>>>>>> add observatories endpoint }, "six": { "hashes": [ @@ -1147,6 +1240,7 @@ "index": "pypi", "version": "==3.7.4.3" }, +<<<<<<< HEAD "urllib3": { "hashes": [ "sha256:91056c15fa70756691db97756772bb1eb9678fa585d9184f24534b100dc60f4a", @@ -1155,12 +1249,17 @@ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'", "version": "==1.25.10" }, +======= +>>>>>>> add observatories endpoint "virtualenv": { "hashes": [ "sha256:43add625c53c596d38f971a465553f6318decc39d98512bc100fa1b1e839c8dc", "sha256:e0305af10299a7fb0d69393d8f04cb2965dda9351140d11ac8db4e5e3970451b" ], +<<<<<<< HEAD "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", +======= +>>>>>>> add observatories endpoint "version": "==20.0.31" }, "waitress": { diff --git a/geomagio/api/secure/login.py b/geomagio/api/secure/login.py index c3407d931..e9bd6e1dc 100644 --- a/geomagio/api/secure/login.py +++ b/geomagio/api/secure/login.py @@ -141,6 +141,7 @@ async def login(request: Request): if "Referer" in request.headers: request.session["after_authorize_redirect"] = request.headers["Referer"] # redirect to openid login + return await oauth.openid.authorize_redirect(request, redirect_uri) diff --git a/geomagio/api/ws/observatories.py b/geomagio/api/ws/observatories.py index 9e9d19416..4e433dae2 100644 --- a/geomagio/api/ws/observatories.py +++ b/geomagio/api/ws/observatories.py @@ -8,7 +8,7 @@ from .Observatory import OBSERVATORIES router = APIRouter() -@router.get("/observatories/") +@router.get("/observatories") def get_observatories() -> Dict: return { "type": "FeatureCollection", @@ -32,3 +32,24 @@ def get_observatories() -> Dict: for o in OBSERVATORIES ], } + + +@router.get("/observatories/{id}") +async def get_observatory_by_id(id: str): + 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], + }, + } -- GitLab