/** * @param LocationInterface $location * @param Request $request * * @return AMQPMessage */ private function createMessage(LocationInterface $location, Request $request) { $encoded = $this->encoder->encode($request->getArguments()); return new AMQPMessage($encoded->getBody(), ['content_type' => $encoded->getType(), 'message_id' => uniqid('', true), 'timestamp' => time(), 'application_headers' => new AMQPTable(array_merge($request->getHeaders(), ['to' => $location->name(), 'topic' => $request->getTopic(), 'version' => $request->getVersion()]))]); }
/** * @param string $service * @param Request $request * * @return string */ private function getEncodedHeaders($service, Request $request) { $headers = ['Accept: application/json', 'User-Agent: Message Bus Client', 'Content-Type: application/json', self::TO_HEADER . ': ' . $service, self::TOPIC_HEADER . ': ' . $request->getTopic(), self::VERSION_HEADER . ': ' . $request->getVersion()]; if ($this->token) { $headers[] = 'Authorization: Basic ' . $this->token; } foreach ($request->getHeaders() as $key => $value) { $name = implode('-', array_map('ucfirst', explode('_', $key))); $headers[] = sprintf('%s%s: %s', self::HEADER_PREFIX, $name, $value); } return $headers; }