uploadLocalAsset method Null safety

Future<MediaAsset?> uploadLocalAsset(
  1. MediaAsset localAsset,
  2. MediaType mediaType
)

Uploads a local asset to remote storage. If successful, deletes the local asset. This means that the new asset returned must be used after this function has been called. Returns null in case of failure.

Implementation

Future<MediaAsset?> uploadLocalAsset(
    MediaAsset localAsset, MediaType mediaType) async {
  // if the asset already is a remote asset, do nothing
  if (localAsset.location == MediaAssetLocation.cms) {
    return localAsset;
  }

  final remoteAsset = await addRemoteAsset(localAsset.url, mediaType);

  if (remoteAsset == null) {
    // couldn't upload the asset, return error
    return null;
  }

  await delete(localAsset);

  return remoteAsset;
}