kybernus 2.1.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/node_modules/{@isaacs/balanced-match → balanced-match}/README.md +7 -10
- package/node_modules/{@isaacs/balanced-match → balanced-match}/package.json +5 -16
- package/node_modules/{@isaacs/brace-expansion → brace-expansion}/README.md +2 -5
- package/node_modules/{@isaacs/brace-expansion → brace-expansion}/dist/commonjs/index.js +1 -1
- package/node_modules/{@isaacs/brace-expansion → brace-expansion}/dist/commonjs/index.js.map +1 -1
- package/node_modules/{@isaacs/brace-expansion → brace-expansion}/dist/esm/index.js +1 -1
- package/node_modules/{@isaacs/brace-expansion → brace-expansion}/dist/esm/index.js.map +1 -1
- package/node_modules/{@isaacs/brace-expansion → brace-expansion}/package.json +9 -5
- package/node_modules/glob/dist/commonjs/glob.d.ts +8 -0
- package/node_modules/glob/dist/commonjs/glob.d.ts.map +1 -1
- package/node_modules/glob/dist/commonjs/glob.js +2 -1
- package/node_modules/glob/dist/commonjs/glob.js.map +1 -1
- package/node_modules/glob/dist/commonjs/index.min.js +4 -0
- package/node_modules/glob/dist/commonjs/index.min.js.map +7 -0
- package/node_modules/glob/dist/commonjs/pattern.d.ts +3 -0
- package/node_modules/glob/dist/commonjs/pattern.d.ts.map +1 -1
- package/node_modules/glob/dist/commonjs/pattern.js +4 -0
- package/node_modules/glob/dist/commonjs/pattern.js.map +1 -1
- package/node_modules/glob/dist/esm/glob.d.ts +8 -0
- package/node_modules/glob/dist/esm/glob.d.ts.map +1 -1
- package/node_modules/glob/dist/esm/glob.js +2 -1
- package/node_modules/glob/dist/esm/glob.js.map +1 -1
- package/node_modules/glob/dist/esm/index.min.js +4 -0
- package/node_modules/glob/dist/esm/index.min.js.map +7 -0
- package/node_modules/glob/dist/esm/pattern.d.ts +3 -0
- package/node_modules/glob/dist/esm/pattern.d.ts.map +1 -1
- package/node_modules/glob/dist/esm/pattern.js +4 -0
- package/node_modules/glob/dist/esm/pattern.js.map +1 -1
- package/node_modules/glob/package.json +30 -10
- package/node_modules/lru-cache/package.json +7 -7
- package/node_modules/minimatch/README.md +3 -1
- package/node_modules/minimatch/dist/commonjs/ast.d.ts.map +1 -1
- package/node_modules/minimatch/dist/commonjs/ast.js +37 -27
- package/node_modules/minimatch/dist/commonjs/ast.js.map +1 -1
- package/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts.map +1 -1
- package/node_modules/minimatch/dist/commonjs/brace-expressions.js +2 -4
- package/node_modules/minimatch/dist/commonjs/brace-expressions.js.map +1 -1
- package/node_modules/minimatch/dist/commonjs/escape.js +4 -4
- package/node_modules/minimatch/dist/commonjs/escape.js.map +1 -1
- package/node_modules/minimatch/dist/commonjs/index.d.ts +50 -0
- package/node_modules/minimatch/dist/commonjs/index.d.ts.map +1 -1
- package/node_modules/minimatch/dist/commonjs/index.js +37 -31
- package/node_modules/minimatch/dist/commonjs/index.js.map +1 -1
- package/node_modules/minimatch/dist/commonjs/unescape.js +4 -4
- package/node_modules/minimatch/dist/commonjs/unescape.js.map +1 -1
- package/node_modules/minimatch/dist/esm/ast.d.ts.map +1 -1
- package/node_modules/minimatch/dist/esm/ast.js +37 -27
- package/node_modules/minimatch/dist/esm/ast.js.map +1 -1
- package/node_modules/minimatch/dist/esm/brace-expressions.d.ts.map +1 -1
- package/node_modules/minimatch/dist/esm/brace-expressions.js +2 -4
- package/node_modules/minimatch/dist/esm/brace-expressions.js.map +1 -1
- package/node_modules/minimatch/dist/esm/escape.js +4 -4
- package/node_modules/minimatch/dist/esm/escape.js.map +1 -1
- package/node_modules/minimatch/dist/esm/index.d.ts +50 -0
- package/node_modules/minimatch/dist/esm/index.d.ts.map +1 -1
- package/node_modules/minimatch/dist/esm/index.js +37 -31
- package/node_modules/minimatch/dist/esm/index.js.map +1 -1
- package/node_modules/minimatch/dist/esm/unescape.js +4 -4
- package/node_modules/minimatch/dist/esm/unescape.js.map +1 -1
- package/node_modules/minimatch/package.json +3 -3
- package/node_modules/minipass/LICENSE.md +55 -0
- package/node_modules/minipass/dist/commonjs/index.d.ts +12 -16
- package/node_modules/minipass/dist/commonjs/index.d.ts.map +1 -1
- package/node_modules/minipass/dist/commonjs/index.js +13 -3
- package/node_modules/minipass/dist/commonjs/index.js.map +1 -1
- package/node_modules/minipass/dist/esm/index.d.ts +12 -16
- package/node_modules/minipass/dist/esm/index.d.ts.map +1 -1
- package/node_modules/minipass/dist/esm/index.js +3 -1
- package/node_modules/minipass/dist/esm/index.js.map +1 -1
- package/node_modules/minipass/package.json +9 -14
- package/node_modules/rimraf/README.md +29 -0
- package/node_modules/rimraf/dist/commonjs/fs.d.ts +9 -8
- package/node_modules/rimraf/dist/commonjs/fs.d.ts.map +1 -1
- package/node_modules/rimraf/dist/commonjs/index.d.ts.map +1 -1
- package/node_modules/rimraf/dist/commonjs/index.js +9 -3
- package/node_modules/rimraf/dist/commonjs/index.js.map +1 -1
- package/node_modules/rimraf/dist/commonjs/opt-arg.d.ts.map +1 -1
- package/node_modules/rimraf/dist/commonjs/opt-arg.js +2 -1
- package/node_modules/rimraf/dist/commonjs/opt-arg.js.map +1 -1
- package/node_modules/rimraf/dist/commonjs/path-arg.d.ts.map +1 -1
- package/node_modules/rimraf/dist/commonjs/path-arg.js +2 -1
- package/node_modules/rimraf/dist/commonjs/path-arg.js.map +1 -1
- package/node_modules/rimraf/dist/commonjs/readdir-or-error.d.ts +2 -2
- package/node_modules/rimraf/dist/commonjs/readdir-or-error.d.ts.map +1 -1
- package/node_modules/rimraf/dist/commonjs/rimraf-move-remove.d.ts.map +1 -1
- package/node_modules/rimraf/dist/commonjs/rimraf-move-remove.js.map +1 -1
- package/node_modules/rimraf/dist/commonjs/rimraf-posix.d.ts.map +1 -1
- package/node_modules/rimraf/dist/commonjs/rimraf-posix.js +1 -2
- package/node_modules/rimraf/dist/commonjs/rimraf-posix.js.map +1 -1
- package/node_modules/rimraf/dist/commonjs/rimraf-windows.d.ts.map +1 -1
- package/node_modules/rimraf/dist/commonjs/rimraf-windows.js.map +1 -1
- package/node_modules/rimraf/dist/esm/bin.mjs.map +1 -1
- package/node_modules/rimraf/dist/esm/fs.d.ts +9 -8
- package/node_modules/rimraf/dist/esm/fs.d.ts.map +1 -1
- package/node_modules/rimraf/dist/esm/index.d.ts.map +1 -1
- package/node_modules/rimraf/dist/esm/index.js +10 -4
- package/node_modules/rimraf/dist/esm/index.js.map +1 -1
- package/node_modules/rimraf/dist/esm/opt-arg.d.ts.map +1 -1
- package/node_modules/rimraf/dist/esm/opt-arg.js +2 -1
- package/node_modules/rimraf/dist/esm/opt-arg.js.map +1 -1
- package/node_modules/rimraf/dist/esm/path-arg.d.ts.map +1 -1
- package/node_modules/rimraf/dist/esm/path-arg.js +2 -1
- package/node_modules/rimraf/dist/esm/path-arg.js.map +1 -1
- package/node_modules/rimraf/dist/esm/readdir-or-error.d.ts +2 -2
- package/node_modules/rimraf/dist/esm/readdir-or-error.d.ts.map +1 -1
- package/node_modules/rimraf/dist/esm/rimraf-move-remove.d.ts.map +1 -1
- package/node_modules/rimraf/dist/esm/rimraf-move-remove.js +1 -1
- package/node_modules/rimraf/dist/esm/rimraf-move-remove.js.map +1 -1
- package/node_modules/rimraf/dist/esm/rimraf-posix.d.ts.map +1 -1
- package/node_modules/rimraf/dist/esm/rimraf-posix.js +1 -2
- package/node_modules/rimraf/dist/esm/rimraf-posix.js.map +1 -1
- package/node_modules/rimraf/dist/esm/rimraf-windows.d.ts.map +1 -1
- package/node_modules/rimraf/dist/esm/rimraf-windows.js +1 -1
- package/node_modules/rimraf/dist/esm/rimraf-windows.js.map +1 -1
- package/node_modules/rimraf/package.json +4 -19
- package/package.json +2 -2
- package/templates/java-spring/mvc/src/main/java/{{packagePath}}/controller/AuthController.java.hbs +38 -42
- package/templates/java-spring/mvc/src/main/java/{{packagePath}}/controller/ItemController.java.hbs +42 -0
- package/templates/java-spring/mvc/src/main/java/{{packagePath}}/controller/PaymentsController.java.hbs +65 -22
- package/templates/java-spring/mvc/src/main/java/{{packagePath}}/model/Item.java.hbs +38 -0
- package/templates/java-spring/mvc/src/main/java/{{packagePath}}/model/User.java.hbs +41 -0
- package/templates/java-spring/mvc/src/main/java/{{packagePath}}/repository/ItemRepository.java.hbs +9 -0
- package/templates/java-spring/mvc/src/main/java/{{packagePath}}/repository/UserRepository.java.hbs +13 -0
- package/templates/java-spring/mvc/src/main/java/{{packagePath}}/service/AuthService.java.hbs +62 -0
- package/templates/java-spring/mvc/src/main/java/{{packagePath}}/service/StripeService.java.hbs +18 -18
- package/templates/java-spring/mvc/src/main/java/{{packagePath}}/{{projectNamePascalCase}}Application.java.hbs +2 -0
- package/templates/nestjs/mvc/package.json.hbs +6 -2
- package/templates/nestjs/mvc/prisma/schema.prisma.hbs +31 -0
- package/templates/nestjs/mvc/src/app.module.ts.hbs +3 -1
- package/templates/nestjs/mvc/src/auth/auth.service.ts.hbs +34 -31
- package/templates/nestjs/mvc/src/payments/payments.service.ts.hbs +26 -6
- package/templates/nestjs/mvc/src/prisma/prisma.module.ts.hbs +9 -0
- package/templates/nestjs/mvc/src/prisma/prisma.service.ts.hbs +15 -0
- package/templates/nestjs/mvc/src/services/items.service.ts.hbs +33 -20
- package/templates/nextjs/mvc/package.json.hbs +1 -0
- package/templates/nextjs/mvc/prisma/schema.prisma.hbs +60 -6
- package/templates/nextjs/mvc/src/app/api/webhook/route.ts.hbs +23 -18
- package/templates/nodejs-express/mvc/package.json.hbs +8 -4
- package/templates/nodejs-express/mvc/prisma/schema.prisma.hbs +31 -0
- package/templates/nodejs-express/mvc/src/config/database.ts.hbs +2 -9
- package/templates/nodejs-express/mvc/src/controllers/auth.controller.ts.hbs +40 -58
- package/templates/nodejs-express/mvc/src/controllers/items.controller.ts.hbs +29 -0
- package/templates/nodejs-express/mvc/src/models/README.md.hbs +10 -0
- package/templates/nodejs-express/mvc/src/prisma/client.ts.hbs +3 -0
- package/templates/nodejs-express/mvc/src/services/auth.service.ts.hbs +71 -0
- package/templates/nodejs-express/mvc/src/services/stripe.service.ts.hbs +35 -25
- package/templates/python-fastapi/mvc/app/controllers/auth.py.hbs +25 -16
- package/templates/python-fastapi/mvc/app/controllers/items.py.hbs +9 -7
- package/templates/python-fastapi/mvc/app/controllers/payments.py.hbs +42 -15
- package/templates/python-fastapi/mvc/app/database.py.hbs +17 -0
- package/templates/python-fastapi/mvc/app/main.py.hbs +4 -0
- package/templates/python-fastapi/mvc/app/models/item.py.hbs +11 -8
- package/templates/python-fastapi/mvc/app/models/user.py.hbs +15 -0
- package/templates/python-fastapi/mvc/app/repositories/item_repository.py.hbs +15 -0
- package/templates/python-fastapi/mvc/app/repositories/user_repository.py.hbs +15 -0
- package/templates/python-fastapi/mvc/app/services/item_service.py.hbs +17 -19
- package/node_modules/minipass/LICENSE +0 -15
- /package/node_modules/{@isaacs/balanced-match → balanced-match}/LICENSE.md +0 -0
- /package/node_modules/{@isaacs/balanced-match → balanced-match}/dist/commonjs/index.d.ts +0 -0
- /package/node_modules/{@isaacs/balanced-match → balanced-match}/dist/commonjs/index.d.ts.map +0 -0
- /package/node_modules/{@isaacs/balanced-match → balanced-match}/dist/commonjs/index.js +0 -0
- /package/node_modules/{@isaacs/balanced-match → balanced-match}/dist/commonjs/index.js.map +0 -0
- /package/node_modules/{@isaacs/balanced-match → balanced-match}/dist/commonjs/package.json +0 -0
- /package/node_modules/{@isaacs/balanced-match → balanced-match}/dist/esm/index.d.ts +0 -0
- /package/node_modules/{@isaacs/balanced-match → balanced-match}/dist/esm/index.d.ts.map +0 -0
- /package/node_modules/{@isaacs/balanced-match → balanced-match}/dist/esm/index.js +0 -0
- /package/node_modules/{@isaacs/balanced-match → balanced-match}/dist/esm/index.js.map +0 -0
- /package/node_modules/{@isaacs/balanced-match → balanced-match}/dist/esm/package.json +0 -0
- /package/node_modules/{@isaacs/brace-expansion → brace-expansion}/LICENSE +0 -0
- /package/node_modules/{@isaacs/brace-expansion → brace-expansion}/dist/commonjs/index.d.ts +0 -0
- /package/node_modules/{@isaacs/brace-expansion → brace-expansion}/dist/commonjs/index.d.ts.map +0 -0
- /package/node_modules/{@isaacs/brace-expansion → brace-expansion}/dist/commonjs/package.json +0 -0
- /package/node_modules/{@isaacs/brace-expansion → brace-expansion}/dist/esm/index.d.ts +0 -0
- /package/node_modules/{@isaacs/brace-expansion → brace-expansion}/dist/esm/index.d.ts.map +0 -0
- /package/node_modules/{@isaacs/brace-expansion → brace-expansion}/dist/esm/package.json +0 -0
|
@@ -1,32 +1,59 @@
|
|
|
1
|
-
from fastapi import APIRouter, HTTPException
|
|
1
|
+
from fastapi import APIRouter, HTTPException, Request, Depends
|
|
2
2
|
from pydantic import BaseModel
|
|
3
|
+
from sqlalchemy.orm import Session
|
|
4
|
+
import stripe
|
|
3
5
|
import os
|
|
6
|
+
from app.database import get_db
|
|
4
7
|
|
|
5
8
|
router = APIRouter()
|
|
6
9
|
|
|
10
|
+
stripe.api_key = os.getenv("STRIPE_SECRET_KEY")
|
|
11
|
+
webhook_secret = os.getenv("STRIPE_WEBHOOK_SECRET")
|
|
12
|
+
|
|
7
13
|
class CheckoutRequest(BaseModel):
|
|
8
14
|
price_id: str
|
|
9
15
|
customer_id: str | None = None
|
|
10
16
|
|
|
11
17
|
@router.post("/checkout")
|
|
12
18
|
async def create_checkout(data: CheckoutRequest):
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
+
try:
|
|
20
|
+
session = stripe.checkout.Session.create(
|
|
21
|
+
mode="subscription",
|
|
22
|
+
payment_method_types=["card"],
|
|
23
|
+
line_items=[{"price": data.price_id, "quantity": 1}],
|
|
24
|
+
customer=data.customer_id,
|
|
25
|
+
success_url=f"{os.getenv('FRONTEND_URL')}/success?session_id={{CHECKOUT_SESSION_ID}}",
|
|
26
|
+
cancel_url=f"{os.getenv('FRONTEND_URL')}/cancel",
|
|
27
|
+
)
|
|
28
|
+
return {"checkout_url": session.url, "session_id": session.id}
|
|
29
|
+
except Exception as e:
|
|
30
|
+
raise HTTPException(status_code=500, detail=str(e))
|
|
19
31
|
|
|
20
32
|
@router.post("/webhook")
|
|
21
|
-
async def stripe_webhook(
|
|
22
|
-
|
|
23
|
-
|
|
33
|
+
async def stripe_webhook(request: Request, db: Session = Depends(get_db)):
|
|
34
|
+
payload = await request.body()
|
|
35
|
+
sig_header = request.headers.get("stripe-signature")
|
|
36
|
+
|
|
37
|
+
try:
|
|
38
|
+
event = stripe.Webhook.construct_event(
|
|
39
|
+
payload, sig_header, webhook_secret
|
|
40
|
+
)
|
|
41
|
+
except ValueError as e:
|
|
42
|
+
raise HTTPException(status_code=400, detail="Invalid payload")
|
|
43
|
+
except stripe.error.SignatureVerificationError as e:
|
|
44
|
+
raise HTTPException(status_code=400, detail="Invalid signature")
|
|
45
|
+
|
|
46
|
+
event_type = event.get("type")
|
|
24
47
|
|
|
25
48
|
if event_type == "checkout.session.completed":
|
|
26
|
-
|
|
27
|
-
|
|
49
|
+
session = event.get("data").get("object")
|
|
50
|
+
print(f"Checkout completed: {session.get('id')}")
|
|
51
|
+
# Update user in db
|
|
28
52
|
elif event_type == "customer.subscription.updated":
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
53
|
+
subscription = event.get("data").get("object")
|
|
54
|
+
print(f"Subscription updated: {subscription.get('id')}")
|
|
55
|
+
elif event_type == "customer.subscription.deleted":
|
|
56
|
+
subscription = event.get("data").get("object")
|
|
57
|
+
print(f"Subscription deleted: {subscription.get('id')}")
|
|
58
|
+
|
|
32
59
|
return {"received": True}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from sqlalchemy import create_engine
|
|
2
|
+
from sqlalchemy.orm import sessionmaker, declarative_base
|
|
3
|
+
import os
|
|
4
|
+
|
|
5
|
+
DATABASE_URL = os.getenv("DATABASE_URL", "postgresql://postgres:postgres@localhost:5432/{{projectNameSnakeCase}}")
|
|
6
|
+
|
|
7
|
+
engine = create_engine(DATABASE_URL)
|
|
8
|
+
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
|
|
9
|
+
|
|
10
|
+
Base = declarative_base()
|
|
11
|
+
|
|
12
|
+
def get_db():
|
|
13
|
+
db = SessionLocal()
|
|
14
|
+
try:
|
|
15
|
+
yield db
|
|
16
|
+
finally:
|
|
17
|
+
db.close()
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
from fastapi import FastAPI
|
|
2
2
|
from app.controllers import health, auth, items, payments
|
|
3
|
+
from app.database import engine, Base
|
|
4
|
+
|
|
5
|
+
# Create tables (In production, use Alembic migrations instead)
|
|
6
|
+
Base.metadata.create_all(bind=engine)
|
|
3
7
|
|
|
4
8
|
app = FastAPI(title="{{projectName}}")
|
|
5
9
|
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
from
|
|
1
|
+
from sqlalchemy import Column, String, Float, DateTime
|
|
2
|
+
from app.database import Base
|
|
2
3
|
from datetime import datetime
|
|
3
|
-
from typing import Optional
|
|
4
4
|
import uuid
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
class Item(Base):
|
|
7
|
+
__tablename__ = "items"
|
|
8
|
+
|
|
9
|
+
id = Column(String, primary_key=True, default=lambda: str(uuid.uuid4()))
|
|
10
|
+
name = Column(String, nullable=False)
|
|
11
|
+
description = Column(String, nullable=True)
|
|
12
|
+
price = Column(Float, nullable=True)
|
|
13
|
+
created_at = Column(DateTime, default=datetime.utcnow)
|
|
14
|
+
updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from sqlalchemy import Column, String, DateTime
|
|
2
|
+
from app.database import Base
|
|
3
|
+
from datetime import datetime
|
|
4
|
+
import uuid
|
|
5
|
+
|
|
6
|
+
class User(Base):
|
|
7
|
+
__tablename__ = "users"
|
|
8
|
+
|
|
9
|
+
id = Column(String, primary_key=True, default=lambda: str(uuid.uuid4()))
|
|
10
|
+
email = Column(String, unique=True, index=True, nullable=False)
|
|
11
|
+
name = Column(String, nullable=True)
|
|
12
|
+
password = Column(String, nullable=False)
|
|
13
|
+
stripe_customer_id = Column(String, nullable=True)
|
|
14
|
+
created_at = Column(DateTime, default=datetime.utcnow)
|
|
15
|
+
updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from sqlalchemy.orm import Session
|
|
2
|
+
from app.models.item import Item
|
|
3
|
+
|
|
4
|
+
class ItemRepository:
|
|
5
|
+
def get_all(self, db: Session) -> list[Item]:
|
|
6
|
+
return db.query(Item).all()
|
|
7
|
+
|
|
8
|
+
def get_by_id(self, db: Session, item_id: str) -> Item | None:
|
|
9
|
+
return db.query(Item).filter(Item.id == item_id).first()
|
|
10
|
+
|
|
11
|
+
def create(self, db: Session, item: Item) -> Item:
|
|
12
|
+
db.add(item)
|
|
13
|
+
db.commit()
|
|
14
|
+
db.refresh(item)
|
|
15
|
+
return item
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from sqlalchemy.orm import Session
|
|
2
|
+
from app.models.user import User
|
|
3
|
+
|
|
4
|
+
class UserRepository:
|
|
5
|
+
def get_by_email(self, db: Session, email: str) -> User | None:
|
|
6
|
+
return db.query(User).filter(User.email == email).first()
|
|
7
|
+
|
|
8
|
+
def get_by_id(self, db: Session, user_id: str) -> User | None:
|
|
9
|
+
return db.query(User).filter(User.id == user_id).first()
|
|
10
|
+
|
|
11
|
+
def create(self, db: Session, user: User) -> User:
|
|
12
|
+
db.add(user)
|
|
13
|
+
db.commit()
|
|
14
|
+
db.refresh(user)
|
|
15
|
+
return user
|
|
@@ -1,24 +1,22 @@
|
|
|
1
|
+
from sqlalchemy.orm import Session
|
|
1
2
|
from app.models.item import Item
|
|
2
3
|
from app.schemas.item import ItemCreate
|
|
3
|
-
from
|
|
4
|
+
from app.repositories.item_repository import ItemRepository
|
|
4
5
|
|
|
5
6
|
class ItemService:
|
|
6
7
|
def __init__(self):
|
|
7
|
-
self.
|
|
8
|
-
|
|
9
|
-
def list_items(self
|
|
10
|
-
return
|
|
11
|
-
|
|
12
|
-
def create_item(self, item_data: ItemCreate
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
return self.
|
|
19
|
-
|
|
20
|
-
def
|
|
21
|
-
|
|
22
|
-
del self.items[item_id]
|
|
23
|
-
return True
|
|
24
|
-
return False
|
|
8
|
+
self.item_repo = ItemRepository()
|
|
9
|
+
|
|
10
|
+
def list_items(self, db: Session):
|
|
11
|
+
return self.item_repo.get_all(db)
|
|
12
|
+
|
|
13
|
+
def create_item(self, item_data: ItemCreate, db: Session):
|
|
14
|
+
db_item = Item(
|
|
15
|
+
name=item_data.name,
|
|
16
|
+
description=item_data.description,
|
|
17
|
+
price=item_data.price
|
|
18
|
+
)
|
|
19
|
+
return self.item_repo.create(db, db_item)
|
|
20
|
+
|
|
21
|
+
def get_item(self, item_id: str, db: Session):
|
|
22
|
+
return self.item_repo.get_by_id(db, item_id)
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
The ISC License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2017-2023 npm, Inc., Isaac Z. Schlueter, and Contributors
|
|
4
|
-
|
|
5
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
6
|
-
purpose with or without fee is hereby granted, provided that the above
|
|
7
|
-
copyright notice and this permission notice appear in all copies.
|
|
8
|
-
|
|
9
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
10
|
-
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
11
|
-
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
12
|
-
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
13
|
-
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
14
|
-
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
|
|
15
|
-
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
File without changes
|
|
File without changes
|
/package/node_modules/{@isaacs/balanced-match → balanced-match}/dist/commonjs/index.d.ts.map
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/node_modules/{@isaacs/brace-expansion → brace-expansion}/dist/commonjs/index.d.ts.map
RENAMED
|
File without changes
|
/package/node_modules/{@isaacs/brace-expansion → brace-expansion}/dist/commonjs/package.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|