def deposit_index(methods=["GET", "OPTIONS"]):
     if request.method == "OPTIONS":
         return jsonify({}), 200
     try:
         # authentication
         token, user = Helper.user_authentication()
         if token and user == None:
             return Helper.abort(401, "Unauthorized", base="Invalid credentials")
         # ordering
         order_by = request.args.get('order_by', 'created_at')
         order = request.args.get('order', 'desc')
         # pagination
         size = int(request.args.get('page_size', 10))
         if size > 10 and size < 1:
             size = 10
         page = int(request.args.get('page', 1))
         if page < 1:
             page = 1
         # get deposit
         ds = Deposit.get_deposits(size=size, page=page, order_by=order_by,
             order=order, user=user)
         resp = Response(Deposit.to_deposits_json(ds))
         resp.code = 200
         if user:
             resp.headers['X-Token'] = "B2SHARE " + user.get_token()
         return resp
     except:
         return Helper.abort(500, "Internal Server Error", base="Internal Server Error")
def add_notification():
    req = request.json
    notification_url = req['notificationUrl']
    monitor = req['monitor']
    response = Response()
    if monitor == 'servers':
        notify_id = add_notification_on_servers(notification_url)
    if monitor == 'specifiedServer':
        server = req['server']
        notify_id = add_notification_on_server_status(notification_url, server)
    response = jsonify(notifyId=notify_id)
    response.code = 200
    return response
 def user_login(methods=["POST", "OPTIONS"]):
     if request.method == "OPTIONS":
         return jsonify({}), 200
     try:
         jdata = json.loads(request.data)
         user = User.find_user(email=jdata['email'], password=jdata['password'])
         if user == None:
             return Helper.abort(401, "Unauthorized", base="Invalid credentials")
         # return user.to_json(), 200
         resp = Response(user.to_json())
         resp.code = 200
         resp.headers['X-Token'] = "B2SHARE " + user.get_token()
         return resp
     except KeyError:
         return Helper.abort(400, "Bad Request", base="Invalid credentials")
    def deposit(methods=["GET", "OPTIONS"]):
        if request.method == "OPTIONS":
            return jsonify({}), 200
        try:
            # authentication
            token, user = Helper.user_authentication()
            if token and user == None:
                return Helper.abort(401, "Unauthorized", base="Invalid credentials")

            # request
            uuid = request.args.get('uuid', None)
            if uuid == None:
                return Helper.abort(400, "Bad Request", base="Unknown Deposit request")

            deposit = Deposit.find_deposit(uuid=uuid, user=user)
            if deposit == None:
                return Helper.abort(404, "Not Found", base="Deposit not found")
            resp = Response(deposit.to_json())
            resp.code = 200
            if user:
                resp.headers['X-Token'] = "B2SHARE " + user.get_token()
            return resp
        except:
            return Helper.abort(500, "Internal Server Error", base="Internal Server Error")
def start_server(server):
    response = Response()
    _start_server(server)
    response.code = 200
    return response