com.mallorcasoftware.openweatherclient.api.DefaultApi.java Source code

Java tutorial

Introduction

Here is the source code for com.mallorcasoftware.openweatherclient.api.DefaultApi.java

Source

/**
 * OpenWeatherMap Client
 * No descripton provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
 *
 * OpenAPI spec version: 0.0.1
 * 
 *
 * NOTE: This class is auto generated by the swagger code generator program.
 * https://github.com/swagger-api/swagger-codegen.git
 * Do not edit the class manually.
 *
 * 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 com.mallorcasoftware.openweatherclient.api;

import com.mallorcasoftware.openweatherclient.ApiCallback;
import com.mallorcasoftware.openweatherclient.ApiClient;
import com.mallorcasoftware.openweatherclient.ApiException;
import com.mallorcasoftware.openweatherclient.ApiResponse;
import com.mallorcasoftware.openweatherclient.Configuration;
import com.mallorcasoftware.openweatherclient.Pair;
import com.mallorcasoftware.openweatherclient.ProgressRequestBody;
import com.mallorcasoftware.openweatherclient.ProgressResponseBody;

import com.google.gson.reflect.TypeToken;

import java.io.IOException;

import com.mallorcasoftware.openweatherclient.model.CurrentWeatherDataResponse;
import com.mallorcasoftware.openweatherclient.model.ForecastDataResponse;

import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class DefaultApi {
    private ApiClient apiClient;

    public DefaultApi() {
        this(Configuration.getDefaultApiClient());
    }

    public DefaultApi(ApiClient apiClient) {
        this.apiClient = apiClient;
    }

    public ApiClient getApiClient() {
        return apiClient;
    }

    public void setApiClient(ApiClient apiClient) {
        this.apiClient = apiClient;
    }

    /* Build call for getCurrentWeatherData */
    private com.squareup.okhttp.Call getCurrentWeatherDataCall(String q, String id, String units, String lang,
            final ProgressResponseBody.ProgressListener progressListener,
            final ProgressRequestBody.ProgressRequestListener progressRequestListener) throws ApiException {
        Object localVarPostBody = null;

        // create path and map variables
        String localVarPath = "/weather".replaceAll("\\{format\\}", "json");

        List<Pair> localVarQueryParams = new ArrayList<Pair>();
        if (q != null)
            localVarQueryParams.addAll(apiClient.parameterToPairs("", "q", q));
        if (id != null)
            localVarQueryParams.addAll(apiClient.parameterToPairs("", "id", id));
        if (units != null)
            localVarQueryParams.addAll(apiClient.parameterToPairs("", "units", units));
        if (lang != null)
            localVarQueryParams.addAll(apiClient.parameterToPairs("", "lang", lang));

        Map<String, String> localVarHeaderParams = new HashMap<String, String>();

        Map<String, Object> localVarFormParams = new HashMap<String, Object>();

        final String[] localVarAccepts = { "application/json" };
        final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);
        if (localVarAccept != null)
            localVarHeaderParams.put("Accept", localVarAccept);

        final String[] localVarContentTypes = { "application/json" };
        final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);
        localVarHeaderParams.put("Content-Type", localVarContentType);

        if (progressListener != null) {
            apiClient.getHttpClient().networkInterceptors().add(new com.squareup.okhttp.Interceptor() {
                @Override
                public com.squareup.okhttp.Response intercept(com.squareup.okhttp.Interceptor.Chain chain)
                        throws IOException {
                    com.squareup.okhttp.Response originalResponse = chain.proceed(chain.request());
                    return originalResponse.newBuilder()
                            .body(new ProgressResponseBody(originalResponse.body(), progressListener)).build();
                }
            });
        }

        String[] localVarAuthNames = new String[] { "UserSecurity" };
        return apiClient.buildCall(localVarPath, "GET", localVarQueryParams, localVarPostBody, localVarHeaderParams,
                localVarFormParams, localVarAuthNames, progressRequestListener);
    }

    /**
     * 
     * Access current weather data for any location on Earth including over 200,000 cities! Current weather is frequently updated based on global models and data from more than 40,000 weather stations. Data is available in JSON, XML, or HTML format. 
     * @param q By city name (optional)
     * @param id By city id (optional)
     * @param units Standard, metric, and imperial units are available. (optional)
     * @param lang You can use lang parameter to get the output in your language. (optional)
     * @return CurrentWeatherDataResponse
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     */
    public CurrentWeatherDataResponse getCurrentWeatherData(String q, String id, String units, String lang)
            throws ApiException {
        ApiResponse<CurrentWeatherDataResponse> resp = getCurrentWeatherDataWithHttpInfo(q, id, units, lang);
        return resp.getData();
    }

    /**
     * 
     * Access current weather data for any location on Earth including over 200,000 cities! Current weather is frequently updated based on global models and data from more than 40,000 weather stations. Data is available in JSON, XML, or HTML format. 
     * @param q By city name (optional)
     * @param id By city id (optional)
     * @param units Standard, metric, and imperial units are available. (optional)
     * @param lang You can use lang parameter to get the output in your language. (optional)
     * @return ApiResponse&lt;CurrentWeatherDataResponse&gt;
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     */
    public ApiResponse<CurrentWeatherDataResponse> getCurrentWeatherDataWithHttpInfo(String q, String id,
            String units, String lang) throws ApiException {
        com.squareup.okhttp.Call call = getCurrentWeatherDataCall(q, id, units, lang, null, null);
        Type localVarReturnType = new TypeToken<CurrentWeatherDataResponse>() {
        }.getType();
        return apiClient.execute(call, localVarReturnType);
    }

    /**
     *  (asynchronously)
     * Access current weather data for any location on Earth including over 200,000 cities! Current weather is frequently updated based on global models and data from more than 40,000 weather stations. Data is available in JSON, XML, or HTML format. 
     * @param q By city name (optional)
     * @param id By city id (optional)
     * @param units Standard, metric, and imperial units are available. (optional)
     * @param lang You can use lang parameter to get the output in your language. (optional)
     * @param callback The callback to be executed when the API call finishes
     * @return The request call
     * @throws ApiException If fail to process the API call, e.g. serializing the request body object
     */
    public com.squareup.okhttp.Call getCurrentWeatherDataAsync(String q, String id, String units, String lang,
            final ApiCallback<CurrentWeatherDataResponse> callback) throws ApiException {

        ProgressResponseBody.ProgressListener progressListener = null;
        ProgressRequestBody.ProgressRequestListener progressRequestListener = null;

        if (callback != null) {
            progressListener = new ProgressResponseBody.ProgressListener() {
                @Override
                public void update(long bytesRead, long contentLength, boolean done) {
                    callback.onDownloadProgress(bytesRead, contentLength, done);
                }
            };

            progressRequestListener = new ProgressRequestBody.ProgressRequestListener() {
                @Override
                public void onRequestProgress(long bytesWritten, long contentLength, boolean done) {
                    callback.onUploadProgress(bytesWritten, contentLength, done);
                }
            };
        }

        com.squareup.okhttp.Call call = getCurrentWeatherDataCall(q, id, units, lang, progressListener,
                progressRequestListener);
        Type localVarReturnType = new TypeToken<CurrentWeatherDataResponse>() {
        }.getType();
        apiClient.executeAsync(call, localVarReturnType, callback);
        return call;
    }

    /* Build call for getForecast */
    private com.squareup.okhttp.Call getForecastCall(String q, String id, String units, String lang,
            final ProgressResponseBody.ProgressListener progressListener,
            final ProgressRequestBody.ProgressRequestListener progressRequestListener) throws ApiException {
        Object localVarPostBody = null;

        // create path and map variables
        String localVarPath = "/forecast".replaceAll("\\{format\\}", "json");

        List<Pair> localVarQueryParams = new ArrayList<Pair>();
        if (q != null)
            localVarQueryParams.addAll(apiClient.parameterToPairs("", "q", q));
        if (id != null)
            localVarQueryParams.addAll(apiClient.parameterToPairs("", "id", id));
        if (units != null)
            localVarQueryParams.addAll(apiClient.parameterToPairs("", "units", units));
        if (lang != null)
            localVarQueryParams.addAll(apiClient.parameterToPairs("", "lang", lang));

        Map<String, String> localVarHeaderParams = new HashMap<String, String>();

        Map<String, Object> localVarFormParams = new HashMap<String, Object>();

        final String[] localVarAccepts = { "application/json" };
        final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);
        if (localVarAccept != null)
            localVarHeaderParams.put("Accept", localVarAccept);

        final String[] localVarContentTypes = { "application/json" };
        final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);
        localVarHeaderParams.put("Content-Type", localVarContentType);

        if (progressListener != null) {
            apiClient.getHttpClient().networkInterceptors().add(new com.squareup.okhttp.Interceptor() {
                @Override
                public com.squareup.okhttp.Response intercept(com.squareup.okhttp.Interceptor.Chain chain)
                        throws IOException {
                    com.squareup.okhttp.Response originalResponse = chain.proceed(chain.request());
                    return originalResponse.newBuilder()
                            .body(new ProgressResponseBody(originalResponse.body(), progressListener)).build();
                }
            });
        }

        String[] localVarAuthNames = new String[] { "UserSecurity" };
        return apiClient.buildCall(localVarPath, "GET", localVarQueryParams, localVarPostBody, localVarHeaderParams,
                localVarFormParams, localVarAuthNames, progressRequestListener);
    }

    /**
     * 
     * Access current weather data for any location on Earth including over 200,000 cities! Current weather is frequently updated based on global models and data from more than 40,000 weather stations. Data is available in JSON, XML, or HTML format. 
     * @param q By city name (optional)
     * @param id By city id (optional)
     * @param units Standard, metric, and imperial units are available. (optional)
     * @param lang You can use lang parameter to get the output in your language. (optional)
     * @return ForecastDataResponse
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     */
    public ForecastDataResponse getForecast(String q, String id, String units, String lang) throws ApiException {
        ApiResponse<ForecastDataResponse> resp = getForecastWithHttpInfo(q, id, units, lang);
        return resp.getData();
    }

    /**
     * 
     * Access current weather data for any location on Earth including over 200,000 cities! Current weather is frequently updated based on global models and data from more than 40,000 weather stations. Data is available in JSON, XML, or HTML format. 
     * @param q By city name (optional)
     * @param id By city id (optional)
     * @param units Standard, metric, and imperial units are available. (optional)
     * @param lang You can use lang parameter to get the output in your language. (optional)
     * @return ApiResponse&lt;ForecastDataResponse&gt;
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     */
    public ApiResponse<ForecastDataResponse> getForecastWithHttpInfo(String q, String id, String units, String lang)
            throws ApiException {
        com.squareup.okhttp.Call call = getForecastCall(q, id, units, lang, null, null);
        Type localVarReturnType = new TypeToken<ForecastDataResponse>() {
        }.getType();
        return apiClient.execute(call, localVarReturnType);
    }

    /**
     *  (asynchronously)
     * Access current weather data for any location on Earth including over 200,000 cities! Current weather is frequently updated based on global models and data from more than 40,000 weather stations. Data is available in JSON, XML, or HTML format. 
     * @param q By city name (optional)
     * @param id By city id (optional)
     * @param units Standard, metric, and imperial units are available. (optional)
     * @param lang You can use lang parameter to get the output in your language. (optional)
     * @param callback The callback to be executed when the API call finishes
     * @return The request call
     * @throws ApiException If fail to process the API call, e.g. serializing the request body object
     */
    public com.squareup.okhttp.Call getForecastAsync(String q, String id, String units, String lang,
            final ApiCallback<ForecastDataResponse> callback) throws ApiException {

        ProgressResponseBody.ProgressListener progressListener = null;
        ProgressRequestBody.ProgressRequestListener progressRequestListener = null;

        if (callback != null) {
            progressListener = new ProgressResponseBody.ProgressListener() {
                @Override
                public void update(long bytesRead, long contentLength, boolean done) {
                    callback.onDownloadProgress(bytesRead, contentLength, done);
                }
            };

            progressRequestListener = new ProgressRequestBody.ProgressRequestListener() {
                @Override
                public void onRequestProgress(long bytesWritten, long contentLength, boolean done) {
                    callback.onUploadProgress(bytesWritten, contentLength, done);
                }
            };
        }

        com.squareup.okhttp.Call call = getForecastCall(q, id, units, lang, progressListener,
                progressRequestListener);
        Type localVarReturnType = new TypeToken<ForecastDataResponse>() {
        }.getType();
        apiClient.executeAsync(call, localVarReturnType, callback);
        return call;
    }
}