MIA 2 年 前
コミット
3ca5ce9da7
2 ファイル変更63 行追加9 行削除
  1. 8 5
      app/api/classes.py
  2. 55 4
      app/api/news.py

+ 8 - 5
app/api/classes.py

@@ -350,15 +350,15 @@ async def delete(id: int):
         return {"msg": "success", "code": 200}
 
 @classes.get("/get_event")
-async def search_event(name_id: int = 0):
+async def search_event(class_name_id: int = 0):
     try:
-        class_list = await Class_list.filter(name_id=name_id).all()
-
+        class_list = await Class_list.filter(name_id=class_name_id).all()
+        class_name_obj = await Class_name.get(id=class_name_id)
+        class_name = class_name_obj.name
         classes = []
         for class_obj in class_list:
             class_data = {
-            "msg": "success",
-            "code": 200,
+            "class_name" : class_name,
             "event_id": class_obj.id,
             "name_id": class_obj.name_id,
             "event": class_obj.event,
@@ -574,10 +574,13 @@ async def get_favorite_class(
         class_list = await Favorite_course.filter(user_id = user_id).all()
         favorite_courses = []
         for class_obj in class_list:
+            class_event = await Class_list.get(id = class_obj.class_event_id)
+            class_name = await Class_name.get(id = class_event.name_id)
             class_data = {
                 "id": class_obj.id,
                 "user_id": class_obj.user_id,
                 "class_event_id":class_obj.class_event_id,
+                "class_name_id" : class_name.id,
                 "time_stemp":class_obj.time_stemp
             }
             favorite_courses.append(class_data)

+ 55 - 4
app/api/news.py

@@ -18,6 +18,9 @@ from fastapi.responses import HTMLResponse
 
 news = APIRouter()
 
+IMAGEDIR = "/var/www/html/ntcri/assets/"
+IMAGEDIR_short = "assets/"
+
 @news.get("/get_news")
 async def search_news(
     news_id : int = None
@@ -47,8 +50,56 @@ async def search_news(
     except Exception as e:
         return {"msg": str(e), "code": 500}
     
-# @news.post("/insert_news")
-# async def insert_news(
 
-# ):
-    
+async def create_upload_files(files: List[UploadFile]):
+    return {"filenames": [file.filename for file in files]}
+    # files_url = {}
+    # if files!='':
+    #     file_num = 1
+    #     print(file_num)
+    #     for file in files:
+    #         contents = await file.read()
+
+    #         #save the file
+    #         with open(f"{IMAGEDIR}{file.filename}", "wb") as f:
+    #             f.write(contents)
+    #             file_name = "file" + str(file_num)
+    #             print(file_name)
+    #             files_url[file_name]=f"{IMAGEDIR_short}{file.filename}"       
+    #             i=i+1 
+
+    # return files_url
+
+@news.post("/insert_news")
+async def insert_news(
+    title : str = Form(default=''),
+    category : str = Form(default=''),
+    create_time :str = Form(default=datetime.now()),
+    content : str = Form(default=''),
+    URL :str = Form(default=''),
+    tags : str = Form(default=''),
+    files_url = Depends(create_upload_files)
+):
+    try:
+
+        new_news = await News.create(
+            title=title,
+            category=category,
+            create_time=create_time,
+            content=content,
+            files = str(files_url),
+            URL = URL,
+            tags = tags
+        )
+        
+        return {"msg": "success", "code": 200, "new_news": new_news.id}
+    except Exception as e:
+        return {"msg": str(e), "code": 500}
+
+
+
+@news.post("/delete_news")
+async def delete_news(id: int):
+    if id:
+        await News.filter(id=id).delete()
+        return {"msg": "success", "code": 200}