From 704ba79d96212e1cbdbbf1c1a3ecdc044822c275 Mon Sep 17 00:00:00 2001 From: pcain-usgs <pcain@usgs.gov> Date: Wed, 10 Mar 2021 11:48:00 -0700 Subject: [PATCH] Change hostname, request.get with params, null metadata, typer option --- geomagio/apiclient/MetadataFactory.py | 15 +++++++-------- geomagio/apiclient/metadata.py | 4 +++- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/geomagio/apiclient/MetadataFactory.py b/geomagio/apiclient/MetadataFactory.py index 64c43faa..adfedcfe 100644 --- a/geomagio/apiclient/MetadataFactory.py +++ b/geomagio/apiclient/MetadataFactory.py @@ -14,7 +14,7 @@ class MetadataFactory(object): def __init__( self, url: str = "http://{}/ws/secure/metadata".format( - os.getenv("EDGE_HOST", "127.0.0.1:8000") + os.getenv("GEOMAG_API_HOST", "127.0.0.1:8000") ), token: str = os.getenv("GITLAB_API_TOKEN"), ): @@ -28,7 +28,10 @@ class MetadataFactory(object): def get_metadata(self, query: MetadataQuery) -> Union[List[Metadata], Metadata]: args = parse_params(query=query) - responses = requests.get(url=f"{self.url}{args}", headers=self.header) + if "id" in args: + self.url = f"{self.url}/{args['id']}" + args = {} + responses = requests.get(url=self.url, params=args, headers=self.header) try: metadata = parse_obj_as(Union[List[Metadata], Metadata], responses.json()) except: @@ -42,10 +45,6 @@ class MetadataFactory(object): return response def update_metadata(self, metadata: Metadata) -> requests.Response: - if metadata.metadata is None: - metadata.metadata = self.get_metadata( - query=MetadataQuery(**metadata.dict()) - ).metadata response = requests.put( url=f"{self.url}/{metadata.id}", data=metadata.json(), headers=self.header ) @@ -65,7 +64,7 @@ def parse_params(query: MetadataQuery) -> str: if key == "category": element = element.value elif key == "id": - return f"/{element}" + return {"id": element} args[key] = element - return f"?{urllib.parse.urlencode(args)}" + return args diff --git a/geomagio/apiclient/metadata.py b/geomagio/apiclient/metadata.py index 65ea91ee..535c881c 100644 --- a/geomagio/apiclient/metadata.py +++ b/geomagio/apiclient/metadata.py @@ -15,7 +15,9 @@ def main(): def client( - action: str, + action: str = typer.Option( + default="get", help="get(default), delete, create, or update" + ), url: str = "http://{}/ws/secure/metadata".format( os.getenv("GEOMAG_API_HOST", "127.0.0.1:8000") ), -- GitLab