Search in sources :

Example 1 with GetRepositoryRequest

use of org.haiku.haikudepotserver.api1.model.repository.GetRepositoryRequest in project haikudepotserver by haiku.

the class RepositoryApiImpl method getRepository.

@Override
public GetRepositoryResult getRepository(GetRepositoryRequest getRepositoryRequest) {
    Preconditions.checkNotNull(getRepositoryRequest);
    Preconditions.checkState(!Strings.isNullOrEmpty(getRepositoryRequest.code));
    final ObjectContext context = serverRuntime.newContext();
    final Repository repository = getRepositoryOrThrow(context, getRepositoryRequest.code);
    if (!permissionEvaluator.hasPermission(SecurityContextHolder.getContext().getAuthentication(), repository, Permission.REPOSITORY_VIEW)) {
        throw new AccessDeniedException("unable to view repository [" + repository + "]");
    }
    GetRepositoryResult result = new GetRepositoryResult();
    result.active = repository.getActive();
    result.code = repository.getCode();
    result.name = repository.getName();
    result.createTimestamp = repository.getCreateTimestamp().getTime();
    result.modifyTimestamp = repository.getModifyTimestamp().getTime();
    result.informationUrl = repository.getInformationUrl();
    result.hasPassword = StringUtils.isNotBlank(repository.getPasswordHash());
    result.repositorySources = repository.getRepositorySources().stream().filter(rs -> rs.getActive() || (null != getRepositoryRequest.includeInactiveRepositorySources && getRepositoryRequest.includeInactiveRepositorySources)).map(rs -> {
        GetRepositoryResult.RepositorySource resultRs = new GetRepositoryResult.RepositorySource();
        resultRs.active = rs.getActive();
        resultRs.code = rs.getCode();
        resultRs.url = rs.tryGetPrimaryMirror().map(_RepositorySourceMirror::getBaseUrl).orElse(null);
        resultRs.identifier = rs.getIdentifier();
        resultRs.architectureCode = Optional.ofNullable(rs.getArchitecture()).map(Architecture::getCode).orElse(null);
        if (null != rs.getLastImportTimestamp()) {
            resultRs.lastImportTimestamp = rs.getLastImportTimestamp().getTime();
        }
        return resultRs;
    }).collect(Collectors.toList());
    return result;
}
Also used : GetRepositorySourceMirrorResult(org.haiku.haikudepotserver.api1.model.repository.GetRepositorySourceMirrorResult) CreateRepositoryResult(org.haiku.haikudepotserver.api1.model.repository.CreateRepositoryResult) CreateRepositorySourceRequest(org.haiku.haikudepotserver.api1.model.repository.CreateRepositorySourceRequest) RemoveRepositorySourceMirrorResult(org.haiku.haikudepotserver.api1.model.repository.RemoveRepositorySourceMirrorResult) LoggerFactory(org.slf4j.LoggerFactory) RepositorySourceExtraIdentifier(org.haiku.haikudepotserver.dataobjects.RepositorySourceExtraIdentifier) StringUtils(org.apache.commons.lang3.StringUtils) RepositoryService(org.haiku.haikudepotserver.repository.model.RepositoryService) SecurityContextHolder(org.springframework.security.core.context.SecurityContextHolder) UpdateRepositorySourceMirrorResult(org.haiku.haikudepotserver.api1.model.repository.UpdateRepositorySourceMirrorResult) org.haiku.haikudepotserver.dataobjects.auto._RepositorySourceMirror(org.haiku.haikudepotserver.dataobjects.auto._RepositorySourceMirror) PkgSearchSpecification(org.haiku.haikudepotserver.pkg.model.PkgSearchSpecification) SingleCollector(org.haiku.haikudepotserver.support.SingleCollector) RepositorySource(org.haiku.haikudepotserver.dataobjects.RepositorySource) RepositorySourceMirror(org.haiku.haikudepotserver.dataobjects.RepositorySourceMirror) Set(java.util.Set) SearchRepositoriesResult(org.haiku.haikudepotserver.api1.model.repository.SearchRepositoriesResult) UUID(java.util.UUID) GetRepositoriesResult(org.haiku.haikudepotserver.api1.model.repository.GetRepositoriesResult) UpdateRepositorySourceResult(org.haiku.haikudepotserver.api1.model.repository.UpdateRepositorySourceResult) Collectors(java.util.stream.Collectors) GetRepositorySourceMirrorRequest(org.haiku.haikudepotserver.api1.model.repository.GetRepositorySourceMirrorRequest) List(java.util.List) GetRepositoryRequest(org.haiku.haikudepotserver.api1.model.repository.GetRepositoryRequest) UpdateRepositoryRequest(org.haiku.haikudepotserver.api1.model.repository.UpdateRepositoryRequest) Repository(org.haiku.haikudepotserver.dataobjects.Repository) Optional(java.util.Optional) Country(org.haiku.haikudepotserver.dataobjects.Country) ObjectNotFoundException(org.haiku.haikudepotserver.api1.support.ObjectNotFoundException) UpdateRepositoryResult(org.haiku.haikudepotserver.api1.model.repository.UpdateRepositoryResult) TriggerImportRepositoryRequest(org.haiku.haikudepotserver.api1.model.repository.TriggerImportRepositoryRequest) ObjectContext(org.apache.cayenne.ObjectContext) Permission(org.haiku.haikudepotserver.security.model.Permission) ValidationException(org.haiku.haikudepotserver.api1.support.ValidationException) JobSnapshot(org.haiku.haikudepotserver.job.model.JobSnapshot) TriggerImportRepositoryResult(org.haiku.haikudepotserver.api1.model.repository.TriggerImportRepositoryResult) BooleanUtils(org.apache.commons.lang3.BooleanUtils) GetRepositorySourceResult(org.haiku.haikudepotserver.api1.model.repository.GetRepositorySourceResult) PersistentObject(org.apache.cayenne.PersistentObject) CreateRepositorySourceResult(org.haiku.haikudepotserver.api1.model.repository.CreateRepositorySourceResult) CollectionUtils(org.apache.commons.collections4.CollectionUtils) RemoveRepositorySourceMirrorRequest(org.haiku.haikudepotserver.api1.model.repository.RemoveRepositorySourceMirrorRequest) GetRepositoriesRequest(org.haiku.haikudepotserver.api1.model.repository.GetRepositoriesRequest) HashSet(java.util.HashSet) Strings(com.google.common.base.Strings) SetUtils(org.apache.commons.collections4.SetUtils) SearchRepositoriesRequest(org.haiku.haikudepotserver.api1.model.repository.SearchRepositoriesRequest) JobService(org.haiku.haikudepotserver.job.model.JobService) GetRepositoryResult(org.haiku.haikudepotserver.api1.model.repository.GetRepositoryResult) Logger(org.slf4j.Logger) UpdateRepositorySourceRequest(org.haiku.haikudepotserver.api1.model.repository.UpdateRepositorySourceRequest) AutoJsonRpcServiceImpl(com.googlecode.jsonrpc4j.spring.AutoJsonRpcServiceImpl) Architecture(org.haiku.haikudepotserver.dataobjects.Architecture) AccessDeniedException(org.springframework.security.access.AccessDeniedException) PermissionEvaluator(org.springframework.security.access.PermissionEvaluator) CreateRepositorySourceMirrorRequest(org.haiku.haikudepotserver.api1.model.repository.CreateRepositorySourceMirrorRequest) RepositoryHpkrIngressJobSpecification(org.haiku.haikudepotserver.repository.model.RepositoryHpkrIngressJobSpecification) CreateRepositorySourceMirrorResult(org.haiku.haikudepotserver.api1.model.repository.CreateRepositorySourceMirrorResult) Component(org.springframework.stereotype.Component) CreateRepositoryRequest(org.haiku.haikudepotserver.api1.model.repository.CreateRepositoryRequest) ObjectId(org.apache.cayenne.ObjectId) UpdateRepositorySourceMirrorRequest(org.haiku.haikudepotserver.api1.model.repository.UpdateRepositorySourceMirrorRequest) Preconditions(com.google.common.base.Preconditions) RepositorySearchSpecification(org.haiku.haikudepotserver.repository.model.RepositorySearchSpecification) ValidationFailure(org.haiku.haikudepotserver.api1.support.ValidationFailure) ServerRuntime(org.apache.cayenne.configuration.server.ServerRuntime) Collections(java.util.Collections) GetRepositorySourceRequest(org.haiku.haikudepotserver.api1.model.repository.GetRepositorySourceRequest) Repository(org.haiku.haikudepotserver.dataobjects.Repository) AccessDeniedException(org.springframework.security.access.AccessDeniedException) Architecture(org.haiku.haikudepotserver.dataobjects.Architecture) RepositorySource(org.haiku.haikudepotserver.dataobjects.RepositorySource) ObjectContext(org.apache.cayenne.ObjectContext) org.haiku.haikudepotserver.dataobjects.auto._RepositorySourceMirror(org.haiku.haikudepotserver.dataobjects.auto._RepositorySourceMirror) GetRepositoryResult(org.haiku.haikudepotserver.api1.model.repository.GetRepositoryResult)

Example 2 with GetRepositoryRequest

use of org.haiku.haikudepotserver.api1.model.repository.GetRepositoryRequest in project haikudepotserver by haiku.

the class RepositoryApiIT method getRepositoryTest.

@Test
public void getRepositoryTest() {
    integrationTestSupportService.createStandardTestData();
    GetRepositoryRequest request = new GetRepositoryRequest();
    request.code = "testrepo";
    // ------------------------------------
    GetRepositoryResult result = repositoryApi.getRepository(request);
    // ------------------------------------
    Assertions.assertThat(result.active).isTrue();
    Assertions.assertThat(result.code).isEqualTo("testrepo");
    Assertions.assertThat(result.informationUrl).isEqualTo("http://example1.haiku.org/");
    Assertions.assertThat(result.repositorySources.size()).isEqualTo(1);
    GetRepositoryResult.RepositorySource repositorySource = result.repositorySources.get(0);
    Assertions.assertThat(repositorySource.code).isEqualTo("testreposrc_xyz");
    Assertions.assertThat(repositorySource.active).isTrue();
    Assertions.assertThat(repositorySource.url).startsWith("file:///");
    Assertions.assertThat(repositorySource.architectureCode).isEqualTo("x86_64");
}
Also used : GetRepositoryRequest(org.haiku.haikudepotserver.api1.model.repository.GetRepositoryRequest) GetRepositoryResult(org.haiku.haikudepotserver.api1.model.repository.GetRepositoryResult) AbstractIntegrationTest(org.haiku.haikudepotserver.AbstractIntegrationTest) Test(org.junit.jupiter.api.Test)

Aggregations

GetRepositoryRequest (org.haiku.haikudepotserver.api1.model.repository.GetRepositoryRequest)2 GetRepositoryResult (org.haiku.haikudepotserver.api1.model.repository.GetRepositoryResult)2 Preconditions (com.google.common.base.Preconditions)1 Strings (com.google.common.base.Strings)1 AutoJsonRpcServiceImpl (com.googlecode.jsonrpc4j.spring.AutoJsonRpcServiceImpl)1 Collections (java.util.Collections)1 HashSet (java.util.HashSet)1 List (java.util.List)1 Optional (java.util.Optional)1 Set (java.util.Set)1 UUID (java.util.UUID)1 Collectors (java.util.stream.Collectors)1 ObjectContext (org.apache.cayenne.ObjectContext)1 ObjectId (org.apache.cayenne.ObjectId)1 PersistentObject (org.apache.cayenne.PersistentObject)1 ServerRuntime (org.apache.cayenne.configuration.server.ServerRuntime)1 CollectionUtils (org.apache.commons.collections4.CollectionUtils)1 SetUtils (org.apache.commons.collections4.SetUtils)1 BooleanUtils (org.apache.commons.lang3.BooleanUtils)1 StringUtils (org.apache.commons.lang3.StringUtils)1