/ theprofessor / services / articleservice.py
swadhinbiswas day 5 · 2/10/2024
b4adfb2
33 lines · 1005 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from calendar import c
from os import path
import shutil
import pdftoword
from typing import Optional,List
from fastapi import File,UploadFile
from schemas.articleschema import ArticleSchema
from models.articlemodel import ArticleModel
import pymongo 

class ArticleService:
    @staticmethod
    async def create_article(user:ArticleSchema, uploade_file:UploadFile=File(...)):
        path=f"files/{uploade_file.filename}"
        with open(path, "wb") as buffer:
            shutil.copyfileobj(uploade_file.file, buffer)
            
        data=await pdftoword.pdftotext(path)
        


        article_in=ArticleModel(
            title=user.title,
            owner=user.owner,
            filename=uploade_file.filename,
            content=data,
        )
        await article_in.save()
        return article_in
    @staticmethod
    async def get_article_bytitle(title:str)->Optional[ArticleModel]:
        article=await ArticleModel.find_one(ArticleModel.title==title)
        return article