simplest implementation to remove one provider, also added a user-defined name for provider
This commit is contained in:
parent
18c5371d65
commit
7c2d2a3e15
@ -1586,6 +1586,11 @@ export interface BackupProviderRecord {
|
|||||||
*/
|
*/
|
||||||
baseUrl: string;
|
baseUrl: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Name of the provider
|
||||||
|
*/
|
||||||
|
name: string;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Terms of service of the provider.
|
* Terms of service of the provider.
|
||||||
* Might be unavailable in the DB in certain situations
|
* Might be unavailable in the DB in certain situations
|
||||||
|
@ -304,8 +304,8 @@ async function runBackupCycleForProvider(
|
|||||||
"if-none-match": encodeCrock(currentBackupHash),
|
"if-none-match": encodeCrock(currentBackupHash),
|
||||||
...(provider.lastBackupHash
|
...(provider.lastBackupHash
|
||||||
? {
|
? {
|
||||||
"if-match": provider.lastBackupHash,
|
"if-match": provider.lastBackupHash,
|
||||||
}
|
}
|
||||||
: {}),
|
: {}),
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@ -522,6 +522,21 @@ export async function processBackupForProvider(
|
|||||||
await guardOperationException(run, onOpErr);
|
await guardOperationException(run, onOpErr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface RemoveBackupProviderRequest {
|
||||||
|
provider: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const codecForRemoveBackupProvider = (): Codec<RemoveBackupProviderRequest> =>
|
||||||
|
buildCodecForObject<RemoveBackupProviderRequest>()
|
||||||
|
.property("provider", codecForString())
|
||||||
|
.build("RemoveBackupProviderRequest");
|
||||||
|
|
||||||
|
export async function removeBackupProvider(ws: InternalWalletState, req: RemoveBackupProviderRequest): Promise<void> {
|
||||||
|
await ws.db.mktx(({ backupProviders }) => ({ backupProviders }))
|
||||||
|
.runReadWrite(async (tx) => {
|
||||||
|
await tx.backupProviders.delete(req.provider)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export interface RunBackupCycleRequest {
|
export interface RunBackupCycleRequest {
|
||||||
/**
|
/**
|
||||||
@ -590,6 +605,8 @@ const codecForSyncTermsOfServiceResponse = (): Codec<SyncTermsOfServiceResponse>
|
|||||||
|
|
||||||
export interface AddBackupProviderRequest {
|
export interface AddBackupProviderRequest {
|
||||||
backupProviderBaseUrl: string;
|
backupProviderBaseUrl: string;
|
||||||
|
|
||||||
|
name: string;
|
||||||
/**
|
/**
|
||||||
* Activate the provider. Should only be done after
|
* Activate the provider. Should only be done after
|
||||||
* the user has reviewed the provider.
|
* the user has reviewed the provider.
|
||||||
@ -600,6 +617,7 @@ export interface AddBackupProviderRequest {
|
|||||||
export const codecForAddBackupProviderRequest = (): Codec<AddBackupProviderRequest> =>
|
export const codecForAddBackupProviderRequest = (): Codec<AddBackupProviderRequest> =>
|
||||||
buildCodecForObject<AddBackupProviderRequest>()
|
buildCodecForObject<AddBackupProviderRequest>()
|
||||||
.property("backupProviderBaseUrl", codecForString())
|
.property("backupProviderBaseUrl", codecForString())
|
||||||
|
.property("name", codecForString())
|
||||||
.property("activate", codecOptional(codecForBoolean()))
|
.property("activate", codecOptional(codecForBoolean()))
|
||||||
.build("AddBackupProviderRequest");
|
.build("AddBackupProviderRequest");
|
||||||
|
|
||||||
@ -649,6 +667,7 @@ export async function addBackupProvider(
|
|||||||
}
|
}
|
||||||
await tx.backupProviders.put({
|
await tx.backupProviders.put({
|
||||||
state,
|
state,
|
||||||
|
name: req.name,
|
||||||
terms: {
|
terms: {
|
||||||
annualFee: terms.annual_fee,
|
annualFee: terms.annual_fee,
|
||||||
storageLimitInMegabytes: terms.storage_limit_in_megabytes,
|
storageLimitInMegabytes: terms.storage_limit_in_megabytes,
|
||||||
@ -661,11 +680,7 @@ export async function addBackupProvider(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function removeBackupProvider(
|
export async function restoreFromRecoverySecret(): Promise<void> { }
|
||||||
syncProviderBaseUrl: string,
|
|
||||||
): Promise<void> {}
|
|
||||||
|
|
||||||
export async function restoreFromRecoverySecret(): Promise<void> {}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Information about one provider.
|
* Information about one provider.
|
||||||
@ -676,6 +691,7 @@ export async function restoreFromRecoverySecret(): Promise<void> {}
|
|||||||
export interface ProviderInfo {
|
export interface ProviderInfo {
|
||||||
active: boolean;
|
active: boolean;
|
||||||
syncProviderBaseUrl: string;
|
syncProviderBaseUrl: string;
|
||||||
|
name: string;
|
||||||
terms?: BackupProviderTerms;
|
terms?: BackupProviderTerms;
|
||||||
/**
|
/**
|
||||||
* Last communication issue with the provider.
|
* Last communication issue with the provider.
|
||||||
@ -830,6 +846,7 @@ export async function getBackupInfo(
|
|||||||
: undefined,
|
: undefined,
|
||||||
paymentStatus: await getProviderPaymentInfo(ws, x),
|
paymentStatus: await getProviderPaymentInfo(ws, x),
|
||||||
terms: x.terms,
|
terms: x.terms,
|
||||||
|
name: x.name,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
@ -890,6 +907,7 @@ async function backupRecoveryTheirs(
|
|||||||
if (!existingProv) {
|
if (!existingProv) {
|
||||||
await tx.backupProviders.put({
|
await tx.backupProviders.put({
|
||||||
baseUrl: prov.url,
|
baseUrl: prov.url,
|
||||||
|
name: 'not-defined',
|
||||||
paymentProposalIds: [],
|
paymentProposalIds: [],
|
||||||
state: {
|
state: {
|
||||||
tag: BackupProviderStateTag.Ready,
|
tag: BackupProviderStateTag.Ready,
|
||||||
|
@ -41,11 +41,13 @@ import {
|
|||||||
import {
|
import {
|
||||||
addBackupProvider,
|
addBackupProvider,
|
||||||
codecForAddBackupProviderRequest,
|
codecForAddBackupProviderRequest,
|
||||||
|
codecForRemoveBackupProvider,
|
||||||
codecForRunBackupCycle,
|
codecForRunBackupCycle,
|
||||||
getBackupInfo,
|
getBackupInfo,
|
||||||
getBackupRecovery,
|
getBackupRecovery,
|
||||||
loadBackupRecovery,
|
loadBackupRecovery,
|
||||||
processBackupForProvider,
|
processBackupForProvider,
|
||||||
|
removeBackupProvider,
|
||||||
runBackupCycle,
|
runBackupCycle,
|
||||||
} from "./operations/backup/index.js";
|
} from "./operations/backup/index.js";
|
||||||
import { exportBackup } from "./operations/backup/export.js";
|
import { exportBackup } from "./operations/backup/export.js";
|
||||||
@ -814,6 +816,11 @@ async function dispatchRequestInternal(
|
|||||||
await runBackupCycle(ws, req);
|
await runBackupCycle(ws, req);
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
case "removeBackupProvider": {
|
||||||
|
const req = codecForRemoveBackupProvider().decode(payload);
|
||||||
|
await removeBackupProvider(ws, req);
|
||||||
|
return {};
|
||||||
|
}
|
||||||
case "exportBackupRecovery": {
|
case "exportBackupRecovery": {
|
||||||
const resp = await getBackupRecovery(ws);
|
const resp = await getBackupRecovery(ws);
|
||||||
return resp;
|
return resp;
|
||||||
|
Loading…
Reference in New Issue
Block a user