use of org.opendaylight.yang.gen.v1.urn.sal.restconf.event.subscription.rev140708.CreateDataChangeEventSubscriptionInput1.Scope in project gravitee-access-management by gravitee-io.
the class ScopeRepositoryTest method buildScope.
private Scope buildScope() {
Scope scope = new Scope();
String rand = UUID.randomUUID().toString();
scope.setName("name" + rand);
scope.setDescription("desc" + rand);
scope.setDiscovery(true);
scope.setDomain("domain" + rand);
scope.setExpiresIn(321);
scope.setIconUri("http://icon.acme.fr/" + rand);
scope.setKey("key" + rand);
scope.setSystem(true);
scope.setParameterized(true);
scope.setCreatedAt(new Date());
scope.setUpdatedAt(new Date());
scope.setClaims(Arrays.asList("claim1" + rand, "claim2" + rand));
return scope;
}
use of org.opendaylight.yang.gen.v1.urn.sal.restconf.event.subscription.rev140708.CreateDataChangeEventSubscriptionInput1.Scope in project gravitee-access-management by gravitee-io.
the class ScopeRepositoryTest method testCreate.
@Test
public void testCreate() {
Scope scope = new Scope();
scope.setName("testName");
scope.setSystem(true);
scope.setClaims(Collections.emptyList());
TestObserver<Scope> testObserver = scopeRepository.create(scope).test();
testObserver.awaitTerminalEvent();
testObserver.assertComplete();
testObserver.assertNoErrors();
testObserver.assertValue(s -> s.getName().equals(scope.getName()));
}
use of org.opendaylight.yang.gen.v1.urn.sal.restconf.event.subscription.rev140708.CreateDataChangeEventSubscriptionInput1.Scope in project gravitee-access-management by gravitee-io.
the class ScopeRepositoryTest method testUpdate.
@Test
public void testUpdate() {
// create scope
Scope scope = buildScope();
Scope scopeCreated = scopeRepository.create(scope).blockingGet();
// update scope
Scope updatedScope = buildScope();
updatedScope.setId(scopeCreated.getId());
TestObserver<Scope> testObserver = scopeRepository.update(updatedScope).test();
testObserver.awaitTerminalEvent();
testObserver.assertComplete();
testObserver.assertNoErrors();
assertEqualsTo(updatedScope, testObserver);
}
use of org.opendaylight.yang.gen.v1.urn.sal.restconf.event.subscription.rev140708.CreateDataChangeEventSubscriptionInput1.Scope in project gravitee-access-management by gravitee-io.
the class JdbcScopeRepository method search.
@Override
public Single<Page<Scope>> search(String domain, String query, int page, int size) {
LOGGER.debug("search({}, {})", domain, query);
boolean wildcardSearch = query.contains("*");
String wildcardQuery = query.replaceAll("\\*+", "%");
String search = this.databaseDialectHelper.buildSearchScopeQuery(wildcardSearch, page, size);
String count = this.databaseDialectHelper.buildCountScopeQuery(wildcardSearch);
return fluxToFlowable(template.getDatabaseClient().sql(search).bind(COL_DOMAIN, domain).bind("value", wildcardSearch ? wildcardQuery.toUpperCase() : query.toUpperCase()).map(row -> rowMapper.read(JdbcScope.class, row)).all()).map(this::toEntity).flatMap(scope -> completeWithClaims(Maybe.just(scope), scope.getId()).toFlowable()).toList().flatMap(data -> monoToSingle(template.getDatabaseClient().sql(count).bind(COL_DOMAIN, domain).bind("value", wildcardSearch ? wildcardQuery.toUpperCase() : query.toUpperCase()).map(row -> row.get(0, Long.class)).first()).map(total -> new Page<>(data, page, total)));
}
use of org.opendaylight.yang.gen.v1.urn.sal.restconf.event.subscription.rev140708.CreateDataChangeEventSubscriptionInput1.Scope in project gravitee-access-management by gravitee-io.
the class ScopeServiceImpl method update.
@Override
public Single<Scope> update(String domain, String id, UpdateSystemScope updateScope) {
LOGGER.debug("Update a system scope {} for domain {}", id, domain);
return scopeRepository.findById(id).switchIfEmpty(Maybe.error(new ScopeNotFoundException(id))).flatMapSingle(scope -> {
scope.setName(updateScope.getName());
scope.setDescription(updateScope.getDescription());
scope.setUpdatedAt(new Date());
scope.setSystem(true);
scope.setClaims(updateScope.getClaims());
scope.setExpiresIn(updateScope.getExpiresIn());
scope.setDiscovery(updateScope.isDiscovery());
return scopeRepository.update(scope);
}).flatMap(scope -> {
// create event for sync process
Event event = new Event(Type.SCOPE, new Payload(scope.getId(), ReferenceType.DOMAIN, scope.getDomain(), Action.UPDATE));
return eventService.create(event).flatMap(__ -> Single.just(scope));
}).onErrorResumeNext(ex -> {
if (ex instanceof AbstractManagementException) {
return Single.error(ex);
}
LOGGER.error("An error occurs while trying to update a system scope", ex);
return Single.error(new TechnicalManagementException("An error occurs while trying to update a system scope", ex));
});
}
Aggregations