Skip to content

Commit 8383162

Browse files
Deployed!
2 parents 681f25c + 83f9efb commit 8383162

9 files changed

Lines changed: 61 additions & 33 deletions

File tree

config_lambdas.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import json
2+
import subprocess
3+
4+
5+
def get_lambdas():
6+
functions = {}
7+
res = subprocess.Popen(
8+
["aws", "lambda", "list-functions"],
9+
stdout=subprocess.PIPE,
10+
)
11+
output = res.communicate()[0]
12+
functions.update(json.loads(output))
13+
return functions["Functions"]
14+
15+
16+
# for lambda_function in get_lambdas():
17+
# function_name = lambda_function["FunctionName"]
18+
19+
with open(".env", "r") as f:
20+
env_vars = [
21+
line for line in f.read().splitlines() if line.startswith("SOLESEARCH_")
22+
]
23+
env = ",".join(env_vars)
24+
subprocess.run(
25+
[
26+
"aws",
27+
"lambda",
28+
"update-function-configuration",
29+
"--region",
30+
"us-east-1",
31+
"--function-name",
32+
"solesearch-api",
33+
"--environment",
34+
f"Variables={{{env}}}",
35+
]
36+
)

pyproject.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ dependencies = [
1818
"pydantic",
1919
"mangum",
2020
"Authlib",
21-
"httpx",
21+
"requests",
2222
"Starlette",
2323
"itsdangerous",
2424
"core @ git+ssh://git@github.com/SoleSearch-Demos/core.git@main",
@@ -31,11 +31,11 @@ path = "src/api/__about__.py"
3131
allow-direct-references = true
3232

3333
[tool.hatch.envs.default.scripts]
34-
start = "python -m api.server"
34+
start = "python -m src.api.main"
3535

3636
[tool.hatch.envs.dev]
3737
pre-install-commands = ["pip install -e ../core"]
38-
scripts.start = "uvicorn src.api.main:app --reload"
38+
scripts.start = "python -m src.api.main"
3939

4040
[tool.hatch.build.targets.wheel]
4141
packages = ["src/api"]

src/api/__init__.py

Lines changed: 0 additions & 3 deletions
This file was deleted.

src/api/data/instance.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
import motor.motor_asyncio
2-
from dotenv import dotenv_values
1+
import os
32

4-
config = dotenv_values(dotenv_path=".env")
3+
import motor.motor_asyncio
54

65
client = motor.motor_asyncio.AsyncIOMotorClient(
7-
config["SOLESEARCH_DB_CONNECTION_STRING"]
6+
os.environ.get("SOLESEARCH_DB_CONNECTION_STRING")
87
)
9-
db = client[config["SOLESEARCH_DB_NAME"]]
10-
sneakers = db[config["SOLESEARCH_DB_PRIMARY_COLLECTION"]]
11-
DEFAULT_LIMIT = int(config["SOLESEARCH_DEFAULT_LIMIT"])
12-
DEFAULT_OFFSET = int(config["SOLESEARCH_DEFAULT_OFFSET"])
8+
db = client[os.environ.get("SOLESEARCH_DB_NAME")]
9+
sneakers = db[os.environ.get("SOLESEARCH_DB_PRIMARY_COLLECTION")]
10+
DEFAULT_LIMIT = int(os.environ.get("SOLESEARCH_DEFAULT_LIMIT", 10))
11+
DEFAULT_OFFSET = int(os.environ.get("SOLESEARCH_DEFAULT_OFFSET", 0))

src/api/data/models.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,4 @@
11
from enum import Enum
2-
from typing import List
3-
4-
from core.models.details import Audience, Images, Links, Prices
5-
from core.models.shoes import Sneaker
6-
from pydantic import BaseModel, ValidationError
72

83

94
class SortKey(str, Enum):

src/api/data/queries.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
from datetime import UTC, datetime
33

44
from bson import ObjectId
5-
from bson.json_util import dumps
65

76
from api.data.instance import DEFAULT_LIMIT, DEFAULT_OFFSET, db, sneakers
8-
from api.data.models import Audience, SortKey, SortOrder
7+
from api.data.models import SortKey, SortOrder
8+
from core.models.details import Audience
99

1010

1111
def find_sneaker_by_id(id: str = ""):

src/api/main.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
1+
import os
2+
3+
from dotenv import load_dotenv
14
from fastapi import FastAPI
25
from mangum import Mangum
36
from starlette.middleware.sessions import SessionMiddleware
47

8+
if not os.environ.get("AWS_EXECUTION_ENV"):
9+
load_dotenv(os.path.join(os.getcwd(), ".env"))
10+
511
from api.routes import auth, sneakers
612

713
app = FastAPI(
@@ -14,3 +20,8 @@
1420
app.include_router(sneakers.router)
1521
app.include_router(auth.router)
1622
handler = Mangum(app)
23+
24+
if __name__ == "__main__":
25+
import uvicorn
26+
27+
uvicorn.run(app, host="localhost", port=8000)

src/api/routes/sneakers.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33
from fastapi import APIRouter, Query
44

55
from api.data.instance import DEFAULT_LIMIT, DEFAULT_OFFSET
6-
from api.data.models import Audience, SortKey, SortOrder
6+
from api.data.models import SortKey, SortOrder
77
from api.data.queries import find_sneaker_by_id, find_sneaker_by_sku, find_sneakers
8+
from core.models.details import Audience
89

910
router = APIRouter(
1011
prefix="/sneakers",

src/api/server.py

Lines changed: 0 additions & 11 deletions
This file was deleted.

0 commit comments

Comments
 (0)