This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@ -122,6 +122,8 @@ celerybeat.pid
|
||||
|
||||
# Environments
|
||||
.env
|
||||
.env.dev
|
||||
.env.prd
|
||||
.venv
|
||||
env/
|
||||
venv/
|
||||
|
@ -5,12 +5,15 @@ from rest_framework.exceptions import PermissionDenied
|
||||
from .models import Post
|
||||
from .serializers import PostSerializer
|
||||
from .utils import verify_token_with_auth_server
|
||||
import logging # 2025-04-29
|
||||
|
||||
logger = logging.getLogger(__name__) # 2025-04-29
|
||||
|
||||
class PostListView(generics.ListAPIView):
|
||||
queryset = Post.objects.all().order_by('-created_at')
|
||||
serializer_class = PostSerializer
|
||||
permission_classes = [permissions.AllowAny]
|
||||
|
||||
|
||||
class PostListCreateView(generics.ListCreateAPIView):
|
||||
queryset = Post.objects.all().order_by('-created_at')
|
||||
serializer_class = PostSerializer
|
||||
@ -19,7 +22,16 @@ class PostListCreateView(generics.ListCreateAPIView):
|
||||
def perform_create(self, serializer):
|
||||
token = self.request.headers.get("Authorization", "").replace("Bearer ", "")
|
||||
verify_token_with_auth_server(token)
|
||||
verify_result = verify_token_with_auth_server(token)
|
||||
# 2025-04-14 로그 등록 (콘솔+FluentBit용)
|
||||
if verify_result == None:
|
||||
logger.info(f"Token verified")
|
||||
else:
|
||||
logger.info(f"Token error")
|
||||
|
||||
serializer.save(author_name=self.request.user.username)
|
||||
post_title=serializer.save(author_name=self.request.user.username)
|
||||
logger.info(f"Post titled '{post_title}' has been created.")
|
||||
|
||||
# ✅ 조회, 수정, 삭제 전부 처리
|
||||
class PostDetailView(generics.RetrieveUpdateDestroyAPIView):
|
||||
@ -38,6 +50,8 @@ class PostDetailView(generics.RetrieveUpdateDestroyAPIView):
|
||||
if serializer.instance.author_name != self.request.user.username:
|
||||
raise PermissionDenied("작성자만 수정할 수 있습니다.")
|
||||
serializer.save()
|
||||
post_title=serializer.save(author_name=self.request.user.username)
|
||||
logger.info(f"Post titled '{post_title}' has been updated.")
|
||||
|
||||
def perform_destroy(self, instance):
|
||||
token = self.request.headers.get("Authorization", "").replace("Bearer ", "")
|
||||
@ -46,3 +60,4 @@ class PostDetailView(generics.RetrieveUpdateDestroyAPIView):
|
||||
if instance.author_name != self.request.user.username:
|
||||
raise PermissionDenied("작성자만 삭제할 수 있습니다.")
|
||||
instance.delete()
|
||||
logger.info(f"Post titled '{instance}' has been deleted.")
|
@ -52,6 +52,55 @@ SECRET_KEY = os.environ.get('SECRET_KEY', 'django-insecure-ec9me^z%x7-2vwee5#qq(
|
||||
# SECURITY WARNING: don't run with debug turned on in production!
|
||||
DEBUG = int(os.environ.get('DEBUG', 1))
|
||||
|
||||
LOGGING = {
|
||||
'version': 1,
|
||||
'disable_existing_loggers': False, # Django 기본 로거 유지
|
||||
'formatters': {
|
||||
'standard': {
|
||||
'format': '[{asctime}] {levelname} {name}:{lineno} {message}',
|
||||
'style': '{',
|
||||
},
|
||||
},
|
||||
'handlers': {
|
||||
'console': {
|
||||
'class': 'logging.StreamHandler', # 콘솔 출력
|
||||
'formatter': 'standard',
|
||||
},
|
||||
},
|
||||
'root': {
|
||||
'handlers': ['console'],
|
||||
'level': 'INFO', # 기본 레벨 (애플리케이션 코드)
|
||||
},
|
||||
'loggers': {
|
||||
'django': {
|
||||
'handlers': ['console'],
|
||||
'level': 'INFO', # Django 프레임워크 전반
|
||||
'propagate': False,
|
||||
},
|
||||
'django.request': {
|
||||
'handlers': ['console'],
|
||||
'level': 'ERROR', # 요청 관련 에러만 (500 에러 같은 것)
|
||||
'propagate': False,
|
||||
},
|
||||
'django.db.backends': {
|
||||
'handlers': ['console'],
|
||||
'level': 'WARNING', # DB 쿼리 경고만
|
||||
'propagate': False,
|
||||
},
|
||||
'django.security': {
|
||||
'handlers': ['console'],
|
||||
'level': 'WARNING', # 보안 관련 경고
|
||||
'propagate': False,
|
||||
},
|
||||
# mattermost send message log 너무 많이 나와서 조정
|
||||
'apscheduler': {
|
||||
'handlers': ['console'],
|
||||
'level': 'WARNING', # INFO 로그 안 보이게 함 | 'CRITICAL'로 맞추면 사실상 아무것도 안 찍힘
|
||||
'propagate': False,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
AUTH_VERIFY_URL = os.environ.get('AUTH_VERIFY_URL', 'NONE')
|
||||
|
||||
ALLOWED_HOSTS = ["*"]
|
||||
|
Reference in New Issue
Block a user