hosted data qortalrequests

This commit is contained in:
PhilReact 2024-12-30 09:53:04 +02:00
parent 428994d123
commit d66a6f8df6
3 changed files with 103 additions and 2 deletions

View File

@ -239,7 +239,7 @@ const UIQortalRequests = [
'GET_TX_ACTIVITY_SUMMARY', 'GET_FOREIGN_FEE', 'UPDATE_FOREIGN_FEE',
'GET_SERVER_CONNECTION_HISTORY', 'SET_CURRENT_FOREIGN_SERVER',
'ADD_FOREIGN_SERVER', 'REMOVE_FOREIGN_SERVER', 'GET_DAY_SUMMARY', 'CREATE_TRADE_BUY_ORDER',
'CREATE_TRADE_SELL_ORDER', 'CANCEL_TRADE_SELL_ORDER', 'IS_USING_GATEWAY', 'ADMIN_ACTION', 'SIGN_TRANSACTION', 'DECRYPT_QORTAL_GROUP_DATA'
'CREATE_TRADE_SELL_ORDER', 'CANCEL_TRADE_SELL_ORDER', 'IS_USING_GATEWAY', 'ADMIN_ACTION', 'SIGN_TRANSACTION', 'DECRYPT_QORTAL_GROUP_DATA', 'DELETE_HOSTED_DATA', 'GET_HOSTED_DATA'
];

View File

@ -1,5 +1,5 @@
import { gateways, getApiKeyFromStorage } from "./background";
import { addForeignServer, addListItems, adminAction, cancelSellOrder, createBuyOrder, createPoll, createSellOrder, decryptData, decryptDataWithSharingKey, decryptQortalGroupData, deleteListItems, deployAt, encryptData, encryptDataWithSharingKey, encryptQortalGroupData, getCrossChainServerInfo, getDaySummary, getForeignFee, getListItems, getServerConnectionHistory, getTxActivitySummary, getUserAccount, getUserWallet, getUserWalletInfo, getWalletBalance, joinGroup, publishMultipleQDNResources, publishQDNResource, removeForeignServer, saveFile, sendChatMessage, sendCoin, setCurrentForeignServer, signTransaction, updateForeignFee, voteOnPoll } from "./qortalRequests/get";
import { addForeignServer, addListItems, adminAction, cancelSellOrder, createBuyOrder, createPoll, createSellOrder, decryptData, decryptDataWithSharingKey, decryptQortalGroupData, deleteHostedData, deleteListItems, deployAt, encryptData, encryptDataWithSharingKey, encryptQortalGroupData, getCrossChainServerInfo, getDaySummary, getForeignFee, getHostedData, getListItems, getServerConnectionHistory, getTxActivitySummary, getUserAccount, getUserWallet, getUserWalletInfo, getWalletBalance, joinGroup, publishMultipleQDNResources, publishQDNResource, removeForeignServer, saveFile, sendChatMessage, sendCoin, setCurrentForeignServer, signTransaction, updateForeignFee, voteOnPoll } from "./qortalRequests/get";
@ -554,6 +554,34 @@ chrome?.runtime?.onMessage.addListener((request, sender, sendResponse) => {
break;
}
case "DELETE_HOSTED_DATA": {
const data = request.payload;
deleteHostedData(data, isFromExtension)
.then((res) => {
sendResponse(res);
})
.catch((error) => {
sendResponse({ error: error.message });
});
break;
}
case "GET_HOSTED_DATA": {
const data = request.payload;
getHostedData(data, isFromExtension)
.then((res) => {
sendResponse(res);
})
.catch((error) => {
sendResponse({ error: error.message });
});
break;
}
}
}
return true;

View File

@ -3449,3 +3449,76 @@ url
throw new Error("Unable to encrypt");
}
};
export const getHostedData = async (data, isFromExtension) => {
const resPermission = await getUserPermission(
{
text1: "Do you give this application permission to",
text2: `Get a list of your hosted data?`,
},
isFromExtension
);
const { accepted } = resPermission;
if(accepted){
const limit = data?.limit ? data?.limit : 20;
const query = data?.query ? data?.query : undefined
const offset = data?.offset ? data?.offset : 0
try {
const url = await createEndpoint(`/arbitrary/hosted/resources/?limit=${limit}&query=${query}&offset=${offset}`);
const response = await fetch(url);
const data = await response.json();
return data
} catch (error) {
throw error
}
} else {
throw new Error("User declined to get list of hosted resources");
}
};
export const deleteHostedData = async (data, isFromExtension) => {
const requiredFields = ["hostedData"];
const missingFields: string[] = [];
requiredFields.forEach((field) => {
if (!data[field]) {
missingFields.push(field);
}
});
const resPermission = await getUserPermission(
{
text1: "Do you give this application permission to",
text2: `Delete ${data?.hostedData?.length} hosted resources?`,
},
isFromExtension
);
const { accepted } = resPermission;
if(accepted){
const { hostedData } = data;
for (const hostedDataItem of hostedData){
try {
const url = await createEndpoint(`/arbitrary/resource/${hostedDataItem.service}/${hostedDataItem.name}/${hostedDataItem.identifer}`);
await fetch(url, {
method: "DELETE",
headers: {
"Content-Type": "application/json",
}
});
} catch (error) {
//error
}
}
return true
} else {
throw new Error("User declined delete hosted resources");
}
};