/*
* Copyright 2020 Smartling, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this work except in compliance with the License.
* You may obtain a copy of the License in the LICENSE file, or 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.
*/
import com.smartling.api.files.v2.FilesApi;
import com.smartling.api.files.v2.FilesApiFactory;
import com.smartling.api.files.v2.pto.DeleteFilePTO;
import com.smartling.api.files.v2.pto.DownloadTranslationPTO;
import com.smartling.api.files.v2.pto.FileItemPTO;
import com.smartling.api.files.v2.pto.FileLocaleLastModifiedPTO;
import com.smartling.api.files.v2.pto.FileStatusResponse;
import com.smartling.api.files.v2.pto.FileType;
import com.smartling.api.files.v2.pto.GetFileLastModifiedPTO;
import com.smartling.api.files.v2.pto.GetFilesListPTO;
import com.smartling.api.files.v2.pto.RenameFilePto;
import com.smartling.api.files.v2.pto.RetrievalType;
import com.smartling.api.files.v2.pto.UploadFilePTO;
import com.smartling.api.files.v2.pto.UploadFileResponse;
import com.smartling.api.v2.authentication.AuthenticationApi;
import com.smartling.api.v2.authentication.AuthenticationApiFactory;
import com.smartling.api.v2.client.ClientFactory;
import com.smartling.api.v2.client.DefaultClientConfiguration;
import com.smartling.api.v2.client.HttpClientConfiguration;
import com.smartling.api.v2.client.auth.Authenticator;
import com.smartling.api.v2.client.auth.BearerAuthSecretFilter;
import com.smartling.api.v2.client.useragent.LibNameVersionHolder;
import com.smartling.api.v2.response.ListResponse;
import org.apache.commons.io.IOUtils;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Collections;
import static java.nio.charset.StandardCharsets.UTF_8;
public class FilesApiExample
{
private static final String USER_ID = "YOUR-USER-ID";
private static final String USER_SECRET = "YOUR-USER-SECRET";
private static final String PROJECT_ID = "YOUR-PROJECT-ID";
private static final String LOCALE = "YOUR-LOCALE";
private static final String PATH_TO_FILE = "path-to-a-file";
private static final FileType FILE_TYPE = FileType.JAVA_PROPERTIES;
private static final String CALLBACK_URL = null;
public static void main(String[] args) throws Exception
{
FilesApi filesApi = createFilesApiClient(USER_ID, USER_SECRET);
File file = new File(PATH_TO_FILE);
String fileUri = file.getName();
// upload the file
UploadFilePTO uploadFilePto = UploadFilePTO.builder()
.file(new FileInputStream(PATH_TO_FILE))
.fileUri(fileUri)
.fileType(FILE_TYPE)
.localeIdsToAuthorize(Collections.singletonList("LOCALE"))
.callbackUrl(CALLBACK_URL)
.build();
UploadFileResponse uploadFileResponse = filesApi.uploadFile(PROJECT_ID, uploadFilePto);
System.out.println(uploadFileResponse);
// get last modified date
GetFileLastModifiedPTO getFileLastModifiedPTO = GetFileLastModifiedPTO.builder()
.fileUri(fileUri)
.build();
FileLocaleLastModifiedPTO fileLocaleLastModified = filesApi.getFileLocaleLastModified(PROJECT_ID, LOCALE, getFileLastModifiedPTO);
System.out.println(fileLocaleLastModified);
// rename the file
final String newFileUri = "newTestFileUri";
RenameFilePto renameFilePto = RenameFilePto.builder()
.fileUri(fileUri)
.newFileUri(newFileUri)
.build();
filesApi.renameFile(PROJECT_ID, renameFilePto);
// run a search for files
GetFilesListPTO getFilesListPTO = GetFilesListPTO.builder()
.uriMask(newFileUri)
.build();
ListResponse