code: public function handleRequest(Request $request, Repository $repository, $action)
      {
          $commitSize = $this->manager->getBulkCommitSize();
          $documents = $this->requestSerializer->deserializeRequest($request);
  
          switch ($action) {
              case 'create':
                  return $this->create($documents, $repository, $commitSize);
                  break;
              case 'update':
                  return $this->update($documents, $repository, $commitSize);
                  break;
              case 'delete':
                  return $this->delete($documents, $repository, $commitSize);
                  break;
              default:
                  throw new InvalidArgumentException(
                      'handleRequest method can only handle `create`, `update` and `delete` actions.'
                  );
          }
      }
docs: Handles the requests and returns the json for the response body
  @param Request    $request
  @param Repository $repository
  @param string     $action
  
  @return string
  @throws InvalidArgumentException