kemApiV3DevicesIdSignaturesPostFixed method

Future<Response> kemApiV3DevicesIdSignaturesPostFixed({
  1. required int? id,
  2. FileReference? file,
  3. required String email,
  4. required HomeownerConsentActionDTO action,
  5. String? firstName,
  6. String? lastName,
})

Upload a homeowner's signature and associate it with the given device.

Unlike kemApiV3DevicesIdSignaturesPost, this method correctly includes the required content type and filename with the signature file upload, for proper parsing on the backend.

Implementation

Future<Response<dynamic>> kemApiV3DevicesIdSignaturesPostFixed({
  required int? id,
  FileReference? file,
  required String email,
  required HomeownerConsentActionDTO action,
  String? firstName,
  String? lastName,
}) {
  final Uri $url = Uri.parse('/kem/api/v3/devices/$id/signatures');
  final List<PartValue> $parts = <PartValue>[
    PartValue<String>(
      'email',
      email,
    ),
    PartValue<String>(
      'action',
      action.name,
    ),
    PartValue<String?>(
      'firstName',
      firstName,
    ),
    PartValue<String?>(
      'lastName',
      lastName,
    ),
    PartValue<MultipartFile?>(
      'file',
      file != null
          ? MultipartFile.fromBytes(
              'file',
              file.value,
              filename: file.filename,
              contentType: MediaType.parse(file.contentType),
            )
          : null,
    ),
  ];
  final Request $request = Request(
    'POST',
    $url,
    client.baseUrl,
    parts: $parts,
    multipart: true,
  );
  return client.send<dynamic, dynamic>($request);
}