private Future<EventBusMessage> processGetByAuthIdRequest(final EventBusMessage request, final String tenantId,
final JsonObject payload, final String type, final String authId, final Span span) {
log.debug("getting credentials [tenant: {}, type: {}, auth-id: {}]", tenantId, type, authId);
span.setTag(TAG_CREDENTIALS_TYPE, type);
span.setTag(TAG_AUTH_ID, authId);
final Future<CredentialsResult<JsonObject>> result = Future.future();
get(tenantId, type, authId, payload, span, result.completer());
return result.map(res -> {
final String deviceIdFromPayload = Optional.ofNullable(res.getPayload())
.map(p -> getTypesafeValueForField(String.class, p,
TenantConstants.FIELD_PAYLOAD_DEVICE_ID))
.orElse(null);
if (deviceIdFromPayload != null) {
span.setTag(MessageHelper.APP_PROPERTY_DEVICE_ID, deviceIdFromPayload);
}
return request.getResponse(res.getStatus())
.setDeviceId(deviceIdFromPayload)
.setJsonPayload(res.getPayload())
.setCacheDirective(res.getCacheDirective());
});
}