mirror of
https://github.com/sunrin-ana/2025-SSF-dotory-manage.git
synced 2026-03-09 18:10:02 +00:00
initial test
This commit is contained in:
commit
651703c0f8
19 changed files with 198 additions and 0 deletions
8
routes/__init__.py
Normal file
8
routes/__init__.py
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
from flask_restx import Api
|
||||
|
||||
from .dotori import dotori_ns
|
||||
from .product import product_ns
|
||||
|
||||
def add_namespaces(api):
|
||||
api.add_namespace(dotori_ns, path='/api/dotory')
|
||||
api.add_namespace(product_ns, path='/api/buy')
|
||||
BIN
routes/__pycache__/__init__.cpython-313.pyc
Normal file
BIN
routes/__pycache__/__init__.cpython-313.pyc
Normal file
Binary file not shown.
BIN
routes/__pycache__/buy.cpython-313.pyc
Normal file
BIN
routes/__pycache__/buy.cpython-313.pyc
Normal file
Binary file not shown.
BIN
routes/__pycache__/cart.cpython-313.pyc
Normal file
BIN
routes/__pycache__/cart.cpython-313.pyc
Normal file
Binary file not shown.
BIN
routes/__pycache__/dotori.cpython-313.pyc
Normal file
BIN
routes/__pycache__/dotori.cpython-313.pyc
Normal file
Binary file not shown.
BIN
routes/__pycache__/order.cpython-313.pyc
Normal file
BIN
routes/__pycache__/order.cpython-313.pyc
Normal file
Binary file not shown.
BIN
routes/__pycache__/product.cpython-313.pyc
Normal file
BIN
routes/__pycache__/product.cpython-313.pyc
Normal file
Binary file not shown.
40
routes/dotori.py
Normal file
40
routes/dotori.py
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
from flask_restx import Namespace, Resource, fields
|
||||
from services.dotori_service import DotoriService
|
||||
|
||||
dotori_ns = Namespace('dotory', description='도토리 관련 API')
|
||||
|
||||
user_model = dotori_ns.model('UserDotori', {
|
||||
'userId': fields.Integer,
|
||||
'dotory': fields.Integer,
|
||||
})
|
||||
|
||||
@dotori_ns.route('/<int:userId>')
|
||||
class UserDotori(Resource):
|
||||
@dotori_ns.marshal_with(user_model)
|
||||
def get(self, userId):
|
||||
user_dotori = DotoriService.get_user_dotori(userId)
|
||||
if not user_dotori:
|
||||
dotori_ns.abort(404, 'User not found')
|
||||
return user_dotori.to_response()
|
||||
|
||||
@dotori_ns.route('')
|
||||
class InitializeDotori(Resource):
|
||||
@dotori_ns.expect(dotori_ns.model('Initialize', {'userId': fields.String(required=True)}))
|
||||
def post(self):
|
||||
data = dotori_ns.payload
|
||||
user_id = data.get('userId')
|
||||
return DotoriService.initialize_user_dotori(user_id)
|
||||
|
||||
@dotori_ns.route('/<int:userId>')
|
||||
class AddDotori(Resource):
|
||||
@dotori_ns.expect(dotori_ns.model('AddDotori', {'num': fields.Integer(required=True)}))
|
||||
def put(self, userId):
|
||||
data = dotori_ns.payload
|
||||
num = data.get('num')
|
||||
return DotoriService.add_dotori(userId, num)
|
||||
|
||||
@dotori_ns.route('/all')
|
||||
class GetAllDotori(Resource):
|
||||
def get(self):
|
||||
users = DotoriService.get_all_users_dotori()
|
||||
return users
|
||||
37
routes/product.py
Normal file
37
routes/product.py
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
from flask_restx import Namespace, Resource, fields
|
||||
from services.dotori_service import DotoriService
|
||||
|
||||
product_ns = Namespace('buy', description='상품 구매 API')
|
||||
|
||||
buy_request_model = product_ns.model('BuyRequest', {
|
||||
'userId': fields.Integer(required=True),
|
||||
})
|
||||
|
||||
buy_response_model = product_ns.model('BuyResponse', {
|
||||
'isSuccess': fields.Boolean,
|
||||
'userId': fields.Integer,
|
||||
'dotory': fields.Integer,
|
||||
})
|
||||
|
||||
@product_ns.route('/<int:productId>')
|
||||
class BuyProduct(Resource):
|
||||
@product_ns.expect(buy_request_model)
|
||||
@product_ns.response(200, 'Success', buy_response_model)
|
||||
@product_ns.response(400, 'Failed')
|
||||
def post(self, productId):
|
||||
data = product_ns.payload
|
||||
user_id = data.get('userId')
|
||||
if not user_id:
|
||||
product_ns.abort(400, 'userId is required')
|
||||
|
||||
product_price = 100 # 가격이 얼마에요?
|
||||
success = DotoriService.buy_product(user_id, product_price)
|
||||
if success:
|
||||
user_dotori = DotoriService.get_user_dotori(user_id)
|
||||
return {
|
||||
'isSuccess': True,
|
||||
'userId': user_id,
|
||||
'dotory': user_dotori if user_dotori else 0
|
||||
}
|
||||
else:
|
||||
product_ns.abort(400, 'Insufficient dotory or purchase failed')
|
||||
Loading…
Add table
Add a link
Reference in a new issue