import { API_BASE } from "@/utils/constants"; import { baseHeaders } from "@/utils/request"; /** * @typedef {Object} MobileConnection * @property {string} id - The database ID of the device. * @property {string} deviceId - The device ID of the device. * @property {string} deviceOs - The operating system of the device. * @property {boolean} approved - Whether the device is approved. * @property {string} createdAt - The date and time the device was created. */ const MobileConnection = { /** * Get the connection info for the mobile app. * @returns {Promise<{connectionUrl: string|null}>} The connection info. */ getConnectionInfo: async function () { return await fetch(`${API_BASE}/mobile/connect-info`, { headers: baseHeaders(), }) .then((res) => res.json()) .catch(() => false); }, /** * Get all the devices from the database. * @returns {Promise} The devices. */ getDevices: async function () { return await fetch(`${API_BASE}/mobile/devices`, { headers: baseHeaders(), }) .then((res) => res.json()) .then((res) => res.devices || []) .catch(() => []); }, /** * Delete a device from the database. * @param {string} deviceId - The database ID of the device to delete. * @returns {Promise<{message: string}>} The deleted device. */ deleteDevice: async function (id) { return await fetch(`${API_BASE}/mobile/${id}`, { method: "DELETE", headers: baseHeaders(), }) .then((res) => res.json()) .catch(() => false); }, /** * Update a device in the database. * @param {string} id - The database ID of the device to update. * @param {Object} updates - The updates to apply to the device. * @returns {Promise<{updates: MobileDevice}>} The updated device. */ updateDevice: async function (id, updates = {}) { return await fetch(`${API_BASE}/mobile/update/${id}`, { method: "POST", body: JSON.stringify(updates), headers: baseHeaders(), }) .then((res) => res.json()) .catch(() => false); }, }; export default MobileConnection;