diff --git a/app/cloud/controllers/datacenters/__init__.py b/app/cloud/controllers/datacenters/__init__.py index 1ef2ad1..b1102ca 100644 --- a/app/cloud/controllers/datacenters/__init__.py +++ b/app/cloud/controllers/datacenters/__init__.py @@ -30,5 +30,10 @@ class ControllerDataCenters: items['items'] = [] for item in dclist.execute(): - items['items'].append(item) + items['items'].append({ + 'id': item.id, + 'name': item.name, + 'country': item.country, + 'city': item.city, + }) return items diff --git a/app/cloud/views/api/__init__.py b/app/cloud/views/api/__init__.py index 405f89f..931c45d 100644 --- a/app/cloud/views/api/__init__.py +++ b/app/cloud/views/api/__init__.py @@ -16,6 +16,7 @@ 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.datacenters import ControllerDataCenters from app.cloud.controllers.containers import ControllerContainers from cloudnsru import CloudnsClient @@ -44,11 +45,36 @@ def auth(): 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=&secret=' + :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) + # get containers list + datacenters = ControllerDataCenters().get() + # + return jsonify( + status=0, + total=datacenters['total'], + items=datacenters['items'] + ) + + # /container/create # /container/details/ -@viewAPI.route('/container/list', methods=['GET', 'POST', 'PUT', 'DELETE']) +@viewAPI.route('/container/list', methods=['POST']) def container_list(): """ curl -X POST http://localhost:5000/api/container/list --data 'email=&secret=' @@ -70,3 +96,28 @@ def container_list(): 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=&secret=&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'] + )