Merge remote-tracking branch 'origin/develop' into develop

This commit is contained in:
DJ2LS 2024-02-03 15:01:08 +01:00
commit 0f5736cdcc
3 changed files with 49 additions and 42 deletions

View file

@ -12,7 +12,6 @@
</button> </button>
<button <button
class="btn btn-outline-secondary border-0 me-1" class="btn btn-outline-secondary border-0 me-1"
@click="repeatMessage" @click="repeatMessage"
> >

View file

@ -162,12 +162,10 @@ export async function sendFreedataMessage(destination, body) {
}); });
} }
export async function retransmitFreedataMessage(id) { export async function retransmitFreedataMessage(id) {
return await apiPost(`/freedata/messages/${id}`); return await apiPost(`/freedata/messages/${id}`);
} }
export async function deleteFreedataMessage(id) { export async function deleteFreedataMessage(id) {
return await apiDelete(`/freedata/messages/${id}`); return await apiDelete(`/freedata/messages/${id}`);
} }

View file

@ -6,7 +6,11 @@ setActivePinia(pinia);
import { useChatStore } from "../store/chatStore.js"; import { useChatStore } from "../store/chatStore.js";
const chatStore = useChatStore(pinia); const chatStore = useChatStore(pinia);
import { sendFreedataMessage, deleteFreedataMessage, retransmitFreedataMessage } from "./api" import {
sendFreedataMessage,
deleteFreedataMessage,
retransmitFreedataMessage,
} from "./api";
interface Message { interface Message {
id: string; id: string;
@ -20,35 +24,47 @@ interface Message {
statistics: any; statistics: any;
} }
export async function processFreedataMessages(data) { export async function processFreedataMessages(data) {
if(typeof(data) != "undefined"){ if (typeof data != "undefined") {
chatStore.callsign_list = createCallsignListFromAPI(data) chatStore.callsign_list = createCallsignListFromAPI(data);
chatStore.sorted_chat_list = createSortedMessagesList(data) chatStore.sorted_chat_list = createSortedMessagesList(data);
} }
} }
function createCallsignListFromAPI(data: { total_messages: number, messages: Message[] }): {[key: string]: {timestamp: string, body: string}} { function createCallsignListFromAPI(data: {
const callsignList: {[key: string]: {timestamp: string, body: string}} = {}; total_messages: number;
messages: Message[];
}): { [key: string]: { timestamp: string; body: string } } {
const callsignList: { [key: string]: { timestamp: string; body: string } } =
{};
data.messages.forEach(message => { data.messages.forEach((message) => {
let callsign = message.direction === 'receive' ? message.origin : message.destination; let callsign =
message.direction === "receive" ? message.origin : message.destination;
if (!callsignList[callsign] || callsignList[callsign].timestamp < message.timestamp) { if (
callsignList[callsign] = { timestamp: message.timestamp, body: message.body }; !callsignList[callsign] ||
callsignList[callsign].timestamp < message.timestamp
) {
callsignList[callsign] = {
timestamp: message.timestamp,
body: message.body,
};
} }
}); });
return callsignList; return callsignList;
} }
function createSortedMessagesList(data: {
total_messages: number;
function createSortedMessagesList(data: { total_messages: number, messages: Message[] }): {[key: string]: Message[]} { messages: Message[];
}): { [key: string]: Message[] } {
const callsignMessages: { [key: string]: Message[] } = {}; const callsignMessages: { [key: string]: Message[] } = {};
data.messages.forEach(message => { data.messages.forEach((message) => {
let callsign = message.direction === 'receive' ? message.origin : message.destination; let callsign =
message.direction === "receive" ? message.origin : message.destination;
if (!callsignMessages[callsign]) { if (!callsignMessages[callsign]) {
callsignMessages[callsign] = []; callsignMessages[callsign] = [];
@ -60,24 +76,19 @@ function createSortedMessagesList(data: { total_messages: number, messages: Mess
return callsignMessages; return callsignMessages;
} }
export function newMessage(dxcall, body) { export function newMessage(dxcall, body) {
sendFreedataMessage(dxcall, body) sendFreedataMessage(dxcall, body);
} }
/* ------ TEMPORARY DUMMY FUNCTIONS --- */ /* ------ TEMPORARY DUMMY FUNCTIONS --- */
export function repeatMessageTransmission(id) { export function repeatMessageTransmission(id) {
retransmitFreedataMessage(id); retransmitFreedataMessage(id);
} }
export function deleteCallsignFromDB(callsign) { export function deleteCallsignFromDB(callsign) {
for (var message of chatStore.sorted_chat_list[callsign]) { for (var message of chatStore.sorted_chat_list[callsign]) {
deleteFreedataMessage(message["id"]); deleteFreedataMessage(message["id"]);
} }
} }
export function deleteMessageFromDB(id) { export function deleteMessageFromDB(id) {
@ -85,10 +96,9 @@ export function deleteMessageFromDB(id){
} }
export function requestMessageInfo(id) { export function requestMessageInfo(id) {
return return;
} }
export function getMessageAttachment(id) { export function getMessageAttachment(id) {
return return;
} }