import Setting, { SyncStartupOperation } from '../../../models/Setting';
import { clearLocalDataForRedownload, clearLocalSyncStateForReupload } from '../tools';
import { reg } from '../../../registry';
import Logger from '../../../Logger';

const logger = Logger.create('handleSyncStartupOperation');

export default async function() {
	logger.info('Processing operation:', Setting.value('sync.startupOperation'));

	if (Setting.value('sync.startupOperation') === SyncStartupOperation.ClearLocalSyncState) {

		await clearLocalSyncStateForReupload(reg.db());
		Setting.setValue('sync.startupOperation', SyncStartupOperation.None);

	} else if (Setting.value('sync.startupOperation') === SyncStartupOperation.ClearLocalData) {

		await clearLocalDataForRedownload(reg.db());
		Setting.setValue('sync.startupOperation', SyncStartupOperation.None);

	} else if (Setting.value('sync.startupOperation') === SyncStartupOperation.None) {
		// Nothing
	} else {
		throw new Error(`Invalid sync.startupOperation value: ${Setting.value('sync.startupOperation')}`);
	}
}