net.dv8tion.jda.core.events.http.HttpRequestEvent.java Source code

Java tutorial

Introduction

Here is the source code for net.dv8tion.jda.core.events.http.HttpRequestEvent.java

Source

/*
 *     Copyright 2015-2017 Austin Keener & Michael Ritter & Florian Spie
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package net.dv8tion.jda.core.events.http;

import net.dv8tion.jda.core.events.Event;
import net.dv8tion.jda.core.requests.Request;
import net.dv8tion.jda.core.requests.Response;
import net.dv8tion.jda.core.requests.RestAction;
import net.dv8tion.jda.core.requests.Route.CompiledRoute;
import okhttp3.Headers;
import okhttp3.RequestBody;
import okhttp3.ResponseBody;
import org.json.JSONArray;
import org.json.JSONObject;

import java.util.Collections;
import java.util.Set;

/**
 * Fired when a Rest request has been executed.
 * 
 * <p>Depending on the request and its result not all values have to be populated.
 */
public class HttpRequestEvent extends Event {
    private final Request<?> request;
    private final Response response;

    public HttpRequestEvent(final Request<?> request, final Response response) {
        super(request.getJDA());

        this.request = request;
        this.response = response;
    }

    public Request<?> getRequest() {
        return this.request;
    }

    public RequestBody getRequestBody() {
        return this.request.getBody();
    }

    public Object getRequestBodyRaw() {
        return this.request.getRawBody();
    }

    public Headers getRequestHeaders() {
        return this.response.getRawResponse().request().headers();
    }

    public okhttp3.Request getRequestRaw() {
        return this.response == null ? null : this.response.getRawResponse().request();
    }

    public Response getResponse() {
        return this.response;
    }

    public ResponseBody getResponseBody() {
        return this.response == null ? null : this.response.getRawResponse().body();
    }

    public JSONArray getResponseBodyAsArray() {
        return this.response == null ? null : this.response.getArray();
    }

    public JSONObject getResponseBodyAsObject() {
        return this.response == null ? null : this.response.getObject();
    }

    public String getResponseBodyAsString() {
        return this.response == null ? null : this.response.getString();
    }

    public Headers getResponseHeaders() {
        return this.response == null ? null
                : this.response.getRawResponse() == null ? null : this.response.getRawResponse().headers();
    }

    public okhttp3.Response getResponseRaw() {
        return this.response == null ? null : this.response.getRawResponse();
    }

    public Set<String> getCFRays() {
        return this.response == null ? Collections.emptySet() : this.response.getCFRays();
    }

    public RestAction<?> getRestAction() {
        return this.request.getRestAction();
    }

    public CompiledRoute getRoute() {
        return this.request.getRoute();
    }

    public boolean isRateLimit() {
        return this.response.isRateLimit();
    }

}