'required|array', self::COL_NAME_HEADER . "." . self::COL_NAME_CUSTOMER_CODE => 'required|string', self::COL_NAME_HEADER . "." . self::COL_NAME_PARKING_MANAGEMENT_CODE => 'required|string', self::COL_NAME_HEADER . "." . self::COL_NAME_ADJUSTER_SERIAL_NO => 'required|numeric', self::COL_NAME_HEADER . "." . self::COL_NAME_INTERFACE_ID => 'required|string', self::COL_NAME_HEADER . "." . self::COL_NAME_SEND_DATETIME => 'required|string', self::COL_NAME_HEADER . "." . self::COL_NAME_RESULT_CODE => 'required|string', ]; } public static function validate(array $data) { $validator = Validator::make($data, self::getRules()); $validator->validate(); } public static function validateLayout(Request $request) { $request->validate(self::getRules()); } /** * Requestはバリデート済みである前提 * * @param Request $request * @return IFCommonHeader */ public static function createFromRequest(Request $request): self { $requestHeader = $request[self::COL_NAME_HEADER]; $header = new IFCommonHeader(); $header->customerCode = $requestHeader[self::COL_NAME_CUSTOMER_CODE]; $header->parkingManagementCode = $requestHeader[self::COL_NAME_PARKING_MANAGEMENT_CODE]; $header->adjusterSerialNo = $requestHeader[self::COL_NAME_ADJUSTER_SERIAL_NO]; $header->interfaceId = $requestHeader[self::COL_NAME_INTERFACE_ID]; $header->sendDatetime = $requestHeader[self::COL_NAME_SEND_DATETIME]; return $header; } /** * Requestはバリデート済みである前提 * * @param Response $request * @return IFCommonHeader */ public static function createFromResponse(Response $response): self { $responseHeader = $response[self::COL_NAME_HEADER]; $header = new IFCommonHeader(); $header->customerCode = $responseHeader[self::COL_NAME_CUSTOMER_CODE]; $header->parkingManagementCode = $responseHeader[self::COL_NAME_PARKING_MANAGEMENT_CODE]; $header->adjusterSerialNo = $responseHeader[self::COL_NAME_ADJUSTER_SERIAL_NO]; $header->interfaceId = $responseHeader[self::COL_NAME_INTERFACE_ID]; $header->sendDatetime = $responseHeader[self::COL_NAME_SEND_DATETIME]; $header->resultCode = $responseHeader[self::COL_NAME_RESULT_CODE]; return $header; } public function toArray(): array { $result = []; $result[self::COL_NAME_CUSTOMER_CODE] = $this->customerCode; $result[self::COL_NAME_PARKING_MANAGEMENT_CODE] = $this->parkingManagementCode; $result[self::COL_NAME_ADJUSTER_SERIAL_NO] = $this->adjusterSerialNo; $result[self::COL_NAME_INTERFACE_ID] = $this->interfaceId; $result[self::COL_NAME_SEND_DATETIME] = $this->sendDatetime; $result[self::COL_NAME_RESULT_CODE] = $this->resultCode; return $result; } public function ok(): bool { return $this->resultCode === '100'; } public function ng(): bool { return !$this->ok(); } }