diff --git a/app/Http/Controllers/PostProxyController.php b/app/Http/Controllers/PostProxyController.php
index b754b2c..2d28dd7 100644
--- a/app/Http/Controllers/PostProxyController.php
+++ b/app/Http/Controllers/PostProxyController.php
@@ -231,17 +231,16 @@ public function unpauseExtension(Request $request): JsonResponse
public function channelTransfer(Request $request): JsonResponse
{
- $channel = $request->input('channel');
- $destiny = $request->input('destiny');
+ $channel = $request->input('canal');
+ $destino = $request->input('destino'); // ← este nombre es el correcto
- if (!$channel || !$destiny) {
- return response()->json(['error' => 'Extensión no proporcionada'], 400);
+ if (!$channel || !$destino) {
+ return response()->json(['error' => 'Todos los datos no fueron proporcionados'], 400);
}
-
$response = Http::post('http://10.57.251.181:3006/transferir', [
'canal' => $channel,
- 'destino' => $destiny,
+ 'destino' => $destino, // ← debe mantenerse igual que en Postman
]);
if ($response->successful()) {
@@ -251,4 +250,6 @@ public function channelTransfer(Request $request): JsonResponse
return response()->json(['error' => 'No se pudo transferir la llamada'], 500);
}
+
+
}
diff --git a/resources/js/components/actionsAgent/transferCall.jsx b/resources/js/components/actionsAgent/transferCall.jsx
new file mode 100644
index 0000000..b86bf06
--- /dev/null
+++ b/resources/js/components/actionsAgent/transferCall.jsx
@@ -0,0 +1,30 @@
+export default async function TransferCall({ canal, destino }) {
+ const payload = {
+ canal,
+ destino,
+ };
+
+ console.log('➡️ Enviando a la API:', payload);
+
+ try {
+ const response = await fetch('/api/transfer-call', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ Accept: 'application/json',
+ },
+ body: JSON.stringify(payload),
+ });
+
+ const data = await response.json();
+
+ if (response.ok) {
+ return { success: true, message: data.message };
+ } else {
+ return { success: false, message: data.error || 'Error desconocido' };
+ }
+ } catch (error) {
+ console.error('Error al transferir:', error);
+ return { success: false, message: 'Error de red o servidor' };
+ }
+}
diff --git a/resources/js/components/adminActions.jsx b/resources/js/components/adminActions.jsx
index 3baf654..a6f247d 100644
--- a/resources/js/components/adminActions.jsx
+++ b/resources/js/components/adminActions.jsx
@@ -43,7 +43,7 @@ export default function AdminActions({ data }) {
{/*1.1 MAPEO DE BOTONES */}
{actions.map((action, index) => {
- const disabled = isUnspecified || action.disabledIf(conditions);
+ const disabled = isUnspecified || action.disabledIf(conditions);
return (
{
- console.log('Transferir a:', queue);
- hideModal(); // También puedes cerrarlo aquí
- }}
+ handlers={handlers}
/>
)}
diff --git a/resources/js/components/transferModal.jsx b/resources/js/components/transferModal.jsx
index 3dba6ee..d4994c7 100644
--- a/resources/js/components/transferModal.jsx
+++ b/resources/js/components/transferModal.jsx
@@ -2,8 +2,8 @@ import React from "react";
import { useState } from "react";
import AgentModalWrapper from '@/components/agentsModalWrapper';
-function TransferModal ({hideModal, handleTransfer}){
- const [selectedQueue, setSelectedQueue] = useState(null)
+function TransferModal ({hideModal, handlers}){
+ const [selectedOperation, setSelectedOperation] = useState(null)
return(
<>
Transferir llamada
@@ -18,9 +18,9 @@ function TransferModal ({hideModal, handleTransfer}){
{['Tramites', 'Soporte', 'Movil', 'Retencion', 'Pruebas'].map((area) => (
diff --git a/resources/js/hooks/useAdminButtons.jsx b/resources/js/hooks/useAdminButtons.jsx
index db03291..7271273 100644
--- a/resources/js/hooks/useAdminButtons.jsx
+++ b/resources/js/hooks/useAdminButtons.jsx
@@ -30,7 +30,7 @@ export default function useAdminButtons({ data, handlers }) {
bg: 'hover:bg-blue-50 dark:hover:bg-blue-400/60',
border: 'border-blue-200 dark:border-black',
onClick: () => handlers.modal,
- disabledIf: (c) => c.paused,
+ disabledIf: (c) => c.notCall,
},
{
label: 'Pausar agente',
diff --git a/resources/js/hooks/useAdminHandlers.jsx b/resources/js/hooks/useAdminHandlers.jsx
index a679a2c..cf7590c 100644
--- a/resources/js/hooks/useAdminHandlers.jsx
+++ b/resources/js/hooks/useAdminHandlers.jsx
@@ -2,6 +2,7 @@ import { useState } from 'react';
import hangupChannel from '@/components/actionsAgent/deleteCall';
import PausedExtension from '@/components/actionsAgent/pausedExtension';
import UnpauseExtension from '@/components/actionsAgent/unpauseExtension';
+import TransferCall from '@/components/actionsAgent/transferCall';
export default function useAdminHandlers(data) {
const [toast, setToast] = useState({ show: false, success: true, message: '' });
@@ -26,11 +27,11 @@ export default function useAdminHandlers(data) {
showToast(result);
};
- const handleTransfer = async () => {
- const result = await UnpauseExtension(data?.extension);
+ const handleTransfer = async (destino) => {
+ const result = await TransferCall({ canal: data?.canalRelacionado, destino });
showToast(result);
};
- return { handleHangup, handlePause, handleUnpause, toast };
+ return { handleHangup, handlePause, handleUnpause,handleTransfer, toast };
}
\ No newline at end of file
diff --git a/routes/api.php b/routes/api.php
index 8875e78..8f5daab 100644
--- a/routes/api.php
+++ b/routes/api.php
@@ -15,4 +15,5 @@
Route::get('/getOverview', [PostProxyController::class, 'getOverview']);
Route::post('/hangup-channel', [PostProxyController::class, 'chanelHangup']);
Route::post('/pause-extension', [PostProxyController::class, 'pauseExtension']);
-Route::post('/unpause-extension', [PostProxyController::class, 'unpauseExtension']);
\ No newline at end of file
+Route::post('/unpause-extension', [PostProxyController::class, 'unpauseExtension']);
+Route::post('/transfer-call', [PostProxyController::class, 'channelTransfer']);
\ No newline at end of file