def decorator(*args, **kwargs):
        service_name = os.environ["SERVICE"]

        url = request.url
        host = request.headers["Host"]

        endpoint = url.strip("https://").strip("http://").strip(host).split(
            "?")[0]

        path_us = endpoint.replace("/", "_")

        price_var = "PRICE_%s%s" % (service_name.upper(), path_us.upper())
        price = os.environ.get(price_var, DEFAULT_PRICE)

        if "Bitcoin-Transfer" in request.headers:
            method = "buffer"
        elif "Bitcoin-Transaction" in request.headers:
            method = "wallet"
        elif "Bitcoin-Payment-Channel-Token" in request.headers:
            method = "channel"
        else:
            raise ValueError(
                "request header must contain Bitcoin-Transfer, Bitcoin-Transaction, "
                "or Bitcoin-Payment-Channel-Token")

        db = Two1SellDB(db_dir="/usr/src/db/")
        db.update(service_name, method, price)

        return fn(*args, **kwargs)
Exemple #2
0
def get_earnings(services):
    """ Gets earnings of given services.
    """
    db = Two1SellDB()
    return {
        service: get_earning(service, db) for service in services
    }
Exemple #3
0
def service_status(service, dollars_per_sat, print_earnings=True):
    db = Two1SellDB()
    earning = get_earning(service, db)
    if print_earnings:
        request_count = earning["request_count"]

        total_earnings = (earning["buffer"] + earning["wallet"] +
                          earning["channels"])
        usd_earnings = total_earnings * dollars_per_sat

        message = [
            "[Totals]",
            "Requests:   %d" % request_count,
            "Earnings: $%.4f" % usd_earnings
        ]
    else:
        message = []
    print_str(service, message, "TRUE" if service[1] else "FALSE", service[1])