/**
  *
  * @Route("/msg", name="api.post.msg")
  * @Method("POST")
  */
 public function postMsgAction(Request $request)
 {
     $user = $this->getUser();
     if (empty($user) || !$user instanceof User) {
         return $this->createResponse([self::KEY_STATUS => self::STATUS_ERROR, self::KEY_MESSAGE => 'Not logged in']);
     }
     $data = $this->getDataFromRequest($request);
     $msg = $data['message'];
     if (empty($msg)) {
         return $this->createResponse([self::KEY_STATUS => self::STATUS_ERROR, self::KEY_MESSAGE => 'NO message provided']);
     }
     $lat = $data['lat'];
     $lng = $data['lng'];
     if (empty($lat) || empty($lng)) {
         return $this->createResponse([self::KEY_STATUS => self::STATUS_ERROR, self::KEY_MESSAGE => 'Incorrect geolocation info.']);
     }
     /** @var Game $game */
     $game = $this->getDoctrine()->getManager()->getRepository('AppBundle:Player')->find(1);
     /** @var Player $player */
     $player = $this->getDoctrine()->getManager()->getRepository('AppBundle:Player')->findOneBy(['user' => $user]);
     $teamMembers = $player->getTeam()->getPlayers();
     $ids = [];
     /** @var Player $teamMember */
     foreach ($teamMembers as $teamMember) {
         //            if ($teamMember->getUser() != $this->getUser()) {
         $id = $teamMember->getUser()->getGcmRegistrationId();
         if (!empty($id)) {
             $ids[] = $id;
         }
         //            }
     }
     $message = new Message();
     $message->setMessage($msg);
     $message->setPlayer($player);
     $message->setLat($lat);
     $message->setLng($lng);
     $this->getDoctrine()->getManager()->persist($message);
     $this->getDoctrine()->getManager()->flush();
     /** @var GcmService $gcmService */
     $gcmService = $this->get('gcm_service');
     $result = $gcmService->sendNotification($ids, ['message' => $msg, 'fromPlayer' => $player, 'team' => $teamMember, 'lat' => $lat, 'lng' => $lng]);
     file_put_contents(__DIR__ . '/../../app/logs/gcm.log', is_array($result) ? json_encode($result) : $result);
     return $this->createResponse([self::KEY_STATUS => self::STATUS_OK, self::KEY_MESSAGE => 'Message sent']);
 }