Search in sources :

Example 41 with RepositoryFileDto

use of org.pentaho.platform.repository2.unified.webservices.RepositoryFileDto in project pentaho-platform by pentaho.

the class FileService method doGetMetadata.

/**
 * Get metadata for a file by path id
 *
 * @param pathId
 * @return
 */
public List<StringKeyStringValueDto> doGetMetadata(String pathId) throws FileNotFoundException {
    List<StringKeyStringValueDto> list = null;
    String path = null;
    if (pathId == null || pathId.equals(FileUtils.PATH_SEPARATOR)) {
        path = FileUtils.PATH_SEPARATOR;
    } else {
        if (!pathId.startsWith(FileUtils.PATH_SEPARATOR)) {
            path = idToPath(pathId);
        }
    }
    final RepositoryFileDto file = getRepoWs().getFile(path);
    if (file == null) {
        throw new FileNotFoundException();
    }
    list = getRepoWs().getFileMetadata(file.getId());
    if (list != null) {
        boolean hasSchedulable = false;
        for (StringKeyStringValueDto value : list) {
            if (value.getKey().equals(RepositoryFile.SCHEDULABLE_KEY)) {
                hasSchedulable = true;
                break;
            }
        }
        if (!hasSchedulable) {
            StringKeyStringValueDto schedPerm = new StringKeyStringValueDto(RepositoryFile.SCHEDULABLE_KEY, "true");
            list.add(schedPerm);
        }
        // check file object for hidden value and add it to the list
        list.add(new StringKeyStringValueDto(RepositoryFile.HIDDEN_KEY, String.valueOf(file.isHidden())));
    }
    return list;
}
Also used : StringKeyStringValueDto(org.pentaho.platform.repository2.unified.webservices.StringKeyStringValueDto) RepositoryFileDto(org.pentaho.platform.repository2.unified.webservices.RepositoryFileDto) FileNotFoundException(java.io.FileNotFoundException)

Example 42 with RepositoryFileDto

use of org.pentaho.platform.repository2.unified.webservices.RepositoryFileDto in project pentaho-platform by pentaho.

the class FileService method doSetContentCreator.

/**
 * Store content creator of the selected repository file
 *
 * @param pathId colon separated path for the repository file
 * <pre function="syntax.xml">
 *    :path:to:file:id
 * </pre>
 * @param contentCreator repository file
 * <pre function="syntax.xml">
 *   <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 *     &lt;repositoryFileDto&gt;
 *     &lt;createdDate&gt;1402911997019&lt;/createdDate&gt;
 *     &lt;fileSize&gt;3461&lt;/fileSize&gt;
 *     &lt;folder&gt;false&lt;/folder&gt;
 *     &lt;hidden&gt;false&lt;/hidden&gt;
 *     &lt;id&gt;ff11ac89-7eda-4c03-aab1-e27f9048fd38&lt;/id&gt;
 *     &lt;lastModifiedDate&gt;1406647160536&lt;/lastModifiedDate&gt;
 *     &lt;locale&gt;en&lt;/locale&gt;
 *     &lt;localePropertiesMapEntries&gt;
 *       &lt;localeMapDto&gt;
 *         &lt;locale&gt;default&lt;/locale&gt;
 *         &lt;properties&gt;
 *           &lt;stringKeyStringValueDto&gt;
 *             &lt;key&gt;file.title&lt;/key&gt;
 *             &lt;value&gt;myFile&lt;/value&gt;
 *           &lt;/stringKeyStringValueDto&gt;
 *           &lt;stringKeyStringValueDto&gt;
 *             &lt;key&gt;jcr:primaryType&lt;/key&gt;
 *             &lt;value&gt;nt:unstructured&lt;/value&gt;
 *           &lt;/stringKeyStringValueDto&gt;
 *           &lt;stringKeyStringValueDto&gt;
 *             &lt;key&gt;title&lt;/key&gt;
 *             &lt;value&gt;myFile&lt;/value&gt;
 *           &lt;/stringKeyStringValueDto&gt;
 *           &lt;stringKeyStringValueDto&gt;
 *             &lt;key&gt;file.description&lt;/key&gt;
 *             &lt;value&gt;myFile Description&lt;/value&gt;
 *           &lt;/stringKeyStringValueDto&gt;
 *         &lt;/properties&gt;
 *       &lt;/localeMapDto&gt;
 *     &lt;/localePropertiesMapEntries&gt;
 *     &lt;locked&gt;false&lt;/locked&gt;
 *     &lt;name&gt;myFile.prpt&lt;/name&gt;&lt;/name&gt;
 *     &lt;originalParentFolderPath&gt;/public/admin&lt;/originalParentFolderPath&gt;
 *     &lt;ownerType&gt;-1&lt;/ownerType&gt;
 *     &lt;path&gt;/public/admin/ff11ac89-7eda-4c03-aab1-e27f9048fd38&lt;/path&gt;
 *     &lt;title&gt;myFile&lt;/title&gt;
 *     &lt;versionId&gt;1.9&lt;/versionId&gt;
 *     &lt;versioned&gt;true&lt;/versioned&gt;
 *   &lt;/repositoryFileAclDto&gt;
 * </pre>
 * @throws FileNotFoundException
 */
public void doSetContentCreator(String pathId, RepositoryFileDto contentCreator) throws FileNotFoundException {
    RepositoryFileDto file = getRepoWs().getFile(idToPath(pathId));
    if (file == null) {
        throw new FileNotFoundException();
    }
    try {
        Map<String, Serializable> fileMetadata = getRepository().getFileMetadata(file.getId());
        fileMetadata.put(PentahoJcrConstants.PHO_CONTENTCREATOR, contentCreator.getId());
        getRepository().setFileMetadata(file.getId(), fileMetadata);
    } catch (Exception e) {
        throw new InternalError();
    }
}
Also used : RepositoryFileDto(org.pentaho.platform.repository2.unified.webservices.RepositoryFileDto) Serializable(java.io.Serializable) FileNotFoundException(java.io.FileNotFoundException) GeneralSecurityException(java.security.GeneralSecurityException) InvalidParameterException(java.security.InvalidParameterException) PentahoAccessControlException(org.pentaho.platform.api.engine.PentahoAccessControlException) UnifiedRepositoryAccessDeniedException(org.pentaho.platform.api.repository2.unified.UnifiedRepositoryAccessDeniedException) FileNotFoundException(java.io.FileNotFoundException) PlatformImportException(org.pentaho.platform.plugin.services.importer.PlatformImportException) UnsupportedEncodingException(java.io.UnsupportedEncodingException) ExportException(org.pentaho.platform.plugin.services.importexport.ExportException) IllegalSelectorException(java.nio.channels.IllegalSelectorException) IOException(java.io.IOException)

Example 43 with RepositoryFileDto

use of org.pentaho.platform.repository2.unified.webservices.RepositoryFileDto in project pentaho-platform by pentaho.

the class FileService method doSetLocaleProperties.

/**
 * Set the list of locale properties for a given locale
 *
 * @param pathId
 * @param locale
 * @param properties
 */
public void doSetLocaleProperties(String pathId, String locale, List<StringKeyStringValueDto> properties) throws Exception {
    RepositoryFileDto file = getRepoWs().getFile(idToPath(pathId));
    Properties fileProperties = new Properties();
    if (properties != null && !properties.isEmpty()) {
        for (StringKeyStringValueDto dto : properties) {
            fileProperties.put(dto.getKey(), dto.getValue());
        }
    }
    getRepoWs().setLocalePropertiesForFileByFileId(file.getId(), locale, fileProperties);
}
Also used : RepositoryFileDto(org.pentaho.platform.repository2.unified.webservices.RepositoryFileDto) StringKeyStringValueDto(org.pentaho.platform.repository2.unified.webservices.StringKeyStringValueDto) Properties(java.util.Properties)

Example 44 with RepositoryFileDto

use of org.pentaho.platform.repository2.unified.webservices.RepositoryFileDto in project pentaho-platform by pentaho.

the class FileService method getFolderFileIdsThatConflictWithSource.

public String getFolderFileIdsThatConflictWithSource(String pathToFolder, String params) {
    if (params == null) {
        throw new IllegalArgumentException("parameters cannot be null");
    }
    String[] sourceFileIds = FileUtils.convertCommaSeparatedStringToArray(params);
    List<String> conflictFileIdsList = new ArrayList<>();
    List<RepositoryFileDto> homeFolderFiles = doGetChildren(pathToFolder, null, false, true);
    for (RepositoryFileDto fileInHomeFolder : homeFolderFiles) {
        for (String sourceFileId : sourceFileIds) {
            RepositoryFile fileToRestore = getRepository().getFileById(sourceFileId);
            if (fileToRestore.getName().equals(fileInHomeFolder.getName())) {
                conflictFileIdsList.add(fileInHomeFolder.getId());
            }
        }
    }
    return getCommaSeparatedFileIds(conflictFileIdsList);
}
Also used : RepositoryFileDto(org.pentaho.platform.repository2.unified.webservices.RepositoryFileDto) ArrayList(java.util.ArrayList) RepositoryFile(org.pentaho.platform.api.repository2.unified.RepositoryFile)

Example 45 with RepositoryFileDto

use of org.pentaho.platform.repository2.unified.webservices.RepositoryFileDto in project pentaho-platform by pentaho.

the class FileService method doMoveFiles.

/**
 * Moves a list of files from its current location to another.
 * <p/>
 * Moves a list of files from its current location to another, the list should be comma separated.
 *
 * @param destPathId colon separated path for the repository file
 * <pre function="syntax.xml">
 *    :path:to:file:id
 * </pre>
 * @param params comma separated list of files to be moved
 * <pre function="syntax.xml">
 *    path1,path2,...
 * </pre>
 *
 * @return boolean <code>true</code>  if all files were moved correctly or <code>false</code> if the destiny path is
 * not available
 * @throws FileNotFoundException
 */
public void doMoveFiles(String destPathId, String params) throws FileNotFoundException {
    String idToPath = idToPath(destPathId);
    RepositoryFileDto repositoryFileDto = getRepoWs().getFile(idToPath);
    if (repositoryFileDto == null) {
        throw new FileNotFoundException(idToPath);
    }
    String[] sourceFileIds = FileUtils.convertCommaSeparatedStringToArray(params);
    int i = 0;
    try {
        for (; i < sourceFileIds.length; i++) {
            getRepoWs().moveFile(sourceFileIds[i], repositoryFileDto.getPath(), null);
        }
    } catch (IllegalArgumentException | UnifiedRepositoryAccessDeniedException e) {
        throw e;
    } catch (Exception e) {
        throw new InternalError();
    }
}
Also used : RepositoryFileDto(org.pentaho.platform.repository2.unified.webservices.RepositoryFileDto) UnifiedRepositoryAccessDeniedException(org.pentaho.platform.api.repository2.unified.UnifiedRepositoryAccessDeniedException) FileNotFoundException(java.io.FileNotFoundException) GeneralSecurityException(java.security.GeneralSecurityException) InvalidParameterException(java.security.InvalidParameterException) PentahoAccessControlException(org.pentaho.platform.api.engine.PentahoAccessControlException) UnifiedRepositoryAccessDeniedException(org.pentaho.platform.api.repository2.unified.UnifiedRepositoryAccessDeniedException) FileNotFoundException(java.io.FileNotFoundException) PlatformImportException(org.pentaho.platform.plugin.services.importer.PlatformImportException) UnsupportedEncodingException(java.io.UnsupportedEncodingException) ExportException(org.pentaho.platform.plugin.services.importexport.ExportException) IllegalSelectorException(java.nio.channels.IllegalSelectorException) IOException(java.io.IOException)

Aggregations

RepositoryFileDto (org.pentaho.platform.repository2.unified.webservices.RepositoryFileDto)66 Test (org.junit.Test)42 Matchers.anyString (org.mockito.Matchers.anyString)26 FileNotFoundException (java.io.FileNotFoundException)23 ArrayList (java.util.ArrayList)20 RepositoryFile (org.pentaho.platform.api.repository2.unified.RepositoryFile)18 Serializable (java.io.Serializable)15 GeneralSecurityException (java.security.GeneralSecurityException)11 StringKeyStringValueDto (org.pentaho.platform.repository2.unified.webservices.StringKeyStringValueDto)9 IllegalSelectorException (java.nio.channels.IllegalSelectorException)8 InvalidParameterException (java.security.InvalidParameterException)8 PentahoAccessControlException (org.pentaho.platform.api.engine.PentahoAccessControlException)8 UnifiedRepositoryAccessDeniedException (org.pentaho.platform.api.repository2.unified.UnifiedRepositoryAccessDeniedException)8 IOException (java.io.IOException)7 IRepositoryFileData (org.pentaho.platform.api.repository2.unified.IRepositoryFileData)6 RepositoryFileAcl (org.pentaho.platform.api.repository2.unified.RepositoryFileAcl)6 RepositoryFileAclDto (org.pentaho.platform.repository2.unified.webservices.RepositoryFileAclDto)6 Properties (java.util.Properties)4 WebApplicationException (javax.ws.rs.WebApplicationException)4 RepositoryFileAclAceDto (org.pentaho.platform.repository2.unified.webservices.RepositoryFileAclAceDto)4