* @license http://www.apache.org/licenses/LICENSE-2.0 Apache2 * @link http://elastic.co */ class Bulk extends AbstractEndpoint implements BulkEndpointInterface { /** * @param SerializerInterface $serializer */ public function __construct(SerializerInterface $serializer) { $this->serializer = $serializer; } /** * @param string|array|\Traversable $body * * @return $this */ public function setBody($body) { if (empty($body)) { return $this; } if (is_array($body) === true || $body instanceof \Traversable) { foreach ($body as $item) { $this->body .= $this->serializer->serialize($item) . "\n"; } } else { $this->body = $body; } return $this; } /** * @return string */ public function getURI() { return $this->getOptionalURI('_bulk'); } /** * @return string[] */ public function getParamWhitelist() { return array( 'consistency', 'refresh', 'replication', 'type', 'fields', 'pipeline', '_source', '_source_include', '_source_exclude', 'pipeline' ); } /** * @return string */ public function getMethod() { return 'POST'; } }