void AccountBusiness::RechargeCallBack(zxy_request_context* context, evhtp_request_t* , const std::string& content, const std::map<std::string, std::string>& , zxy_upstream_request_status status, void* arg)
{
    _LPRECHARGE_CALLBACKPARAM lpParam = (_LPRECHARGE_CALLBACKPARAM)arg;

    if (lpParam != NULL) {
        if (status == REQ_OK) {
            RechargeRequest* lpRequest = lpParam->lpRequest;
            lpRequest->decode(content);
            async_action_callback callback = lpParam->callback;
            if (lpRequest->status == 1000) {
                int afCoin = strtol(lpRequest->data.afCoin.c_str(), NULL, 10);
                g_theSessionBusiness.SetAfCoin(context, afCoin);
            }
            
            callback(context, lpRequest);
        }
        else if (status == REQ_TIMEOUT) {
            json_result result = json_result(1001,
                Json::Value(Json::nullValue), "Recharge timed out, please retry.");
            return_json(context, result.to_json_str(false));
        }
        else {
            json_result result = json_result(1001,
                Json::Value(Json::nullValue), "Network error, please retry.");
            return_json(context, result.to_json_str(false));
        }
    }

    if (lpParam != NULL) {
        delete lpParam;
        lpParam = NULL;
    }
}
Exemple #2
0
void command_fail(struct command *cmd, const char *fmt, ...)
{
	char *quote, *error;
	struct json_connection *jcon = cmd->jcon;
	va_list ap;

	if (!jcon) {
		log_unusual(cmd->dstate->base_log,
			    "Command failed after jcon close");
		tal_free(cmd);
		return;
	}

	va_start(ap, fmt);
	error = tal_vfmt(cmd, fmt, ap);
	va_end(ap);

	log_debug(jcon->log, "Failing: %s", error);

	/* Remove " */
	while ((quote = strchr(error, '"')) != NULL)
		*quote = '\'';

	/* Now surround in quotes. */
	quote = tal_fmt(cmd, "\"%s\"", error);

	assert(jcon->current == cmd);
	json_result(jcon, cmd->id, "null", quote);
	jcon->current = tal_free(cmd);
}
void command_success(struct command *cmd, struct json_result *result)
{
    struct json_connection *jcon = cmd->jcon;

    if (!jcon) {
        log_unusual(cmd->dstate->base_log,
                    "Command returned result after jcon close");
        tal_free(cmd);
        return;
    }
    assert(jcon->current == cmd);
    json_result(jcon, cmd->id, json_result_string(result), "null");
    jcon->current = tal_free(cmd);
}
Exemple #4
0
static void json_command_malformed(struct json_connection *jcon,
				   const char *id,
				   const char *error)
{
	return json_result(jcon, id, "null", error);
}