from flask_restx import Resource, Api, Namespace, fields
from flask import request
from flask import Flask, render_template, request
from werkzeug.utils import secure_filename
import os
from database.database import DB
from PIL import Image
from datetime import datetime, timedelta

paths = os.getcwd()

Action = Namespace(
    name="Action",
    description="노드 분석을 위해 사용하는 api.",
)


@Action.route('/image_summit')
class fileUpload(Resource):
    @Action.doc(responses={200: 'Success'})
    @Action.doc(responses={500: 'Register Failed'})
    def post(self):
      if request.method == 'POST':
         f = request.files['file']
         f.save(secure_filename(f.filename))
         return {
                'save': 'done'  # str으로 반환하여 return
            }, 200



@Action.route('/image_anal')
class fileUpload(Resource):
    @Action.doc(responses={200: 'Success'})
    @Action.doc(responses={500: 'Register Failed'})
    def post(self):
      if request.method == 'POST':
         db=DB()
         dir = os.getcwd()
         filename = request.json['filename']
         file_type = request.json['file_type']
         lat = float(request.json['gps_x'])
         lon = float(request.json['gps_y'])
         user_id = 'test'
         action_success = True
         action_id = 'test'
         db.db_add_action(action_id,lat,lon,user_id,action_success)
         return {
                'node': (lat,lon),  
                'rain' : 'rain',
            }, 200

              
@Action.route('/action_display')
class fileUpload(Resource):
    @Action.doc(responses={200: 'Success'})
    @Action.doc(responses={500: 'Register Failed'})
    def post(self):
      if request.method == 'GET':
        db = DB()
        now=datetime.now() 
        d=now.strftime('%Y-%m-%d %X')
        value=db.db_display_action(d)     
        return {
              'report': list(value)  
          }, 200
         
