use of com.nexblocks.authguard.api.dto.entities.CredentialsDTO in project AuthGuard by AuthGuard.
the class CredentialsRoute method update.
public void update(final Context context) {
final CredentialsDTO credentials = RestJsonMapper.asClass(context.body(), CredentialsDTO.class);
if (credentials.getPlainPassword() != null) {
context.status(400).json(new Error("400", "Password cannot be updated using regular update"));
return;
}
final String credentialsId = context.pathParam("id");
final Optional<CredentialsDTO> updated = Optional.of(credentials.withId(credentialsId)).map(restMapper::toBO).flatMap(credentialsService::update).map(restMapper::toDTO);
if (updated.isPresent()) {
context.status(200).json(updated.get());
} else {
context.status(404);
}
}
use of com.nexblocks.authguard.api.dto.entities.CredentialsDTO in project AuthGuard by AuthGuard.
the class CredentialsRoute method create.
public void create(final Context context) {
final String idempotentKey = IdempotencyHeader.getKeyOrFail(context);
final CreateCredentialsRequestDTO request = credentialsRequestBodyHandler.getValidated(context);
if (!ActorDomainVerifier.verifyActorDomain(context, request.getDomain())) {
return;
}
final RequestContextBO requestContext = RequestContextBO.builder().idempotentKey(idempotentKey).source(context.ip()).build();
final CredentialsBO credentials = restMapper.toBO(request);
final List<UserIdentifierBO> identifiers = credentials.getIdentifiers().stream().map(identifier -> identifier.withDomain(request.getDomain())).collect(Collectors.toList());
final Optional<CredentialsDTO> created = Optional.of(credentials.withIdentifiers(identifiers)).map(credentialsBO -> credentialsService.create(credentialsBO, requestContext)).map(restMapper::toDTO);
if (created.isPresent()) {
context.status(201).json(created.get());
} else {
context.status(400).json(new Error("400", "Failed to create credentials"));
}
}
use of com.nexblocks.authguard.api.dto.entities.CredentialsDTO in project AuthGuard by AuthGuard.
the class CredentialsRoute method updatePassword.
public void updatePassword(final Context context) {
final CredentialsDTO credentials = RestJsonMapper.asClass(context.body(), CredentialsDTO.class);
final String credentialsId = context.pathParam("id");
final Optional<CredentialsDTO> updated = credentialsService.updatePassword(credentialsId, credentials.getPlainPassword()).map(restMapper::toDTO);
if (updated.isPresent()) {
context.status(200).json(updated.get());
} else {
context.status(404);
}
}
use of com.nexblocks.authguard.api.dto.entities.CredentialsDTO in project AuthGuard by AuthGuard.
the class CredentialsRouteTest method create.
@Test
void create() {
final CreateCredentialsRequestDTO credentialsRequest = randomObject(CreateCredentialsRequestDTO.class);
final CredentialsBO credentialsBO = mapper().toBO(credentialsRequest).withPasswordVersion(null);
final CredentialsBO serviceResponse = credentialsBO.withPlainPassword(null).withId(UUID.randomUUID().toString()).withPasswordVersion(1);
Mockito.when(credentialsService.create(Mockito.any(), Mockito.any())).thenReturn(serviceResponse);
final ValidatableResponse httpResponse = given().body(credentialsRequest).contentType(ContentType.JSON).header("X-IdempotentKey", "key").post(url()).then().statusCode(201).contentType(ContentType.JSON);
final CredentialsDTO responseBody = httpResponse.extract().response().getBody().as(CredentialsDTO.class);
assertThat(responseBody).isEqualToIgnoringGivenFields(credentialsRequest, "id", "plainPassword", "createdAt", "lastModified", "passwordUpdatedAt", "passwordVersion");
assertThat(responseBody.getPlainPassword()).isNull();
assertThat(responseBody.getId()).isEqualTo(serviceResponse.getId());
assertThat(responseBody.getPasswordVersion()).isEqualTo(1);
}
Aggregations