All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.lajospolya.spotifyapiwrapper.client.service.ISpotifyApiClientService Maven / Gradle / Ivy

Go to download

This project wraps the Spotify public API in order to allow users to intuitively use it

There is a newer version: 3.0.RELEASE
Show newest version
package com.lajospolya.spotifyapiwrapper.client.service;

import com.lajospolya.spotifyapiwrapper.spotifyexception.SpotifyResponseException;

import java.io.IOException;
import java.lang.reflect.Type;
import java.net.http.HttpRequest;
import java.util.concurrent.CompletableFuture;

/**
 * @author Lajos Polya
 *
 * This interface has all helper methods for the SpotifyClient
 */
public interface ISpotifyApiClientService
{
    /**
     * Sends the request and returns a serialized version of the response
     * @param request the request to be sent
     * @param typeOfReturnValue the type of the response body of the request
     * @param  should be equivalent to typeOfReturnValue
     * @return returns the serialized response body of the request
     * @throws SpotifyResponseException when the response header has an erroneous status code
     * @throws IOException delegated exception
     * @throws InterruptedException delegated exception
     */
     T sendRequestAndFetchResponse(HttpRequest request, Type typeOfReturnValue) throws IOException, InterruptedException, SpotifyResponseException;

    /**
     * Sends the request and returns a serialized version of the response
     * @param request the request to be sent
     * @param typeOfReturnValue the type of the response body of the request
     * @param  should be equivalent to typeOfReturnValue
     * @return returns the serialized response body of the request
     * @throws SpotifyResponseException when the response header has an erroneous status code
     */
     CompletableFuture sendRequestAndFetchResponseAsync(HttpRequest request, Type typeOfReturnValue) throws SpotifyResponseException;

    /**
     * Base64 encodes the clientId and clientSecret in the format clientId:clientSecret
     * @param clientId the client id of a Spotify app retrieved from the Spotify Developer Dashboard
     * @param clientSecret the secret of a Spotify app retrieved from the Spotify Developer Dashboard
     * @return Base64 encoded String with the format of clientId:clientSecret
     */
    String getBase64EncodedAuthorizationKey(String clientId, String clientSecret);

    /**
     * Checks if the authorization token has expired
     * @param timeOfAuthorization time of authorization in milliseconds
     * @param expiredIn numer of minutes the token is authorized for
     * @return true if time since authorization is greater than the time the token is set to expire, false otherwise
     */
    Boolean hasTokenExpired(Long timeOfAuthorization, Integer expiredIn);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy