Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class AnswerController extends FOSRestController
- {
- private $data;
- /**
- * @param mixed $data
- */
- public function setData($data): void
- {
- $this->data = $data;
- }
- /**
- * @Rest\Post("/answer")
- */
- public function postAnswerAction(Request $request)
- {
- if ($request->request->count() > 0 && $request->files->count() > 0)
- $this->setData(array_replace_recursive(
- $request->request->all(),
- $request->files->all()
- ));
- else
- $this->setData($request->request->all() ?: $request->files->all());
- $batchSize = 20;
- $i = 1; foreach($this->getData() as $item) { ++$i;
- $serializer = SerializerBuilder::create()
- ->configureHandlers(function (HandlerRegistry $registry) {
- $registry->registerSubscribingHandler(new UserHandler($this->entityManager));
- $registry->registerSubscribingHandler(new OptionsHandler($this->entityManager));
- $registry->registerSubscribingHandler(new QuestionHandler($this->entityManager));
- })
- ->addDefaultHandlers()
- ->build();
- $object = $serializer->deserialize(json_encode($item), Answer::class, 'json');
- $this->entityManager->persist($object);
- if (($i % $batchSize) === 0) {
- $this->entityManager->flush();
- $this->entityManager->clear();
- }
- }
- $this->entityManager->flush();
- $this->entityManager->clear();
- return $this->handleView($this->view($this->getData(), Response::HTTP_CREATED, ['Access-Control-Allow-Origin' => '*']));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement