Skip to content
This repository has been archived by the owner on May 14, 2020. It is now read-only.

Commit

Permalink
#14 Extracted common method
Browse files Browse the repository at this point in the history
  • Loading branch information
axelerod committed Oct 1, 2015
1 parent 0d7b6d8 commit 748df68
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 37 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ protected String getApiResponseMessages(final ApiResponse<?> apiResponse)
return responseMessages;
}

protected <T extends Data> ApiResponse<T> getApiResponse(final String response, final TypeToken<ApiResponseWrapper<T>> responseType)
protected <T extends Data> ApiResponse<T> parseApiResponse(final String response, final TypeToken<ApiResponseWrapper<T>> responseType)
{
return JsonReader.parseApiResponse(response, responseType);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import com.google.gson.reflect.TypeToken;
import com.smartling.api.sdk.dto.ApiResponse;
import com.smartling.api.sdk.dto.ApiResponseWrapper;
import com.smartling.api.sdk.dto.Data;
import com.smartling.api.sdk.dto.EmptyResponse;
import com.smartling.api.sdk.dto.file.FileLastModified;
import com.smartling.api.sdk.dto.file.FileList;
Expand Down Expand Up @@ -149,8 +150,7 @@ public ApiResponse<FileList> getFilesList(final FileListSearchParams fileListSea
final String params = buildFileListParams(fileListSearchParams);
final HttpGet getRequest = new HttpGet(buildUrl(GET_FILE_LIST_API_URL, params));

final StringResponse response = getStringResponse(getRequest);
final ApiResponse apiResponse = getApiResponse(response.getContents(), new TypeToken<ApiResponseWrapper<FileList>>() {});
final ApiResponse<FileList> apiResponse = getResponse(getRequest, new TypeToken<ApiResponseWrapper<FileList>>() {});
logger.debug(String.format("Get files list: %s. %s", apiResponse.getCode(), getApiResponseMessages(apiResponse)));

return apiResponse;
Expand All @@ -159,23 +159,17 @@ public ApiResponse<FileList> getFilesList(final FileListSearchParams fileListSea
@Override
public ApiResponse<FileStatus> getFileStatus(final String fileUri, final String locale) throws ApiException
{
logger.debug(String.format("Get file satatus: fileUri = %s, projectId = %s, apiKey = %s, locale = %s", fileUri, this.projectId, maskApiKey(this.apiKey), locale));
logger.debug(String.format("Get file status: fileUri = %s, projectId = %s, apiKey = %s, locale = %s", fileUri, this.projectId, maskApiKey(this.apiKey), locale));

final String params = buildParamsQuery(new BasicNameValuePair(FILE_URI, fileUri), new BasicNameValuePair(LOCALE, locale));
final HttpGet getRequest = new HttpGet(buildUrl(GET_FILE_STATUS_API_URL, params));

final ApiResponse apiResponse = getApiResponse(getRequest);
final ApiResponse<FileStatus> apiResponse = getResponse(getRequest, new TypeToken<ApiResponseWrapper<FileStatus>>() {});
logger.debug(String.format("Get file status: %s. %s", apiResponse.getCode(), getApiResponseMessages(apiResponse)));

return apiResponse;
}

private ApiResponse getApiResponse(final HttpGet getRequest) throws ApiException
{
final StringResponse response = getStringResponse(getRequest);
return getApiResponse(response.getContents(), new TypeToken<ApiResponseWrapper<FileStatus>>() {});
}

@Override
public ApiResponse<UploadFileData> uploadFile(final File fileToUpload, final String charsetName, final FileUploadParameterBuilder fileUploadParameterBuilder)
throws ApiException
Expand All @@ -201,8 +195,7 @@ public ApiResponse<EmptyResponse> deleteFile(final String fileUri) throws ApiExc
final String params = buildParamsQuery(new BasicNameValuePair(FILE_URI, fileUri));
final HttpDelete httpDeleteFileRequest = new HttpDelete(buildUrl(DELETE_FILE_URL, params));

final StringResponse response = getStringResponse(httpDeleteFileRequest);
final ApiResponse apiResponse = getApiResponse(response.getContents(), new TypeToken<ApiResponseWrapper<EmptyResponse>>() {});
final ApiResponse<EmptyResponse> apiResponse = getResponse(httpDeleteFileRequest, new TypeToken<ApiResponseWrapper<EmptyResponse>>() {});
logger.debug(String.format("Delete file: %s. %s", apiResponse.getCode(), getApiResponseMessages(apiResponse)));

return apiResponse;
Expand All @@ -217,18 +210,12 @@ public ApiResponse<EmptyResponse> renameFile(final String fileUri, final String
final String params = buildParamsQuery(new BasicNameValuePair(FILE_URI, fileUri), new BasicNameValuePair(NEW_FILE_URI, newFileUri));
final HttpPost httpPostRequest = new HttpPost(buildUrl(RENAME_FILE_URL, params));

final StringResponse response = getStringResponse(httpPostRequest);
final ApiResponse apiResponse = getApiResponse(response.getContents(), new TypeToken<ApiResponseWrapper<EmptyResponse>>() {});
final ApiResponse<EmptyResponse> apiResponse = getResponse(httpPostRequest, new TypeToken<ApiResponseWrapper<EmptyResponse>>() {});
logger.debug(String.format("Rename file: %s. %s", apiResponse.getCode(), getApiResponseMessages(apiResponse)));

return apiResponse;
}

private StringResponse getStringResponse(final HttpRequestBase httpRequest) throws ApiException
{
return getHttpUtils().executeHttpCall(httpRequest, proxyConfiguration);
}

@Override
public ApiResponse<FileLastModified> getLastModified(final String fileUri, final Date lastModifiedAfter, final String locale) throws ApiException
{
Expand All @@ -242,41 +229,50 @@ public ApiResponse<FileLastModified> getLastModified(final String fileUri, final
);
final HttpGet getRequest = new HttpGet(buildUrl(GET_FILE_LAST_MODIFIED, params));

final StringResponse response = getStringResponse(getRequest);
final ApiResponse apiResponse = getApiResponse(response.getContents(), new TypeToken<ApiResponseWrapper<FileLastModified>>() {});
final ApiResponse<FileLastModified> apiResponse = getResponse(getRequest, new TypeToken<ApiResponseWrapper<FileLastModified>>() {});
logger.debug(String.format("Get last modified: %s. %s", apiResponse.getCode(), getApiResponseMessages(apiResponse)));

return apiResponse;
}

private HttpPost createFileUploadHttpPostRequest(final String apiParameters, final ContentBody contentBody)
{
final MultipartEntityBuilder multipartEntityBuilder = MultipartEntityBuilder.create()
.addPart(FileApiParams.FILE, contentBody);

final HttpPost httpPost = new HttpPost(String.format(UPLOAD_FILE_API_URL, baseApiUrl) + apiParameters);
httpPost.setEntity(multipartEntityBuilder.build());

return httpPost;
}

private ApiResponse<UploadFileData> uploadFile(final FileUploadParameterBuilder fileUploadParameterBuilder, final ContentBody contentBody)
throws ApiException
{
logger.debug(String.format("Upload file: fileUri = %s, projectId = %s, apiKey = %s, localesToApprove = %s",
fileUploadParameterBuilder.getFileUri(), this.projectId, maskApiKey(this.apiKey), StringUtils.join(fileUploadParameterBuilder.getLocalesToApprove(), ", ")));
fileUploadParameterBuilder.getFileUri(), this.projectId, maskApiKey(this.apiKey), StringUtils.join(fileUploadParameterBuilder.getLocalesToApprove(), ", ")));

final List<NameValuePair> paramsList = fileUploadParameterBuilder.getNameValueList();
final String params = buildParamsQuery(paramsList.toArray(new NameValuePair[paramsList.size()]));
final HttpPost httpPostFile = createFileUploadHttpPostRequest(params, contentBody);

final StringResponse response = getStringResponse(httpPostFile);
final ApiResponse apiResponse = getApiResponse(response.getContents(), new TypeToken<ApiResponseWrapper<UploadFileData>>() {});
final ApiResponse<UploadFileData> apiResponse = getResponse(httpPostFile, new TypeToken<ApiResponseWrapper<UploadFileData>>() {});
logger.debug(String.format("Upload file: %s. %s", apiResponse.getCode(), getApiResponseMessages(apiResponse)));

return apiResponse;
}

private <T extends Data> ApiResponse<T> getResponse(final HttpRequestBase httpRequest, final TypeToken<ApiResponseWrapper<T>> typeToken) throws ApiException
{
final StringResponse response = getStringResponse(httpRequest);
return parseApiResponse(response.getContents(), typeToken);
}

private StringResponse getStringResponse(final HttpRequestBase httpRequest) throws ApiException
{
return getHttpUtils().executeHttpCall(httpRequest, proxyConfiguration);
}

private HttpPost createFileUploadHttpPostRequest(final String apiParameters, final ContentBody contentBody)
{
final MultipartEntityBuilder multipartEntityBuilder = MultipartEntityBuilder.create()
.addPart(FileApiParams.FILE, contentBody);

final HttpPost httpPost = new HttpPost(String.format(UPLOAD_FILE_API_URL, baseApiUrl) + apiParameters);
httpPost.setEntity(multipartEntityBuilder.build());

return httpPost;
}

private String buildFileListParams(final FileListSearchParams fileListSearchParams)
{
final List<BasicNameValuePair> nameValuePairs = new ArrayList<>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ this.projectId, maskApiKey(this.apiKey)
HttpGet getRequest = new HttpGet(buildUrl(GET_PROJECT_LOCALES_API_URL, params));

StringResponse response = getHttpUtils().executeHttpCall(getRequest, proxyConfiguration);
ApiResponse apiResponse = getApiResponse(response.getContents(), new TypeToken<ApiResponseWrapper<ProjectLocaleList>>() {});
ApiResponse apiResponse = parseApiResponse(response.getContents(), new TypeToken<ApiResponseWrapper<ProjectLocaleList>>() {});
logger.debug(String.format("Get last modified: %s. %s", apiResponse.getCode(), getApiResponseMessages(apiResponse)));

return apiResponse;
Expand Down

0 comments on commit 748df68

Please sign in to comment.