72 lines
2 KiB
Python
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']
|
|
)
|