event_template.tera 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. {%- if index == 0 %}
  2. {{ imported_dart_files }}
  3. {%- endif -%}
  4. class {{ command_request_struct_ident }} {
  5. {%- if has_request_deserializer %}
  6. {{ request_deserializer }} body;
  7. {%- else %}
  8. Uint8List? body;
  9. {%- endif %}
  10. {%- if has_request_deserializer %}
  11. {{ command_request_struct_ident }}(this.body);
  12. {%- else %}
  13. {{ command_request_struct_ident }}();
  14. {%- endif %}
  15. Future<Either<{{ response_deserializer }}, FlowyError>> send() {
  16. final command = Command.{{ command_ident }};
  17. var request = RequestPacket.create()
  18. ..command = command
  19. ..id = uuid();
  20. {%- if has_request_deserializer %}
  21. return protobufToBytes(body).fold(
  22. (req_bytes) {
  23. request.body = req_bytes;
  24. return {{ async_cqrs_type }}(request).then((response) {
  25. {%- if has_response_deserializer %}
  26. try {
  27. if (response.hasErr()) {
  28. return right(FlowyError.from(response));
  29. } else {
  30. final pb = {{ response_deserializer }}.fromBuffer(response.body);
  31. return left(pb);
  32. }
  33. } catch (e, s) {
  34. final error = FlowyError.fromError('error: ${e.runtimeType}. Stack trace: $s', StatusCode.ProtobufDeserializeError);
  35. return right(error);
  36. }
  37. {%- else %}
  38. return left(response);
  39. {%- endif %}
  40. });
  41. },
  42. (err) => Future(() {
  43. final error = FlowyError.fromError(err, StatusCode.ProtobufSerializeError);
  44. return right(error);
  45. }),
  46. );
  47. {%- else %}
  48. return {{ async_cqrs_type }}(request).then((response) {
  49. {%- if has_response_deserializer %}
  50. try {
  51. if (response.hasErr()) {
  52. return right(FlowyError.from(response));
  53. } else {
  54. final pb = {{ response_deserializer }}.fromBuffer(response.body);
  55. return left(pb);
  56. }
  57. } catch (e, s) {
  58. final error = FlowyError.fromError('error: ${e.runtimeType}. Stack trace: $s', StatusCode.ProtobufDeserializeError);
  59. return right(error);
  60. }
  61. {%- else %}
  62. return left(response);
  63. {%- endif %}
  64. });
  65. {%- endif %}
  66. }
  67. }