use of org.sagebionetworks.bridge.models.apps.App in project BridgeServer2 by Sage-Bionetworks.
the class HealthDataEx3ControllerTest method getRecord.
@Test
public void getRecord() {
// Set up mocks.
App app = App.create();
app.setIdentifier(TestConstants.TEST_APP_ID);
when(mockAppService.getApp(TestConstants.TEST_APP_ID)).thenReturn(app);
HealthDataRecordEx3 record = HealthDataRecordEx3.create();
record.setAppId(TestConstants.TEST_APP_ID);
record.setId(RECORD_ID);
when(mockHealthDataEx3Service.getRecord(RECORD_ID)).thenReturn(Optional.of(record));
// Execute and verify.
HealthDataRecordEx3 result = controller.getRecord(TestConstants.TEST_APP_ID, RECORD_ID);
assertSame(result, record);
verify(mockHealthDataEx3Service).getRecord(RECORD_ID);
verify(mockMetrics).setRecordId(RECORD_ID);
}
use of org.sagebionetworks.bridge.models.apps.App in project BridgeServer2 by Sage-Bionetworks.
the class HealthDataEx3ControllerTest method getRecord_RecordInWrongApp.
@Test(expectedExceptions = EntityNotFoundException.class)
public void getRecord_RecordInWrongApp() {
// Set up mocks.
App app = App.create();
app.setIdentifier(TestConstants.TEST_APP_ID);
when(mockAppService.getApp(TestConstants.TEST_APP_ID)).thenReturn(app);
HealthDataRecordEx3 record = HealthDataRecordEx3.create();
record.setAppId("wrong-app");
record.setId(RECORD_ID);
when(mockHealthDataEx3Service.getRecord(RECORD_ID)).thenReturn(Optional.of(record));
// Execute.
controller.getRecord(TestConstants.TEST_APP_ID, RECORD_ID);
}
use of org.sagebionetworks.bridge.models.apps.App in project BridgeServer2 by Sage-Bionetworks.
the class HealthDataEx3ControllerTest method createOrUpdateRecord.
@Test
public void createOrUpdateRecord() throws Exception {
// Set up mocks.
App app = App.create();
app.setIdentifier(TestConstants.TEST_APP_ID);
when(mockAppService.getApp(TestConstants.TEST_APP_ID)).thenReturn(app);
HealthDataRecordEx3 record = HealthDataRecordEx3.create();
record.setId(RECORD_ID);
mockRequestBody(mockRequest, record);
when(mockHealthDataEx3Service.createOrUpdateRecord(any())).thenAnswer(invocation -> invocation.getArgument(0));
// Execute and verify.
HealthDataRecordEx3 result = controller.createOrUpdateRecord(TestConstants.TEST_APP_ID);
assertEquals(result.getId(), RECORD_ID);
assertEquals(result.getAppId(), TestConstants.TEST_APP_ID);
verify(mockHealthDataEx3Service).createOrUpdateRecord(same(result));
verify(mockMetrics).setRecordId(RECORD_ID);
}
use of org.sagebionetworks.bridge.models.apps.App in project BridgeServer2 by Sage-Bionetworks.
the class IntentService method submitIntentToParticipate.
public void submitIntentToParticipate(IntentToParticipate intent) {
Validate.entityThrowingException(IntentToParticipateValidator.INSTANCE, intent);
// If the account exists, do nothing.
AccountId accountId = null;
if (intent.getPhone() != null) {
accountId = AccountId.forPhone(intent.getAppId(), intent.getPhone());
} else {
accountId = AccountId.forEmail(intent.getAppId(), intent.getEmail());
}
Account account = accountService.getAccount(accountId).orElse(null);
if (account != null) {
return;
}
// validate app exists
App app = appService.getApp(intent.getAppId());
// validate subpopulation exists
SubpopulationGuid guid = SubpopulationGuid.create(intent.getSubpopGuid());
subpopService.getSubpopulation(app.getIdentifier(), guid);
// validate it has not yet been submitted
// the validator has ensured that phone or email, but not both, have been provided;
CacheKey cacheKey = (intent.getPhone() == null) ? CacheKey.itp(guid, app.getIdentifier(), intent.getEmail()) : CacheKey.itp(guid, app.getIdentifier(), intent.getPhone());
if (cacheProvider.getObject(cacheKey, IntentToParticipate.class) == null) {
cacheProvider.setObject(cacheKey, intent, EXPIRATION_IN_SECONDS);
// sent immediately after consenting.
if (!app.getInstallLinks().isEmpty()) {
participantService.sendInstallLinkMessage(app, TRANSACTIONAL, null, intent.getEmail(), intent.getPhone(), intent.getOsName());
}
}
}
use of org.sagebionetworks.bridge.models.apps.App in project BridgeServer2 by Sage-Bionetworks.
the class ParticipantVersionService method createParticipantVersionFromAccount.
/**
* Creates a participant version from an account.
*/
public void createParticipantVersionFromAccount(Account account) {
String appId = account.getAppId();
App app = appService.getApp(appId);
if (!BridgeUtils.isExporter3Configured(app)) {
// If Exporter 3.0 isn't enabled, there's no point in creating a Participant Version.
return;
}
if (!account.getRoles().isEmpty()) {
// Accounts that have roles aren't research participants. Don't export them to Synapse.
return;
}
if (account.getSharingScope() == SharingScope.NO_SHARING) {
// no_sharing means we don't export this to Synapse, which means we can skip making a Participant Version.
return;
}
if (account.getActiveEnrollments().isEmpty()) {
// Participant has no active enrollments. Don't create a participant version.
return;
}
ParticipantVersion participantVersion = makeParticipantVersionFromAccount(account);
createParticipantVersion(participantVersion);
}
Aggregations