create method

Future<void> create({
  1. required UMediaCreateParams p,
  2. required dynamic onOk(
    1. UResponse<UMediaResponse> r
    ),
  3. required dynamic onError(
    1. UResponse e
    ),
  4. dynamic onException(
    1. Exception
    )?,
})

Implementation

Future<void> create({
  required final UMediaCreateParams p,
  required final Function(UResponse<UMediaResponse> r) onOk,
  required final Function(UResponse<dynamic> e) onError,
  final Function(Exception)? onException,
}) async {
  final List<MultipartFile> files = <MultipartFile>[
    await UHttpClient.multipartFileFromFile(
      "File",
      p.file,
      filename: p.file.path.split("/").last,
    ),
  ];

  await httpClient.upload(
    endpoint: "/Media/Create",
    files: files,
    fields: p.toMap()..addAll(<String, dynamic>{"apiKey": apiKey, "token": token}),
    onSuccess: (final Response r) => onOk(
      UResponse<UMediaResponse>.fromJson(
        r.body,
        (dynamic i) => UMediaResponse.fromMap(i),
      ),
    ),
    onError: (final Response r) => onError(
      UResponse<dynamic>.fromJson(r.body, (dynamic i) => i),
    ),
    onException: (final dynamic e) {
      if (onException != null) onException(e);
    },
  );
}