event_template.tera 1.3 KB

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