Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

70 lines
2.2KB

  1. <?php
  2. namespace App\Transmission\Layouts;
  3. use Illuminate\Http\Client\Response;
  4. use Illuminate\Http\Request;
  5. class SIFCommonHeader
  6. {
  7. public string $interfaceId = '';
  8. public string $sendDatetime = '';
  9. public string $resultCode = '';
  10. const COL_NAME_HEADER = 'Header';
  11. const COL_NAME_BODY = 'Body';
  12. const COL_NAME_INTERFACE_ID = 'InterfaceID';
  13. const COL_NAME_SEND_DATETIME = 'SendDatetime';
  14. const COL_NAME_RESULT_CODE = 'ResultCode';
  15. public static function validateLayout(Request $request)
  16. {
  17. $request->validate([
  18. self::COL_NAME_HEADER => 'required|array',
  19. self::COL_NAME_HEADER.".".self::COL_NAME_INTERFACE_ID => 'required|string',
  20. self::COL_NAME_HEADER.".".self::COL_NAME_SEND_DATETIME => 'required|string',
  21. self::COL_NAME_HEADER.".".self::COL_NAME_RESULT_CODE => 'required|string',
  22. ]);
  23. }
  24. /**
  25. * Requestはバリデート済みである前提
  26. *
  27. * @param Request $request
  28. * @return SIFCommonHeader
  29. */
  30. public static function createFromRequest(Request $request) : self
  31. {
  32. $requestHeader = $request[self::COL_NAME_HEADER];
  33. $header = new SIFCommonHeader();
  34. $header->interfaceId = $requestHeader[self::COL_NAME_INTERFACE_ID];
  35. $header->sendDatetime = $requestHeader[self::COL_NAME_SEND_DATETIME];
  36. return $header;
  37. }
  38. /**
  39. * @param Response $request
  40. * @return SIFCommonHeader
  41. */
  42. public static function createFromResponse(Response $response) : self
  43. {
  44. $responseHeader = $response[self::COL_NAME_HEADER];
  45. $header = new SIFCommonHeader();
  46. $header->interfaceId = $responseHeader[self::COL_NAME_INTERFACE_ID];
  47. $header->sendDatetime = $responseHeader[self::COL_NAME_SEND_DATETIME];
  48. $header->resultCode = $responseHeader[self::COL_NAME_RESULT_CODE];
  49. return $header;
  50. }
  51. public function toArray() : array
  52. {
  53. $result = [];
  54. $result[self::COL_NAME_INTERFACE_ID] = $this->interfaceId;
  55. $result[self::COL_NAME_SEND_DATETIME] = $this->sendDatetime;
  56. $result[self::COL_NAME_RESULT_CODE] = $this->resultCode;
  57. return $result;
  58. }
  59. }