event_template.tera 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. class {{ event_class }} {
  2. {%- if has_input %}
  3. {{ input_deserializer }} request;
  4. {{ event_class }}(this.request);
  5. {%- else %}
  6. {{ event_class }}();
  7. {%- endif %}
  8. Future<Either<{{ output_deserializer }}, {{ error_deserializer }}>> send() {
  9. {%- if has_input %}
  10. final request = FFIRequest.create()
  11. ..event = {{ event }}.toString()
  12. ..payload = requestToBytes(this.request);
  13. return Dispatch.asyncRequest(request)
  14. .then((bytesResult) => bytesResult.fold(
  15. {%- if has_output %}
  16. (okBytes) => left({{ output_deserializer }}.fromBuffer(okBytes)),
  17. {%- else %}
  18. (bytes) => left(unit),
  19. {%- endif %}
  20. (errBytes) => right({{ error_deserializer }}.fromBuffer(errBytes)),
  21. ));
  22. {%- else %}
  23. final request = FFIRequest.create()
  24. ..event = {{ event }}.toString();
  25. {%- if has_input %}
  26. ..payload = bytes;
  27. {%- endif %}
  28. return Dispatch.asyncRequest(request).then((bytesResult) => bytesResult.fold(
  29. {%- if has_output %}
  30. (okBytes) => left({{ output_deserializer }}.fromBuffer(okBytes)),
  31. {%- else %}
  32. (bytes) => left(unit),
  33. {%- endif %}
  34. (errBytes) => right({{ error_deserializer }}.fromBuffer(errBytes)),
  35. ));
  36. {%- endif %}
  37. }
  38. }