updateMonetizationSettings method

Future<MonetizationSettingsEventsVersionedMixin?> updateMonetizationSettings({
  1. UserId? userId,
  2. required MonetizationSettingsInput settings,
})

Updates MonetizationSettings of the authenticated MyUser.

If the userId argument is specified, then MonetizationSettings will be updated individually for that User. Otherwise, common MonetizationSettings are updated, affecting all Users. Naturally, individual MonetizationSettings take precedence over common MonetizationSettings.

Authentication

Mandatory.

Result

One of the following MonetizationSettingsEvents may be produced on success:

Idempotent

Succeeds as no-op (and returns no MonetizationSettingsEvent) if the specified MonetizationSettings' fields are set already to the provided values.

Implementation

Future<MonetizationSettingsEventsVersionedMixin?> updateMonetizationSettings({
  UserId? userId,
  required MonetizationSettingsInput settings,
}) async {
  Log.debug(
    'updateMonetizationSettings(userId: $userId, settings: $settings)',
    '$runtimeType',
  );

  final variables = UpdateMonetizationSettingsArguments(
    userId: userId,
    settings: settings,
  );

  final QueryResult res = await client.mutate(
    MutationOptions(
      operationName: 'UpdateMonetizationSettings',
      document: UpdateMonetizationSettingsMutation(
        variables: variables,
      ).document,
      variables: variables.toJson(),
    ),
    onException: (data) => UpdateMonetizationSettingsException(
      (UpdateMonetizationSettings$Mutation.fromJson(
                data,
              ).updateMonetizationSettings
              as UpdateMonetizationSettings$Mutation$UpdateMonetizationSettings$UpdateMonetizationSettingsError)
          .code,
    ),
  );

  return UpdateMonetizationSettings$Mutation.fromJson(
        res.data!,
      ).updateMonetizationSettings
      as UpdateMonetizationSettings$Mutation$UpdateMonetizationSettings$MonetizationSettingsEventsVersioned?;
}