Skip to content

Commit af9e4ad

Browse files
Merge pull request #7 from CarterPerez-dev/refactor/ddd-di-and-miniaml-folder-addition
Refactor/ddd di and minimal folder addition
2 parents 00fc436 + 20a2755 commit af9e4ad

Some content is hidden

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

60 files changed

+2066
-340
lines changed

.github/workflows/lint.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ jobs:
4747
id: pylint
4848
run: |
4949
echo "Running pylint..."
50-
if pylint src > pylint-output.txt 2>&1; then
50+
if pylint app > pylint-output.txt 2>&1; then
5151
echo "PYLINT_PASSED=true" >> $GITHUB_ENV
5252
echo "No pylint errors found!"
5353
else
@@ -61,7 +61,7 @@ jobs:
6161
id: ruff
6262
run: |
6363
echo "Running ruff check..."
64-
if ruff check . > ruff-output.txt 2>&1; then
64+
if ruff check app > ruff-output.txt 2>&1; then
6565
echo "RUFF_PASSED=true" >> $GITHUB_ENV
6666
echo "No ruff errors found!"
6767
else
@@ -75,14 +75,15 @@ jobs:
7575
id: mypy
7676
run: |
7777
echo "Running mypy..."
78-
if mypy . > mypy-output.txt 2>&1; then
78+
cd app
79+
if mypy . > ../mypy-output.txt 2>&1; then
7980
echo "MYPY_PASSED=true" >> $GITHUB_ENV
8081
echo "No mypy errors found"
8182
else
8283
echo "MYPY_PASSED=false" >> $GITHUB_ENV
8384
echo "Mypy found issues"
8485
fi
85-
cat mypy-output.txt
86+
cat ../mypy-output.txt
8687
continue-on-error: true
8788

8889
- name: Create Lint Summary

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ venv
66
*.env
77
*.cache
88
*.egg
9-
.angela
109

1110
__pycache__/
1211
*.py[cod]

backend/alembic/env.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,11 @@
1010
from sqlalchemy.engine import Connection
1111
from sqlalchemy.ext.asyncio import async_engine_from_config
1212

13-
from src.config import settings
14-
from src.models import Base
15-
from src.core.enums import SafeEnum
13+
from config import settings
14+
from core.Base import Base
15+
from core.enums import SafeEnum
16+
from user.User import User
17+
from auth.RefreshToken import RefreshToken
1618

1719

1820
config = context.config
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@
44
"""
55
import uvicorn
66

7-
from src.config import settings
8-
from src.factory import create_app
7+
from config import settings
8+
from factory import create_app
99

1010

1111
app = create_app()
1212

1313
if __name__ == "__main__":
1414
uvicorn.run(
15-
"src.__main__:app",
15+
"__main__:app",
1616
host = settings.HOST,
1717
port = settings.PORT,
1818
reload = settings.RELOAD,

backend/app/admin/__init__.py

Whitespace-only changes.

backend/app/admin/py.typed

Whitespace-only changes.
Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"""
22
ⒸAngelaMos | 2025
3-
admin.py
3+
routes.py
44
"""
55

66
from uuid import UUID
@@ -13,28 +13,25 @@
1313
status,
1414
)
1515

16-
from src.config import (
16+
from config import (
1717
settings,
1818
UserRole,
1919
)
20-
from src.core.dependencies import (
21-
DBSession,
22-
RequireRole,
23-
)
24-
from src.core.responses import (
20+
from core.dependencies import RequireRole
21+
from core.responses import (
2522
AUTH_401,
2623
CONFLICT_409,
2724
FORBIDDEN_403,
2825
NOT_FOUND_404,
2926
)
30-
from src.schemas.user import (
27+
from user.schemas import (
3128
AdminUserCreate,
3229
UserListResponse,
3330
UserResponse,
3431
UserUpdateAdmin,
3532
)
36-
from src.models.User import User
37-
from src.services.user import UserService
33+
from user.User import User
34+
from user.dependencies import UserServiceDep
3835

3936

4037
router = APIRouter(prefix = "/admin", tags = ["admin"])
@@ -51,7 +48,7 @@
5148
},
5249
)
5350
async def list_users(
54-
db: DBSession,
51+
user_service: UserServiceDep,
5552
_: AdminOnly,
5653
page: int = Query(default = 1,
5754
ge = 1),
@@ -64,7 +61,7 @@ async def list_users(
6461
"""
6562
List all users (admin only)
6663
"""
67-
return await UserService.list_users(db, page, size)
64+
return await user_service.list_users(page, size)
6865

6966

7067
@router.post(
@@ -78,14 +75,14 @@ async def list_users(
7875
},
7976
)
8077
async def create_user(
81-
db: DBSession,
78+
user_service: UserServiceDep,
8279
_: AdminOnly,
8380
user_data: AdminUserCreate,
8481
) -> UserResponse:
8582
"""
8683
Create a new user (admin only, bypasses registration)
8784
"""
88-
return await UserService.admin_create_user(db, user_data)
85+
return await user_service.admin_create_user(user_data)
8986

9087

9188
@router.get(
@@ -98,14 +95,14 @@ async def create_user(
9895
},
9996
)
10097
async def get_user(
101-
db: DBSession,
98+
user_service: UserServiceDep,
10299
_: AdminOnly,
103100
user_id: UUID,
104101
) -> UserResponse:
105102
"""
106103
Get user by ID (admin only)
107104
"""
108-
return await UserService.get_user_by_id(db, user_id)
105+
return await user_service.get_user_by_id(user_id)
109106

110107

111108
@router.patch(
@@ -119,15 +116,15 @@ async def get_user(
119116
},
120117
)
121118
async def update_user(
122-
db: DBSession,
119+
user_service: UserServiceDep,
123120
_: AdminOnly,
124121
user_id: UUID,
125122
user_data: UserUpdateAdmin,
126123
) -> UserResponse:
127124
"""
128125
Update user (admin only)
129126
"""
130-
return await UserService.admin_update_user(db, user_id, user_data)
127+
return await user_service.admin_update_user(user_id, user_data)
131128

132129

133130
@router.delete(
@@ -140,11 +137,11 @@ async def update_user(
140137
},
141138
)
142139
async def delete_user(
143-
db: DBSession,
140+
user_service: UserServiceDep,
144141
_: AdminOnly,
145142
user_id: UUID,
146143
) -> None:
147144
"""
148145
Delete user (admin only, hard delete)
149146
"""
150-
await UserService.admin_delete_user(db, user_id)
147+
await user_service.admin_delete_user(user_id)
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,20 +21,20 @@
2121
relationship,
2222
)
2323

24-
from src.config import (
24+
from config import (
2525
DEVICE_ID_MAX_LENGTH,
2626
DEVICE_NAME_MAX_LENGTH,
2727
IP_ADDRESS_MAX_LENGTH,
2828
TOKEN_HASH_LENGTH,
2929
)
30-
from src.models.Base import (
30+
from core.Base import (
3131
Base,
3232
TimestampMixin,
3333
UUIDMixin,
3434
)
3535

3636
if TYPE_CHECKING:
37-
from src.models.User import User
37+
from user.User import User
3838

3939

4040
class RefreshToken(Base, UUIDMixin, TimestampMixin):

backend/app/auth/__init__.py

Whitespace-only changes.

0 commit comments

Comments
 (0)