Untitled

mail@pastecode.io avatar
unknown
plain_text
2 years ago
4.3 kB
3
Indexable
Never
#[Route('/api/chat/enviarMensajeChatGPT', name: 'chat_usuarioGPT',  methods: ['POST'])]
    #[OA\Tag(name:'Chat')]
    #[Security(name: "apikey")]
    #[OA\RequestBody(description: "Dto del usuario", required: true, content: new OA\JsonContent(ref: new Model(type:CrearChatDTO::class)))]
    #[OA\Response(response: 200,description: "Mensaje enviado correctamente")]
    #[OA\Response(response: 300,description: "No se pudo enviar el mensaje correctamente")]
    #[OA\Response(response: 400,description: "No puedes enviar mensaje de otro usuario")]
    public function enviarMensajeChatGPT(Request $request, ChatRepository $chatRepository,Utilidades $utils,
                                         UsuarioRepository $usuarioRepository): JsonResponse
    {

        $json  = json_decode($request->getContent(), true);
        $apikey = $request->headers->get('apikey');
        $idu = Token::getPayload($apikey)["user_id"];;
        $id_emisor = $json['usuarioIdEmisor'];
        $id_receptor = $json['usuarioIdReceptor'];
        $texto = $json['texto'];
        $fecha = date('d-m-Y H:i:s');
        $foto = $json['foto'];

        if($utils->comprobarPermisos($request, 0)) {
            $chat = new Chat();

            $parametrosBusqueda1 = array(
                'id' => $id_emisor
            );

            $parametrosBusqueda2 = array(
                'id' => $id_receptor
            );

            $usuarioemisor = $usuarioRepository->findOneBy($parametrosBusqueda1);
            $usuarioreceptor = $usuarioRepository->findOneBy($parametrosBusqueda2);


            $chat->setUsuarioIdEmisor($usuarioemisor);
            $chat->setUsuarioIdReceptor($usuarioreceptor);
            $chat->setTexto($texto);
            $chat->setFecha($fecha);
            //setFechaNacimiento((date_create_from_format('Y/d/m H:i:s',$json['fecha_nacimiento'])));
            $chat->setFoto($foto);

            $em = $this->doctrine->getManager();
            $em->persist($chat);
            $em->flush();
//        $chatRepository->enviarMensaje($id_emisor, $id_receptor, $texto, $fecha, $foto);
            return new JsonResponse(" Mensaje enviado correctamente ", 200, []);
        }elseif($id_emisor==10){
            $chat = new Chat();

            $parametrosBusqueda1 = array(
                'id' => $id_emisor
            );

            $parametrosBusqueda2 = array(
                'id' => $idu
            );

            $usuarioemisor = $usuarioRepository->findOneBy($parametrosBusqueda1);
            $usuarioreceptor = $usuarioRepository->findOneBy($parametrosBusqueda2);


            $chat->setUsuarioIdEmisor($usuarioemisor);
            $chat->setUsuarioIdReceptor($usuarioreceptor);
            $chat->setTexto($texto);
            $chat->setFecha($fecha);
            $chat->setFoto($foto);

            $em = $this->doctrine->getManager();
            $em->persist($chat);
            $em->flush();

            return new JsonResponse(" Mensaje enviado correctamente ", 200, []);

        }
        elseif($utils->comprobarPermisos($request, 1)){

            $chat = new Chat();

            $parametrosBusqueda1 = array(
                'id' => $idu
            );

            $parametrosBusqueda2 = array(
                'id' => $id_receptor
            );

            $usuarioemisor = $usuarioRepository->findOneBy($parametrosBusqueda1);
            $usuarioreceptor = $usuarioRepository->findOneBy($parametrosBusqueda2);


            $chat->setUsuarioIdEmisor($usuarioemisor);
            $chat->setUsuarioIdReceptor($usuarioreceptor);
            $chat->setTexto($texto);
            $chat->setFecha($fecha);
            //setFechaNacimiento((date_create_from_format('Y/d/m H:i:s',$json['fecha_nacimiento'])));
            $chat->setFoto($foto);

            $em = $this->doctrine->getManager();
            $em->persist($chat);
            $em->flush();
//        $chatRepository->enviarMensaje($id_emisor, $id_receptor, $texto, $fecha, $foto);
            return new JsonResponse(" Mensaje enviado correctamente ", 200, []);

        }  else{
            return new JsonResponse("{ mensaje: No se pudo enviar el mensaje correctamente }", 300, [], true);
        }

    }