updateDataElementValue method

Future updateDataElementValue({
  1. required String dataElement,
  2. required String event,
  3. required String resourceId,
})

Implementation

Future<dynamic> updateDataElementValue(
    {required String dataElement,
    required String event,
    required String resourceId}) async {
  EventDataValue? eventDataValue =
      await EventDataValueQuery(database: database)
          .where(attribute: 'dataElement', value: dataElement)
          .where(attribute: 'event', value: event)
          .getOne();

  if (eventDataValue == null) {
    final newEventDataValue = EventDataValue(
        dataElement: dataElement,
        value: resourceId,
        event: event,
        dirty: true);

    return await EventDataValueQuery(database: database)
        .setData(newEventDataValue)
        .save();
  }

  eventDataValue.value = resourceId;
  return await EventDataValueQuery(database: database)
      .setData(eventDataValue)
      .save();
}