Skip to content

Commit 8afe7e0

Browse files
committed
Rename models to schemas, dm_models to models to reflect latest fastAPI docs.
See fastapi/full-stack-fastapi-template#23
1 parent f85a6dc commit 8afe7e0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+217
-217
lines changed

backend/app/app/api/api_v1/endpoints/farms/areas.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
from app.api.utils.db import get_db
99
from app.api.utils.farms import get_active_farms_url_or_list, get_farm_client, ClientError
10-
from app.models.farm import Farm
10+
from app.schemas.farm import Farm
1111

1212
router = APIRouter()
1313

backend/app/app/api/api_v1/endpoints/farms/assets.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
from app.api.utils.db import get_db
99
from app.api.utils.farms import get_active_farms_url_or_list, get_farm_client, ClientError
10-
from app.models.farm import Farm
10+
from app.schemas.farm import Farm
1111

1212
router = APIRouter()
1313

backend/app/app/api/api_v1/endpoints/farms/farms.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from app.api.utils.db import get_db
99
from app.api.utils.farms import get_farm_client, ClientError, get_farms_url_or_list, get_farm_by_id
1010
from app.api.utils.security import get_farm_access
11-
from app.models.farm import Farm, FarmCreate, FarmUpdate
11+
from app.schemas.farm import Farm, FarmCreate, FarmUpdate
1212
from app.core.celery_app import celery_app
1313

1414
router = APIRouter()

backend/app/app/api/api_v1/endpoints/farms/farms_public.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
from app import crud
1515
from app.api.utils.db import get_db
1616
from app.api.utils.farms import get_oauth_token
17-
from app.models.farm import Farm, FarmCreate
18-
from app.models.farm_token import FarmAuthorizationParams
17+
from app.schemas.farm import Farm, FarmCreate
18+
from app.schemas.farm_token import FarmAuthorizationParams
1919

2020
logger = logging.getLogger(__name__)
2121

backend/app/app/api/api_v1/endpoints/farms/info.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
from app.api.utils.db import get_db
99
from app.api.utils.farms import get_farm_client, ClientError, get_farms_url_or_list
1010
from app.api.utils.security import get_farm_access
11-
from app.models.farm import Farm
12-
from app.models.farm_info import FarmInfo
11+
from app.schemas.farm import Farm
12+
from app.schemas.farm_info import FarmInfo
1313

1414
router = APIRouter()
1515

backend/app/app/api/api_v1/endpoints/farms/logs.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
from app.api.utils.db import get_db
99
from app.api.utils.farms import get_active_farms_url_or_list, get_farm_client, ClientError
10-
from app.models.farm import Farm
10+
from app.schemas.farm import Farm
1111

1212
router = APIRouter()
1313

backend/app/app/api/api_v1/endpoints/farms/terms.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
from app.api.utils.db import get_db
99
from app.api.utils.farms import get_active_farms_url_or_list, get_farm_client, ClientError
10-
from app.models.farm import Farm
10+
from app.schemas.farm import Farm
1111

1212
router = APIRouter()
1313

backend/app/app/api/api_v1/endpoints/login.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@
1111
from app.core import config
1212
from app.core.jwt import create_access_token
1313
from app.core.security import get_password_hash
14-
from app.db_models.user import User as DBUser
15-
from app.models.msg import Msg
16-
from app.models.token import Token
17-
from app.models.user import User
14+
from app.models.user import User as DBUser
15+
from app.schemas.msg import Msg
16+
from app.schemas.token import Token
17+
from app.schemas.user import User
1818
from app.utils import (
1919
generate_password_reset_token,
2020
send_reset_password_email,

backend/app/app/api/api_v1/endpoints/users.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
from app.api.utils.db import get_db
1010
from app.api.utils.security import get_current_active_superuser, get_current_active_user
1111
from app.core import config
12-
from app.db_models.user import User as DBUser
13-
from app.models.user import User, UserCreate, UserInDB, UserUpdate
12+
from app.models.user import User as DBUser
13+
from app.schemas.user import User, UserCreate, UserInDB, UserUpdate
1414
from app.utils import send_new_account_email
1515

1616
router = APIRouter()

backend/app/app/api/api_v1/endpoints/utils.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
from app.api.utils.db import get_db
77
from app.api.utils.security import get_current_active_superuser
88
from app.core.celery_app import celery_app
9-
from app.models.msg import Msg
10-
from app.models.user import UserInDB
11-
from app.models.farm import Farm
12-
from app.models.farm_token import FarmTokenCreate, FarmAuthorizationParams
9+
from app.schemas.msg import Msg
10+
from app.schemas.user import UserInDB
11+
from app.schemas.farm import Farm
12+
from app.schemas.farm_token import FarmTokenCreate, FarmAuthorizationParams
1313
from app.api.utils.farms import get_farm_by_id, get_oauth_token
1414
from app.api.utils.security import get_farm_access
1515
from app.utils import send_test_email, generate_farm_authorization_link, generate_farm_registration_link

backend/app/app/api/utils/farms.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@
1212

1313
from app import crud
1414
from app.api.utils.db import get_db
15-
from app.models.farm_token import FarmTokenBase, FarmTokenCreate
15+
from app.schemas.farm_token import FarmTokenBase, FarmTokenCreate
1616
from app.crud.farm_token import create_farm_token, update_farm_token
17-
from app.models.farm import Farm, FarmUpdate
18-
from app.models.token import FarmAccess
17+
from app.schemas.farm import Farm, FarmUpdate
18+
from app.schemas.token import FarmAccess
1919
from app.api.utils.security import get_farm_access
2020

2121

backend/app/app/api/utils/security.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
from app.api.utils.db import get_db
1212
from app.core import config
1313
from app.core.jwt import ALGORITHM
14-
from app.db_models.user import User
15-
from app.models.token import TokenData, FarmAccess
14+
from app.models.user import User
15+
from app.schemas.token import TokenData, FarmAccess
1616

1717

1818
logger = logging.getLogger(__name__)

backend/app/app/crud/farm.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
from sqlalchemy.orm import Session
77

88
from app.core import config
9-
from app.db_models.farm import Farm
10-
from app.models.farm import FarmCreate, FarmUpdate
11-
from app.db_models.farm_token import FarmToken
12-
from app.models.farm_info import FarmInfo
9+
from app.models.farm import Farm
10+
from app.schemas.farm import FarmCreate, FarmUpdate
11+
from app.models.farm_token import FarmToken
12+
from app.schemas.farm_info import FarmInfo
1313

1414

1515
logger = logging.getLogger(__name__)

backend/app/app/crud/farm_token.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
from fastapi.encoders import jsonable_encoder
44
from sqlalchemy.orm import Session
55

6-
from app.db_models.farm_token import FarmToken
7-
from app.models.farm_token import FarmTokenCreate, FarmTokenUpdate
6+
from app.models.farm_token import FarmToken
7+
from app.schemas.farm_token import FarmTokenCreate, FarmTokenUpdate
88

99
def get_farm_token(db: Session, farm_id: int):
1010
return db.query(FarmToken).filter(FarmToken.farm_id == farm_id).first()

backend/app/app/crud/user.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
from sqlalchemy.orm import Session
55

66
from app.core.security import get_password_hash, verify_password
7-
from app.db_models.user import User
8-
from app.models.user import UserCreate, UserUpdate
7+
from app.models.user import User
8+
from app.schemas.user import UserCreate, UserUpdate
99

1010

1111
def get(db_session: Session, *, user_id: int) -> Optional[User]:

backend/app/app/db/base.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# Import all the models, so that Base has them before being
1+
# Import all the schemas, so that Base has them before being
22
# imported by Alembic
33
from app.db.base_class import Base # noqa
4-
from app.db_models.user import User # noqa
5-
from app.db_models.farm import Farm
6-
from app.db_models.farm_token import FarmToken
4+
from app.models.user import User # noqa
5+
from app.models.farm import Farm
6+
from app.models.farm_token import FarmToken

backend/app/app/db/init_db.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
from app import crud
22
from app.core import config
3-
from app.models.user import UserCreate
3+
from app.schemas.user import UserCreate
44

5-
# make sure all SQL Alchemy models are imported before initializing DB
5+
# make sure all SQL Alchemy schemas are imported before initializing DB
66
# otherwise, SQL Alchemy might fail to initialize properly relationships
77
# for more details: https://github.com/tiangolo/full-stack-fastapi-postgresql/issues/28
88
from app.db import base

backend/app/app/db_models/farm.py

-33
This file was deleted.

backend/app/app/db_models/farm_token.py

-17
This file was deleted.

backend/app/app/db_models/user.py

-13
This file was deleted.

backend/app/app/models/__init__.py

100644100755
File mode changed.

backend/app/app/models/farm.py

+33-44
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,33 @@
1-
from typing import Optional
2-
from datetime import datetime
3-
4-
from app.models.api_model import APIModel
5-
from app.models.farm_token import FarmTokenBase, FarmToken
6-
from app.models.farm_info import FarmInfo
7-
8-
# Shared properties
9-
class FarmBase(APIModel):
10-
farm_name: Optional[str] = None
11-
url: Optional[str] = None
12-
username: Optional[str] = None
13-
notes: Optional[str] = None
14-
tags: Optional[str] = None
15-
info: Optional[FarmInfo] = None
16-
active: Optional[bool] = None
17-
18-
class FarmBaseInDB(FarmBase):
19-
id: int = None
20-
21-
# Properties to receive via API on creation
22-
class FarmCreate(FarmBase):
23-
farm_name: str
24-
url: str
25-
username: Optional[str]
26-
password: Optional[str]
27-
token: Optional[FarmTokenBase]
28-
29-
# Properties to receive via API on update
30-
class FarmUpdate(FarmBase):
31-
password: Optional[str] = None
32-
33-
# Additional properties to return via API
34-
class Farm(FarmBaseInDB):
35-
time_created: Optional[datetime] = None
36-
time_updated: Optional[datetime] = None
37-
last_accessed: Optional[datetime] = None
38-
token: Optional[FarmToken] = None
39-
is_authorized: Optional[bool] = None
40-
auth_error: Optional[str] = None
41-
42-
# Additional properites stored in DB
43-
class FarmInDB(FarmBaseInDB):
44-
pass
1+
from sqlalchemy import Boolean, Column, Integer, String, DateTime
2+
from sqlalchemy.sql import func
3+
from sqlalchemy.orm import relationship
4+
from sqlalchemy.dialects.postgresql import JSONB
5+
6+
from app.db.base_class import Base
7+
from app.models.farm_token import FarmToken
8+
9+
10+
class Farm(Base):
11+
__tablename__ = 'farm'
12+
13+
id = Column(Integer, primary_key=True, index=True)
14+
time_created = Column(DateTime(timezone=True), server_default=func.now())
15+
time_updated = Column(DateTime(timezone=True), onupdate=func.now())
16+
last_accessed = Column(DateTime(timezone=True))
17+
farm_name = Column(String, index=True)
18+
url = Column(String, index=True, unique=True)
19+
username = Column(String, index=True)
20+
password = Column(String, index=True)
21+
notes = Column(String, nullable=True)
22+
tags = Column(String, nullable=True)
23+
24+
# active attribute allows admins to disable farmOS profiles
25+
active = Column(Boolean, default=False)
26+
27+
# Store farm info in a JSONB column
28+
info = Column(JSONB, nullable=True)
29+
30+
is_authorized = Column(Boolean, default=False)
31+
token = relationship("FarmToken", uselist=False, back_populates="farm")
32+
auth_error = Column(String, nullable=True)
33+

backend/app/app/models/farm_token.py

+12-26
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,17 @@
1-
from typing import Optional
1+
from sqlalchemy import Boolean, Column, ForeignKey, Integer, String
2+
from sqlalchemy.orm import relationship
23

3-
from app.models.api_model import APIModel
4+
from app.db.base_class import Base
45

5-
# Farm Token Models
6-
class FarmTokenBase(APIModel):
7-
access_token: Optional[str] = None
8-
expires_in: Optional[str] = None
9-
refresh_token: Optional[str] = None
10-
expires_at: Optional[str] = None
116

7+
class FarmToken(Base):
8+
__tablename__ = 'farmtoken'
129

13-
class FarmTokenCreate(FarmTokenBase):
14-
farm_id: int
15-
pass
10+
id = Column(Integer, primary_key=True)
11+
access_token = Column(String)
12+
expires_in = Column(String)
13+
refresh_token = Column(String)
14+
expires_at = Column(String)
1615

17-
18-
class FarmToken(FarmTokenBase):
19-
id: int
20-
21-
22-
class FarmTokenUpdate(FarmToken):
23-
pass
24-
25-
class FarmAuthorizationParams(APIModel):
26-
grant_type: str
27-
code: str
28-
state: str
29-
client_id: str
30-
client_secret: Optional[str]
31-
redirect_uri: Optional[str]
16+
farm_id = Column(Integer, ForeignKey("farm.id"), unique=True)
17+
farm = relationship("Farm", uselist=False, back_populates="token")

backend/app/app/models/msg.py

-5
This file was deleted.

0 commit comments

Comments
 (0)