console/app/cloud/views/api/__init__.py

72 lines
2 KiB
Python

# coding: utf-8
import uuid
from datetime import datetime
from datetime import timedelta
from flask import jsonify
from flask import render_template
from flask import session
from flask import redirect
from flask import url_for
from flask import request
from flask import Blueprint
from app import models
from app.settings import settings
from app.cloud.controllers.users import ControllerUsers
from app.cloud.controllers.users import ControllerAPI
from app.cloud.controllers.containers import ControllerContainers
from cloudnsru import CloudnsClient
viewAPI = Blueprint('api', __name__, url_prefix='/api')
# /auth
@viewAPI.route('/auth', methods=['POST'])
def auth():
"""
curl -X POST http://localhost:5000/api/auth --data 'email=<email>&secret=<secret>'
TODO:
Процесс авторизации
- получаем емейл и секретный ключ
- создаём временный токен
- выдаём токен
:return:
"""
email = request.form['email']
secret = request.form['secret']
# expire = request.form['expire']
if not ControllerAPI().auth(email, secret):
return jsonify(status=1)
user_id = ControllerUsers().get_id_by_email(email)
return jsonify(user_id=user_id)
# /container/create
# /container/details/<uuid:container_id>
@viewAPI.route('/container/list', methods=['GET', 'POST', 'PUT', 'DELETE'])
def container_list():
"""
curl -X POST http://localhost:5000/api/container/list --data 'email=<email>&secret=<secret>'
:return:
"""
email = request.form['email']
secret = request.form['secret']
# expire = request.form['expire']
#
if not ControllerAPI().auth(email, secret):
return jsonify(status=1)
#
user_id = ControllerUsers().get_id_by_email(email)
# get containers list
containers = ControllerContainers(user_id).get_items()
#
return jsonify(
status=0,
total=containers['total'],
items=containers['items']
)