2-response_builder.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. namespace cx_newsletter;
  3. class response_builder {
  4. public function __construct() {
  5. $this->code = response_code::SUCCESS;
  6. $this->status = response_status::SUCCESS;
  7. $this->message = '';
  8. $this->content = [];
  9. }
  10. public function set_code(response_code $code) : self {
  11. $this->code = $code;
  12. return $this;
  13. }
  14. public function set_status(response_status $status) : self {
  15. $this->status = $status;
  16. return $this;
  17. }
  18. public function set_message(string $message) : self {
  19. $this->message = $message;
  20. return $this;
  21. }
  22. public function set_content(array|string $content) : self {
  23. $this->content = $content;
  24. return $this;
  25. }
  26. public function build() : array {
  27. return [
  28. 'Result' => [
  29. 'Status' => $this->status->value,
  30. 'Message' => $this->message,
  31. 'Code' => $this->code->value
  32. ],
  33. 'Content' => $this->content
  34. ];
  35. }
  36. private string $message;
  37. private array|string $content;
  38. private response_code $code;
  39. private response_status $status;
  40. }