All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.google.firebase.projectmanagement.HttpHelper Maven / Gradle / Ivy
/*
* Copyright 2018 Google Inc.
*
* 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.google.firebase.projectmanagement;
import com.google.api.client.http.HttpMethods;
import com.google.api.client.http.HttpRequestFactory;
import com.google.api.client.http.HttpResponseInterceptor;
import com.google.api.client.json.JsonFactory;
import com.google.firebase.FirebaseException;
import com.google.firebase.IncomingHttpResponse;
import com.google.firebase.internal.AbstractPlatformErrorHandler;
import com.google.firebase.internal.ErrorHandlingHttpClient;
import com.google.firebase.internal.HttpRequestInfo;
import com.google.firebase.internal.SdkUtils;
final class HttpHelper {
private static final String CLIENT_VERSION_HEADER = "X-Client-Version";
private static final String CLIENT_VERSION = "Java/Admin/" + SdkUtils.getVersion();
private final ErrorHandlingHttpClient httpClient;
HttpHelper(JsonFactory jsonFactory, HttpRequestFactory requestFactory) {
ProjectManagementErrorHandler errorHandler = new ProjectManagementErrorHandler(jsonFactory);
this.httpClient = new ErrorHandlingHttpClient<>(requestFactory, jsonFactory, errorHandler);
}
void setInterceptor(HttpResponseInterceptor interceptor) {
httpClient.setInterceptor(interceptor);
}
IncomingHttpResponse makeGetRequest(
String url,
T parsedResponseInstance,
String requestIdentifier,
String requestIdentifierDescription) throws FirebaseProjectManagementException {
return makeRequest(
HttpRequestInfo.buildGetRequest(url),
parsedResponseInstance,
requestIdentifier,
requestIdentifierDescription);
}
IncomingHttpResponse makePostRequest(
String url,
Object payload,
T parsedResponseInstance,
String requestIdentifier,
String requestIdentifierDescription) throws FirebaseProjectManagementException {
return makeRequest(
HttpRequestInfo.buildJsonPostRequest(url, payload),
parsedResponseInstance,
requestIdentifier,
requestIdentifierDescription);
}
void makePatchRequest(
String url,
Object payload,
T parsedResponseInstance,
String requestIdentifier,
String requestIdentifierDescription) throws FirebaseProjectManagementException {
makeRequest(
HttpRequestInfo.buildJsonRequest(HttpMethods.PATCH, url, payload),
parsedResponseInstance,
requestIdentifier,
requestIdentifierDescription);
}
void makeDeleteRequest(
String url,
T parsedResponseInstance,
String requestIdentifier,
String requestIdentifierDescription) throws FirebaseProjectManagementException {
makeRequest(
HttpRequestInfo.buildDeleteRequest(url),
parsedResponseInstance,
requestIdentifier,
requestIdentifierDescription);
}
private IncomingHttpResponse makeRequest(
HttpRequestInfo baseRequest,
T parsedResponseInstance,
String requestIdentifier,
String requestIdentifierDescription) throws FirebaseProjectManagementException {
try {
baseRequest.addHeader(CLIENT_VERSION_HEADER, CLIENT_VERSION);
IncomingHttpResponse response = httpClient.send(baseRequest);
httpClient.parse(response, parsedResponseInstance);
return response;
} catch (FirebaseProjectManagementException e) {
String message = String.format(
"%s \"%s\": %s", requestIdentifierDescription, requestIdentifier, e.getMessage());
throw new FirebaseProjectManagementException(e, message);
}
}
private static class ProjectManagementErrorHandler
extends AbstractPlatformErrorHandler {
ProjectManagementErrorHandler(JsonFactory jsonFactory) {
super(jsonFactory);
}
@Override
protected FirebaseProjectManagementException createException(FirebaseException base) {
return new FirebaseProjectManagementException(base);
}
}
}