apps.py 4.67 KB
Newer Older
wanli's avatar
wanli committed
1 2 3 4 5 6 7 8 9 10 11 12 13
#!/usr/bin/env python
# -*- coding: utf_8 -*-
import os
import json
import datetime
import logging
import traceback
from flask import Blueprint, request
from app import config, signalManager
from fullstack.login import Auth
from fullstack.validation import validate_schema
from fullstack.response import ResponseCode, response_result
from schema.apps import AddSchema, DeleteSchema, QuerySchema, UpdateSchema
wanli's avatar
wanli committed
14
from schema.build_logs import AddSchema as LogAddScheme, QuerySchema as LogQuerySchema
wanli's avatar
wanli committed
15 16 17 18 19 20 21 22 23 24

logger = logging.getLogger("appsApi")

apps_api = Blueprint("apps_api", __name__, url_prefix="/api/v1/%s/apps" % config['NAME'])

@apps_api.route("/add", methods=['POST'])
@validate_schema(AddSchema)
@Auth.auth_required
def add():
    try:
wanli's avatar
wanli committed
25 26
        user = request.current_user.get("id")
        isSuccess, message = signalManager.actionAddApp.emit(user, request.schema_data)
wanli's avatar
wanli committed
27 28 29 30 31 32 33 34 35 36 37 38 39 40
        if isSuccess:
            return response_result(ResponseCode.OK, msg=message)
        else:
            return response_result(ResponseCode.REQUEST_ERROR, msg=message)
    except Exception as e:
        traceback.print_exc()
        logger.error(str(e))
        return response_result(ResponseCode.SERVER_ERROR, msg=str(e))


@apps_api.route("/delete/<uuid:id>", methods=['POST'])
@Auth.auth_required
def delete(id):
    try:
wanli's avatar
wanli committed
41 42
        user = request.current_user.get("id")
        isSuccess, message = signalManager.actionDeleteApp.emit(user, id)
wanli's avatar
wanli committed
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
        if isSuccess:
            return response_result(ResponseCode.OK, msg=message)
        else:
            return response_result(ResponseCode.REQUEST_ERROR, msg=message)
    except Exception as e:
        traceback.print_exc()
        logger.error(str(e))
        return response_result(ResponseCode.SERVER_ERROR)


@apps_api.route("/get", methods=["POST"])
@validate_schema(QuerySchema)
@Auth.auth_required
def get():
    try:
wanli's avatar
wanli committed
58 59
        user = request.current_user.get("id")
        result, message = signalManager.actionGetApp.emit(user, request.schema_data)
wanli's avatar
wanli committed
60 61 62 63 64 65 66 67 68 69 70 71 72 73
        if result:
            return response_result(ResponseCode.OK, data=result, msg=message)
        else:
            return response_result(ResponseCode.REQUEST_ERROR, msg=message)
    except Exception as e:
        traceback.print_exc()
        logger.error(str(e))
        return response_result(ResponseCode.SERVER_ERROR, msg=str(e))

@apps_api.route("/list", methods=['POST'])
@validate_schema(QuerySchema)
@Auth.auth_required
def get_list():
    try:
wanli's avatar
wanli committed
74 75
        user = request.current_user.get("id")
        result, count, message = signalManager.actionGetAppList.emit(user, request.schema_data)
wanli's avatar
wanli committed
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
        if result:
            return response_result(ResponseCode.OK, data=result, msg=message, count=count)
        else:
            return response_result(ResponseCode.REQUEST_ERROR, msg=message)
    except Exception as e:
        traceback.print_exc()
        logger.error(str(e))
        return response_result(ResponseCode.SERVER_ERROR)


@apps_api.route("/update/<uuid:id>", methods=['POST'])
@validate_schema(UpdateSchema)
@Auth.auth_required
def update(id):
    try:
wanli's avatar
wanli committed
91 92
        user = request.current_user.get("id")
        isSuccess, message = signalManager.actionUpdateApp.emit(user, id, request.schema_data)
wanli's avatar
wanli committed
93 94 95 96 97 98 99 100
        if isSuccess:
            return response_result(ResponseCode.OK, msg=message)
        else:
            return response_result(ResponseCode.REQUEST_ERROR, msg=message)
    except Exception as e:
        traceback.print_exc()
        logger.error(str(e))
        return response_result(ResponseCode.SERVER_ERROR)
wanli's avatar
wanli committed
101 102 103 104 105

@apps_api.route("/build/<uuid:id>", methods=['POST'])
@validate_schema(LogAddScheme)
@Auth.auth_required
def build_app(id):
wanli's avatar
wanli committed
106 107
    user = request.current_user.get("id")
    result, message = signalManager.actionAddBuildLog.emit(user, id)
wanli's avatar
wanli committed
108 109 110 111 112
    if result:
        return response_result(ResponseCode.OK, data=result, msg=message)
    else:
        return response_result(ResponseCode.NOTHING_CHANGE, msg=message)

wanli's avatar
wanli committed
113 114 115
@apps_api.route("/getBuildApp/<uuid:id>", methods=['POST'])
@Auth.auth_required
def get_build_app(id):
wanli's avatar
wanli committed
116 117
    user = request.current_user.get("id")
    result, message = signalManager.actionGetBuildLog.emit(user, id)
wanli's avatar
wanli committed
118 119 120 121 122
    if result:
        return response_result(ResponseCode.OK, data=result, msg=message)
    else:
        return response_result(ResponseCode.NOTHING_CHANGE, msg=message)

wanli's avatar
wanli committed
123 124 125 126
@apps_api.route("/buildLogs", methods=['POST'])
@validate_schema(LogQuerySchema)
@Auth.auth_required
def get_build_logs():
wanli's avatar
wanli committed
127 128
    user = request.current_user.get("id")
    result, count, message = signalManager.actionGetBuildLogList.emit(user, request.schema_data)
wanli's avatar
wanli committed
129 130 131 132
    if result:
        return response_result(ResponseCode.OK, data=result, msg=message, count=count)
    else:
        return response_result(ResponseCode.NOTHING_CHANGE, msg=message)