import 'dart:io';

import 'package:workouttest_util/model/mautic.dart';
import 'package:workouttest_util/util/logging.dart';

class MauticApi with Logging {
  final String mauticUrl = "https://mautic.workouttest.org/form/submit?formId=";

  Future<void> sendMauticForm(Mautic model) async {
    final String body = model.toForm();
    log(" ===== mautic subscription: $body");
    HttpClient client = HttpClient();

    String url = mauticUrl + model.formId.toString();

    var uri = Uri.parse(url);
    final HttpClientRequest request = await client.postUrl(uri);
    request.headers.set('Content-Type', 'application/x-www-form-urlencoded');
    request.headers.set('cache-control', 'no-cache');

    request.write(body);
    HttpClientResponse result = await request.close();
    client.close();
    if (!(result.statusCode == 200 || result.statusCode == 302)) {
      trace("mautic response: ${result.statusCode}");
      //throw Exception("Network error, try again later!");
    }
  }
}