getStudy method

Future<SmartphoneStudy?> getStudy(
  1. String studyDeploymentId,
  2. String deviceRoleName
)

Return the SmartphoneStudy with studyDeploymentId and deviceRoleName, or null when no such study is found.

Implementation

Future<SmartphoneStudy?> getStudy(
  String studyDeploymentId,
  String deviceRoleName,
) async {
  SmartphoneStudy? study;
  try {
    final List<Map<String, Object?>> maps =
        await _database?.query(
          STUDY_TABLE_NAME,
          columns: [
            STUDY_ID_COLUMN,
            STUDY_DEPLOYMENT_ID_COLUMN,
            DEVICE_ROLE_NAME_COLUMN,
            PARTICIPANT_ID_COLUMN,
            PARTICIPANT_ROLE_NAME_COLUMN,
            CREATED_ON_COLUMN,
            SAMPLING_STATUS_COLUMN,
            DEPLOYMENT_STATUS_COLUMN,
            DEPLOYMENT_COLUMN,
          ],
          where:
              '$STUDY_DEPLOYMENT_ID_COLUMN = ? AND '
              '$DEVICE_ROLE_NAME_COLUMN = ?',
          whereArgs: [studyDeploymentId, deviceRoleName],
        ) ??
        [];

    if (maps.isNotEmpty) {
      study = SmartphoneStudy.fromMap(maps[0]);
    }
  } catch (exception) {
    warning('$runtimeType - Failed to restore deployment - $exception');
  }

  return study;
}