Correção para que usuários que não estejam em nenhuma fila possam enviar mensagem a apartir da primeira conexão que esteja com status connected. Correção dos hooks do reack e implementação do unlimited para o dashboard exibir mais que 40 tickets
parent
59485325cd
commit
33fc280801
|
@ -24,6 +24,7 @@ type IndexQuery = {
|
|||
showAll: string;
|
||||
withUnreadMessages: string;
|
||||
queueIds: string;
|
||||
unlimited?: string;
|
||||
};
|
||||
|
||||
interface TicketData {
|
||||
|
@ -44,9 +45,12 @@ export const index = async (req: Request, res: Response): Promise<Response> => {
|
|||
searchParam,
|
||||
showAll,
|
||||
queueIds: queueIdsStringified,
|
||||
withUnreadMessages
|
||||
withUnreadMessages,
|
||||
unlimited
|
||||
} = req.query as IndexQuery;
|
||||
|
||||
|
||||
|
||||
const userId = req.user.id;
|
||||
|
||||
let queueIds: number[] = [];
|
||||
|
@ -63,7 +67,8 @@ export const index = async (req: Request, res: Response): Promise<Response> => {
|
|||
showAll,
|
||||
userId,
|
||||
queueIds,
|
||||
withUnreadMessages
|
||||
withUnreadMessages,
|
||||
unlimited
|
||||
});
|
||||
|
||||
return res.status(200).json({ tickets, count, hasMore });
|
||||
|
@ -171,6 +176,8 @@ export const update = async ( req: Request, res: Response ): Promise<Response> =
|
|||
|
||||
const ticketData: TicketData = req.body;
|
||||
|
||||
//ticketData: { status: 'open', userId: 4 } , ticketId
|
||||
|
||||
const { ticket } = await UpdateTicketService({
|
||||
ticketData,
|
||||
ticketId
|
||||
|
|
|
@ -26,21 +26,34 @@ const GetDefaultWhatsApp = async (userId?: string | number ): Promise<Whatsapp>
|
|||
|
||||
console.log('+++++++++++++++ queueId: ',queue?.queueId, ' | userId: ', userId)
|
||||
|
||||
const whatsapp = await WhatsappQueue.findOne(
|
||||
{
|
||||
where: { queueId: `${queue?.queueId }`},
|
||||
raw:true,
|
||||
attributes: ['whatsappId']
|
||||
if(queue?.queueId){
|
||||
|
||||
console.log('Usuário está adicionado à fila!')
|
||||
|
||||
const whatsapp = await WhatsappQueue.findOne(
|
||||
{
|
||||
where: { queueId: `${queue?.queueId }`},
|
||||
raw:true,
|
||||
attributes: ['whatsappId']
|
||||
});
|
||||
|
||||
console.log('+++++++++++++++ whatsappId1: ',whatsapp?.whatsappId)
|
||||
|
||||
defaultWhatsapp = await Whatsapp.findOne({
|
||||
where: { id: `${whatsapp?.whatsappId}` }
|
||||
});
|
||||
}
|
||||
else{
|
||||
|
||||
console.log('Usuário não está adicionando a nenhuma fila e vai enviar a mensagem a partir da primeira conexao disponível!')
|
||||
defaultWhatsapp = await Whatsapp.findOne({
|
||||
where: { status: 'CONNECTED' }
|
||||
});
|
||||
|
||||
console.log('+++++++++++++++ whatsappId1: ',whatsapp?.whatsappId)
|
||||
|
||||
defaultWhatsapp = await Whatsapp.findOne({
|
||||
where: { id: `${whatsapp?.whatsappId}` }
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
else{
|
||||
|
||||
defaultWhatsapp = await Whatsapp.findOne({
|
||||
where: { status: 'CONNECTED' }
|
||||
});
|
||||
|
|
|
@ -16,6 +16,7 @@ interface Request {
|
|||
userId: string;
|
||||
withUnreadMessages?: string;
|
||||
queueIds: number[];
|
||||
unlimited?: string;
|
||||
}
|
||||
|
||||
interface Response {
|
||||
|
@ -32,7 +33,8 @@ const ListTicketsService = async ({
|
|||
date,
|
||||
showAll,
|
||||
userId,
|
||||
withUnreadMessages
|
||||
withUnreadMessages,
|
||||
unlimited='false'
|
||||
}: Request): Promise<Response> => {
|
||||
let whereCondition: Filterable["where"] = {
|
||||
[Op.or]: [{ userId }, { status: "pending" }],
|
||||
|
@ -126,7 +128,7 @@ const ListTicketsService = async ({
|
|||
};
|
||||
}
|
||||
|
||||
const limit = 40;
|
||||
const limit = unlimited === 'true' ? 100000 : 40;
|
||||
const offset = limit * (+pageNumber - 1);
|
||||
|
||||
const { count, rows: tickets } = await Ticket.findAndCountAll({
|
||||
|
|
|
@ -107,6 +107,9 @@ const TransferTicketModal = ({ modalOpen, onClose, ticketid }) => {
|
|||
}
|
||||
}
|
||||
|
||||
// test del PARA APARECER NA FILA DE OUTRO ATENDENTE E O MESMO CLICAR EM ACEITAR AO INVES DE ENVIAR PARA ATENDENDO
|
||||
data.status = 'pending'
|
||||
|
||||
await api.put(`/tickets/${ticketid}`, data);
|
||||
|
||||
setLoading(false);
|
||||
|
|
|
@ -11,6 +11,7 @@ const useTickets = ({
|
|||
showAll,
|
||||
queueIds,
|
||||
withUnreadMessages,
|
||||
unlimited
|
||||
}) => {
|
||||
const [loading, setLoading] = useState(true);
|
||||
const [hasMore, setHasMore] = useState(false);
|
||||
|
@ -30,6 +31,7 @@ const useTickets = ({
|
|||
showAll,
|
||||
queueIds,
|
||||
withUnreadMessages,
|
||||
unlimited
|
||||
},
|
||||
});
|
||||
setTickets(data.tickets);
|
||||
|
@ -51,6 +53,8 @@ const useTickets = ({
|
|||
showAll,
|
||||
queueIds,
|
||||
withUnreadMessages,
|
||||
|
||||
unlimited
|
||||
]);
|
||||
|
||||
return { tickets, loading, hasMore };
|
||||
|
|
|
@ -54,13 +54,14 @@ const Dashboard = () => {
|
|||
userQueueIds = user.queues.map(q => q.id);
|
||||
}
|
||||
|
||||
const GetTickets = (status, showAll, withUnreadMessages) => {
|
||||
const GetTickets = (status, showAll, withUnreadMessages, unlimited) => {
|
||||
|
||||
const { tickets } = useTickets({
|
||||
status: status,
|
||||
showAll: showAll,
|
||||
withUnreadMessages: withUnreadMessages,
|
||||
queueIds: JSON.stringify(userQueueIds)
|
||||
queueIds: JSON.stringify(userQueueIds),
|
||||
unlimited: unlimited
|
||||
});
|
||||
return tickets.length;
|
||||
}
|
||||
|
@ -81,7 +82,7 @@ const Dashboard = () => {
|
|||
</Typography>
|
||||
<Grid item>
|
||||
<Typography component="h1" variant="h4">
|
||||
{GetTickets("open", "true", "false")}
|
||||
{GetTickets("open", "true", "false", "true")}
|
||||
</Typography>
|
||||
</Grid>
|
||||
</Paper>
|
||||
|
@ -93,7 +94,7 @@ const Dashboard = () => {
|
|||
</Typography>
|
||||
<Grid item>
|
||||
<Typography component="h1" variant="h4">
|
||||
{GetTickets("pending", "true", "false")}
|
||||
{GetTickets("pending", "true", "false", "true")}
|
||||
</Typography>
|
||||
</Grid>
|
||||
</Paper>
|
||||
|
@ -105,7 +106,7 @@ const Dashboard = () => {
|
|||
</Typography>
|
||||
<Grid item>
|
||||
<Typography component="h1" variant="h4">
|
||||
{GetTickets("closed", "true", "false")}
|
||||
{GetTickets("closed", "true", "false", "true")}
|
||||
</Typography>
|
||||
</Grid>
|
||||
</Paper>
|
||||
|
|
|
@ -290,7 +290,7 @@ const Report = () => {
|
|||
|
||||
//setLoading(false);
|
||||
|
||||
// console.log('dataQuery: ', dataQuery.data)
|
||||
console.log('dataQuery: ', dataQuery.data)
|
||||
|
||||
console.log()
|
||||
|
||||
|
@ -359,6 +359,7 @@ const handleCSVMessages = () =>{
|
|||
// console.log('dataCSVFormat: ', dataCSVFormat)
|
||||
|
||||
setDataCSV(dataCSVFormat)
|
||||
setIsMount(false);
|
||||
// setDataCSV(dataQuery.data)
|
||||
}
|
||||
|
||||
|
@ -374,16 +375,18 @@ const handleCSVMessages = () =>{
|
|||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
useEffect(() => {
|
||||
|
||||
if(isMount){
|
||||
setIsMount(false);
|
||||
return;
|
||||
}
|
||||
|
||||
csvLink.current.link.click()
|
||||
|
||||
}, [dataCSV]);
|
||||
}, [dataCSV, isMount, csvLink]);
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue