private function createBatchRequestBody(array $operations, array $contexts)
    {
        $mimeBodyParts = array();
        $contentId     = 1;
        $count         = count($operations);

        Validate::isTrue(
            count($operations) == count($contexts),
            Resources::INVALID_OC_COUNT_MSG
        );

        for ($i = 0; $i < $count; $i++) {
            $operation = $operations[$i];
            $context   = $contexts[$i];
            $type      = $operation->getType();

            switch ($type) {
                case BatchOperationType::INSERT_ENTITY_OPERATION:
                case BatchOperationType::UPDATE_ENTITY_OPERATION:
                case BatchOperationType::MERGE_ENTITY_OPERATION:
                case BatchOperationType::INSERT_REPLACE_ENTITY_OPERATION:
                case BatchOperationType::INSERT_MERGE_ENTITY_OPERATION:
                    $contentType  = $context->getHeader(Resources::CONTENT_TYPE);
                    $body         = $context->getBody();
                    $contentType .= ';type=entry';
                    $context->addOptionalHeader(Resources::CONTENT_TYPE, $contentType);
                    // Use mb_strlen instead of strlen to get the length of the string
                    // in bytes instead of the length in chars.
                    $context->addOptionalHeader(
                        Resources::CONTENT_LENGTH,
                        strlen($body)
                    );
                    break;

                case BatchOperationType::DELETE_ENTITY_OPERATION:
                    break;

                default:
                    throw new \InvalidArgumentException();
            }

            $context->addOptionalHeader(Resources::CONTENT_ID, $contentId);
            $mimeBodyPart    = $context->__toString();
            $mimeBodyParts[] = $mimeBodyPart;
            $contentId++;
        }

        return $this->mimeSerializer->encodeMimeMultipart($mimeBodyParts);
    }
private function createBatchRequestBody(array $operations, array $contexts)
    {
        $mimeBodyParts = array();
        $contentId     = 1;
        $count         = count($operations);

        Validate::isTrue(
            count($operations) == count($contexts),
            Resources::INVALID_OC_COUNT_MSG
        );

        for ($i = 0; $i < $count; $i++) {
            $operation = $operations[$i];
            $context   = $contexts[$i];
            $type      = $operation->getType();

            switch ($type) {
                case BatchOperationType::INSERT_ENTITY_OPERATION:
                case BatchOperationType::UPDATE_ENTITY_OPERATION:
                case BatchOperationType::MERGE_ENTITY_OPERATION:
                case BatchOperationType::INSERT_REPLACE_ENTITY_OPERATION:
                case BatchOperationType::INSERT_MERGE_ENTITY_OPERATION:
                    $contentType  = $context->getHeader(Resources::CONTENT_TYPE);
                    $body         = $context->getBody();
                    $contentType .= ';type=entry';
                    $context->addOptionalHeader(Resources::CONTENT_TYPE, $contentType);
                    // Use mb_strlen instead of strlen to get the length of the string
                    // in bytes instead of the length in chars.
                    $context->addOptionalHeader(
                        Resources::CONTENT_LENGTH,
                        strlen($body)
                    );
                    break;

                case BatchOperationType::DELETE_ENTITY_OPERATION:
                    break;

                default:
                    throw new \InvalidArgumentException();
            }

            $context->addOptionalHeader(Resources::CONTENT_ID, $contentId);
            $mimeBodyPart    = $context->__toString();
            $mimeBodyParts[] = $mimeBodyPart;
            $contentId++;
        }

        return $this->mimeSerializer->encodeMimeMultipart($mimeBodyParts);
    }
private function createBatchRequestBody ( array $ operations , array $ contexts ) { $ mimeBodyParts = array ( ) ; $ contentId = 1 ; $ count = count ( $ operations ) ; Validate :: isTrue ( count ( $ operations ) == count ( $ contexts ) , Resources :: INVALID_OC_COUNT_MSG ) ; for ( $ i = 0 ; $ i < $ count ; $ i ++ ) { $ operation = $ operations [ $ i ] ; $ context = $ contexts [ $ i ] ; $ type = $ operation -> getType ( ) ; switch ( $ type ) { case BatchOperationType :: INSERT_ENTITY_OPERATION : case BatchOperationType :: UPDATE_ENTITY_OPERATION : case BatchOperationType :: MERGE_ENTITY_OPERATION : case BatchOperationType :: INSERT_REPLACE_ENTITY_OPERATION : case BatchOperationType :: INSERT_MERGE_ENTITY_OPERATION : $ contentType = $ context -> getHeader ( Resources :: CONTENT_TYPE ) ; $ body = $ context -> getBody ( ) ; $ contentType .= ';type=entry' ; $ context -> addOptionalHeader ( Resources :: CONTENT_TYPE , $ contentType ) ; // Use mb_strlen instead of strlen to get the length of the string // in bytes instead of the length in chars. $ context -> addOptionalHeader ( Resources :: CONTENT_LENGTH , strlen ( $ body ) ) ; break ; case BatchOperationType :: DELETE_ENTITY_OPERATION : break ; default : throw new \ InvalidArgumentException ( ) ; } $ context -> addOptionalHeader ( Resources :: CONTENT_ID , $ contentId ) ; $ mimeBodyPart = $ context -> __toString ( ) ; $ mimeBodyParts [ ] = $ mimeBodyPart ; $ contentId ++ ; } return $ this -> mimeSerializer -> encodeMimeMultipart ( $ mimeBodyParts ) ; }
Creates MIME part body for batch API.

@param array $operations The batch operations.
@param array $contexts   The contexts objects.

@return array

@throws \InvalidArgumentException
Creates MIME part body for batch API .