Skip to content

Commit

Permalink
dependency injection for sftp client)
Browse files Browse the repository at this point in the history
  • Loading branch information
GondekNP committed Jan 4, 2024
1 parent f4aca8e commit 3ceda30
Showing 1 changed file with 18 additions and 15 deletions.
33 changes: 18 additions & 15 deletions app.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,31 +20,34 @@
app.include_router(cog.router, prefix='/cog', tags=["Cloud Optimized GeoTIFF"])
add_exception_handlers(app, DEFAULT_STATUS_CODES)

# # create an SFTP client instance
SFTP_HOSTNAME = "s-1f683c6ff06147a3b.server.transfer.us-east-2.amazonaws.com"
SFTP_USERNAME = "admin"
S3_BUCKET_NAME = "burn-severity-backend"
# sftp_client = SFTPClient(SFTP_HOSTNAME, SFTP_USERNAME, get_ssh_secret())
SSH_SECRET = get_ssh_secret()
sftp_client = SFTPClient(SFTP_HOSTNAME, SFTP_USERNAME, SSH_SECRET)

@app.get("/")
def index():
response = f"""
{len(sftp_client.available_cogs)} available burn events:
{sftp_client.available_cogs}
"""
return response, 200
return "Alive", 200

def get_sftp_client():
SFTP_HOSTNAME = "s-1f683c6ff06147a3b.server.transfer.us-east-2.amazonaws.com"
SFTP_USERNAME = "admin"
SSH_SECRET = get_ssh_secret()
return SFTPClient(SFTP_HOSTNAME, SFTP_USERNAME, SSH_SECRET)

@app.get("/update-available-cogs")
def update_available_cogs(sftp_client: SFTPClient = Depends(get_sftp_client)):
# # create an SFTP client instance
sftp_client.update_available_cogs()

# Use the keys of the available_cogs dict to create a list of available cogs
available_cogs_fmt = [name for name, __path in sftp_client.available_cogs.items()]
html_content = "<br>".join(available_cogs_fmt)
return html_content, 200

# # create a POST endpoint for running a burn query with an input geojson, with its associated POST body class
class AnaylzeBurnPOSTBody(BaseModel):
geojson: dict
date_ranges: dict
fire_event_name: str


@app.post("/analyze-burn")
def analyze_burn(body: AnaylzeBurnPOSTBody):
def analyze_burn(body: AnaylzeBurnPOSTBody, sftp_client: SFTPClient = Depends(get_sftp_client)):
geojson = body.geojson
date_ranges = body.date_ranges
fire_event_name = body.fire_event_name
Expand Down

0 comments on commit 3ceda30

Please sign in to comment.