console/SWSCloudCore/views/api/__init__.py
2016-04-20 03:39:13 +03:00

143 lines
4.1 KiB
Python

# coding: utf-8
from flask import Blueprint, jsonify, request
from SWSCloudCore.controllers.containers import ControllerContainers
from SWSCloudCore.controllers.datacenters import ControllerDataCenters
from SWSCloudCore.controllers.users import ControllerAPI
from SWSCloudCore.controllers.users import ControllerUsers
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']
if not ControllerAPI().auth(email, secret):
return jsonify(status=1)
user_id = ControllerUsers().get_id_by_email(email)
return jsonify(user_id=user_id)
@viewAPI.route('/datacenter/list', methods=['POST'])
def datacenter_list():
"""
curl -X POST http://localhost:5000/api/datacenter/list --data 'email=<email>&secret=<secret>'
:return:
"""
email = request.form['email']
secret = request.form['secret']
#
if not ControllerAPI().auth(email, secret):
return jsonify(status=403), 403
#
user_id = ControllerUsers().get_id_by_email(email)
# get containers list
datacenters = ControllerDataCenters().get()
#
return jsonify(
total=datacenters['total'],
items=datacenters['items']
)
# /container/create
# /container/details/<uuid:container_id>
@viewAPI.route('/container/list', methods=['POST'])
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']
)
@viewAPI.route('/container/create', methods=['POST'])
def container_create():
"""
curl -X POST http://localhost:5000/api/container/create --data 'email=<email>&secret=<secret>&datacenter_id=<datacenter_id>'
:return:
"""
email = request.form['email']
secret = request.form['secret']
datacenter_id = request.form['datacenter_id']
# 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']
)
@viewAPI.route('/container/delete', methods=['POST'])
def container_delete():
"""
curl -X POST http://localhost:5000/api/container/delete --data 'email=<str:email>&secret=<str:secret>&container_id=<uuid:container_id>'
:return:
"""
return jsonify(status=0)
@viewAPI.route('/container/stop', methods=['POST'])
def container_stop():
"""
curl -X POST http://localhost:5000/api/container/stop --data 'email=<str:email>&secret=<str:secret>&container_id=<uuid:container_id>'
:return:
"""
return jsonify(status=0)
@viewAPI.route('/container/start', methods=['POST'])
def container_start():
"""
curl -X POST http://localhost:5000/api/container/start --data 'email=<str:email>&secret=<str:secret>&container_id=<uuid:container_id>'
:return:
"""
return jsonify(status=0)
@viewAPI.route('/container/restart', methods=['POST'])
def container_restart():
"""
curl -X POST http://localhost:5000/api/container/restart --data 'email=<str:email>&secret=<str:secret>&container_id=<uuid:container_id>'
:return:
"""
return jsonify(status=0)