File size: 3,106 Bytes
6b725f7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
from fastapi import Query,APIRouter
from service import DefaultService
from request import RequestDefault
from request import RequestDefault as req
from function import support_function
from response import ResponseDefault as res
from fastapi import  File, UploadFile, Form
router = APIRouter()

@router.get("/is_me", tags=["Default"])
async def is_me(token: str = Query(...)):
    if token.strip() == "" or token is None:
        return res.ReponseError(status=400,
                                data=res.Message(message="Token field is required."))
    if token.lower() == "none":
        return res.ReponseError(status=400,
                                data=res.Message(message="Token cannot be None."))
    if not isinstance(token, str):
        return res.ReponseError(status=400,
                                data=res.Message(message="Token must be a non-empty string."))
    try:
        float(token)
        return res.ReponseError(status=400,
                                data=res.Message(message="Token must be a string, not a number."))
    except ValueError:
        pass
    request = RequestDefault.RequestIsMe(token=token)
    return DefaultService.is_me(request)

@router.post('/create_firebase_user_google', tags=["Default"])
async def get_or_create_firebase_user(request: RequestDefault.RequestCreateFireBaseUserGoogle):
    email = request.email
    check = support_function.check_value_email_controller(request.email)
    if check is not True:
        return check
    token_google = request.token_google
    if token_google == "" or token_google is None:
        return res.ReponseError(status=400,
                                data=res.Message(message="Token field is required."))
    if not isinstance(token_google, str):
        return res.ReponseError(status=400,
                                data=res.Message(message="Token must be a non-empty string."))
    try:
        float(token_google)
        return res.ReponseError(status=400,
                                data=res.Message(message="Token must be a string, not a number."))
    except ValueError:
        pass
    return DefaultService.create_firebase_user(request)

@router.get("/info_user/{user_id}", tags=["Default"])
async def get_user(user_id: str):
    check = support_function.check_value_user_id_controller(user_id)
    if check is not True:
        return check
    request = RequestDefault.RequestInfoUser(user_id=user_id)
    return DefaultService.info_user(request)

ALLOWED_IMAGE_EXTENSIONS = {"jpeg", "jpg", "png"}

def allowed_file(filename: str) -> bool:
    return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_IMAGE_EXTENSIONS

@router.post("/upload_image", tags=["Default"])
async def upload_image(user_id: str = Form(None), file: UploadFile = File(...)):
    check = support_function.check_value_user_id_controller(user_id)
    if check is not True:
        return check
    request = req.RequestUpLoadImage(user_id=user_id, files= file)
    return DefaultService.upload_image_service(request)