Delete trading History gone
This commit is contained in:
1 parent
8a2bea0b28
commit
dc04234591
2 files changed
+1
-291
No files matched your search
@@ -1,283 +0,0 @@
|
||||
|
||||
function newDeleteTradingHistory () {
|
||||
const MODULE_NAME = 'Delete Trading History'
|
||||
const INFO_LOG = false
|
||||
const ERROR_LOG = true
|
||||
const logger = newWebDebugLog()
|
||||
logger.fileName = MODULE_NAME
|
||||
|
||||
var thisObject = {
|
||||
container: undefined,
|
||||
draw: draw,
|
||||
getContainer: getContainer, // returns the inner most container that holds the point received by parameter.
|
||||
initialize: initialize
|
||||
}
|
||||
|
||||
var container = newContainer()
|
||||
container.initialize()
|
||||
thisObject.container = container
|
||||
|
||||
thisObject.container.frame.width = 50
|
||||
thisObject.container.frame.height = BOTTOM_SPACE_HEIGHT
|
||||
|
||||
resize()
|
||||
|
||||
container.isDraggeable = false
|
||||
container.isClickeable = true
|
||||
|
||||
let icon
|
||||
let canDrawIcon = false
|
||||
|
||||
return thisObject
|
||||
|
||||
function initialize (callBackFunction) {
|
||||
try {
|
||||
if (INFO_LOG === true) { logger.write('[INFO] initialize -> Entering function.') }
|
||||
|
||||
icon = new Image()
|
||||
|
||||
icon.onload = onImageLoad
|
||||
|
||||
function onImageLoad () {
|
||||
canDrawIcon = true
|
||||
}
|
||||
|
||||
icon.src = window.canvasApp.urlPrefix + 'Images/Icons/trash.png'
|
||||
|
||||
thisObject.container.eventHandler.listenToEvent('onMouseClick', onClick)
|
||||
|
||||
window.canvasApp.eventHandler.listenToEvent('Browser Resized', resize)
|
||||
|
||||
if (callBackFunction !== undefined) { callBackFunction(GLOBAL.DEFAULT_OK_RESPONSE) }
|
||||
} catch (err) {
|
||||
if (ERROR_LOG === true) { logger.write('[ERROR] initialize -> err.message = ' + err.message) }
|
||||
if (callBackFunction !== undefined) { callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE) }
|
||||
}
|
||||
}
|
||||
|
||||
function resize () {
|
||||
container.frame.position.x = viewPort.visibleArea.topRight.x
|
||||
container.frame.position.y = viewPort.visibleArea.bottomLeft.y
|
||||
}
|
||||
|
||||
function onClick () {
|
||||
try {
|
||||
if (INFO_LOG === true) { logger.write('[INFO] onClick -> Entering function.') }
|
||||
|
||||
let sessionToken = window.localStorage.getItem('sessionToken')
|
||||
|
||||
if (sessionToken === null || sessionToken === '') {
|
||||
/* not logged in */
|
||||
return
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
To delete the trading history we will follow these steps:
|
||||
|
||||
1. Get the status report of that bot.
|
||||
2. Iterate through all the entries for the startMode received by parameters.
|
||||
3. For each entry, get the execution history file belonging to that entry.
|
||||
4. Iterate on each entry of each execution history file to get the date of each execution that we will use to locate the
|
||||
execution context file.
|
||||
6. Delete every execution context file found.
|
||||
7. Delete the execution history file after finishing the interation.
|
||||
8. Delete the Sequence file belonging to the received Start Mode.
|
||||
9. Save the Status Report without the records of this Start Mode.
|
||||
|
||||
*/
|
||||
|
||||
let storage = AzureStorage.Blob
|
||||
|
||||
let readOnlyBlobService
|
||||
let writeOnlyBlobService
|
||||
let deleteOnlyBlobService
|
||||
|
||||
let readConnectionString = window.USER_PROFILE.storagePermissions.get(window.DEV_TEAM + '.' + 'READ')
|
||||
|
||||
if (readConnectionString !== undefined) {
|
||||
readOnlyBlobService = storage.createBlobService(readConnectionString)
|
||||
}
|
||||
|
||||
let writeConnectionString = window.USER_PROFILE.storagePermissions.get(window.DEV_TEAM + '.' + 'WRITE')
|
||||
|
||||
if (writeConnectionString !== undefined) {
|
||||
writeOnlyBlobService = storage.createBlobService(writeConnectionString)
|
||||
}
|
||||
|
||||
let deleteConnectionString = window.USER_PROFILE.storagePermissions.get(window.DEV_TEAM + '.' + 'DELETE')
|
||||
|
||||
if (deleteConnectionString !== undefined) {
|
||||
deleteOnlyBlobService = storage.createBlobService(deleteConnectionString)
|
||||
}
|
||||
|
||||
let containerName = window.DEV_TEAM.toLowerCase()
|
||||
|
||||
let statusReportFilePath = window.DEV_TEAM + '/' + window.CURRENT_BOT_CODE_NAME + '.1.0' + '/' + 'AACloud.1.1' + '/' + 'Poloniex' + '/' + 'dataSet.V1' + '/' + 'Reports' + '/' + 'Trading-Process'
|
||||
let statusReportFileName = window.CURRENT_START_MODE + '.' + 'Status.Report.USDT_BTC.json'
|
||||
|
||||
readOnlyBlobService.getBlobToText(containerName, statusReportFilePath + '/' + statusReportFileName, onStatusReport)
|
||||
|
||||
function onStatusReport (err, text, response) {
|
||||
try {
|
||||
if (INFO_LOG === true) { logger.write('[INFO] onClick -> onStatusReport -> Entering function.') }
|
||||
|
||||
if (err && err.code === 'BlobNotFound') {
|
||||
console.log(statusReportFilePath + '/' + statusReportFileName + ' not found. No history detected for this start mode.')
|
||||
return
|
||||
}
|
||||
|
||||
let statusReport = JSON.parse(text)
|
||||
|
||||
let toBeDeleted = 0
|
||||
let deleted = 0
|
||||
|
||||
for (let i = 0; i < statusReport.runs.length; i++) {
|
||||
/* For each record, we will get the execution history file. */
|
||||
|
||||
let filePath = window.DEV_TEAM + '/' + window.CURRENT_BOT_CODE_NAME + '.1.0' + '/' + 'AACloud.1.1' + '/' + 'Poloniex' + '/' + 'dataSet.V1' + '/' + 'Output' + '/' + 'Trading-Process'
|
||||
let fileName = 'Execution.History.' + window.CURRENT_START_MODE + '.' + i + '.json'
|
||||
|
||||
readOnlyBlobService.getBlobToText(containerName, filePath + '/' + fileName, onExecutionHistory)
|
||||
|
||||
function onExecutionHistory (err, text, response) {
|
||||
let executionHistory = JSON.parse(text)
|
||||
|
||||
for (let j = 0; j < executionHistory.length; j++) {
|
||||
let dateTime = new Date(executionHistory[j][0])
|
||||
|
||||
let datePath = dateTime.getUTCFullYear() + '/' + pad(dateTime.getUTCMonth() + 1, 2) + '/' + pad(dateTime.getUTCDate(), 2) + '/' + pad(dateTime.getUTCHours(), 2) + '/' + pad(dateTime.getUTCMinutes(), 2)
|
||||
|
||||
let filePath = window.DEV_TEAM + '/' + window.CURRENT_BOT_CODE_NAME + '.1.0' + '/' + 'AACloud.1.1' + '/' + 'Poloniex' + '/' + 'dataSet.V1' + '/' + 'Output' + '/' + 'Trading-Process' + '/' + datePath
|
||||
let fileName = 'Execution.Context.' + window.CURRENT_START_MODE + '.' + i + '.json'
|
||||
|
||||
deleteOnlyBlobService.deleteBlob(containerName, filePath + '/' + fileName, onDeleted)
|
||||
|
||||
toBeDeleted++
|
||||
|
||||
function onDeleted (err, text, response) {
|
||||
if (err) {
|
||||
|
||||
console.log(filePath + '/' + fileName + ' NOT deleted.')
|
||||
console.log('err.message = ' + err.message)
|
||||
} else {
|
||||
|
||||
console.log(filePath + '/' + fileName + ' deleted.')
|
||||
}
|
||||
|
||||
deleted++
|
||||
|
||||
if (toBeDeleted === deleted) {
|
||||
|
||||
updateStatusReport()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Now we delete the execution history file. */
|
||||
|
||||
deleteOnlyBlobService.deleteBlob(containerName, filePath + '/' + fileName, onExecutionHistoryDeleted)
|
||||
|
||||
function onExecutionHistoryDeleted (err, text, response) {
|
||||
console.log(filePath + '/' + fileName + ' deleted.')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function updateStatusReport () {
|
||||
try {
|
||||
if (INFO_LOG === true) { logger.write('[INFO] onClick -> onStatusReport -> updateStatusReport -> Entering function.') }
|
||||
|
||||
statusReport.runs = []
|
||||
|
||||
/* Here is where we update the current Status Report file with the new version without records for the current Start Mode. */
|
||||
|
||||
let fileContent = JSON.stringify(statusReport)
|
||||
|
||||
writeOnlyBlobService.createBlockBlobFromText(containerName, statusReportFilePath + '/' + statusReportFileName, fileContent, onStatusReportUpdated)
|
||||
|
||||
function onStatusReportUpdated (err, text, response) {
|
||||
console.log(statusReportFilePath + '/' + statusReportFileName + ' updated.')
|
||||
}
|
||||
|
||||
/* Finally we delete the sequence file. */
|
||||
|
||||
let filePath = window.DEV_TEAM + '/' + window.CURRENT_BOT_CODE_NAME + '.1.0' + '/' + 'AACloud.1.1' + '/' + 'Poloniex' + '/' + 'dataSet.V1' + '/' + 'Output' + '/' + 'Trading-Process'
|
||||
let fileName = 'Execution.History.' + window.CURRENT_START_MODE + '.' + 'Sequence' + '.json'
|
||||
|
||||
deleteOnlyBlobService.deleteBlob(containerName, filePath + '/' + fileName, onDeleted)
|
||||
|
||||
function onDeleted (err, text, response) {
|
||||
console.log(filePath + '/' + fileName + ' deleted.')
|
||||
}
|
||||
} catch (err) {
|
||||
if (ERROR_LOG === true) { logger.write('[ERROR] onClick -> onStatusReport -> updateStatusReport -> err.message = ' + err.message) }
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
if (ERROR_LOG === true) { logger.write('[ERROR] onClick -> onStatusReport -> err.message = ' + err.message) }
|
||||
}
|
||||
}
|
||||
|
||||
function pad (str, max) {
|
||||
str = str.toString()
|
||||
return str.length < max ? pad('0' + str, max) : str
|
||||
}
|
||||
} catch (err) {
|
||||
if (ERROR_LOG === true) { logger.write('[ERROR] onClick -> err.message = ' + err.message) }
|
||||
}
|
||||
}
|
||||
|
||||
function getContainer (point) {
|
||||
try {
|
||||
if (INFO_LOG === true) { logger.write('[INFO] getContainer -> Entering function.') }
|
||||
|
||||
let container
|
||||
|
||||
/* First we check if this point is inside this object UI. */
|
||||
|
||||
if (thisObject.container.frame.isThisPointHere(point, true) === true) {
|
||||
return this.container
|
||||
} else {
|
||||
/* This point does not belong to this space. */
|
||||
|
||||
return undefined
|
||||
}
|
||||
} catch (err) {
|
||||
if (ERROR_LOG === true) { logger.write('[ERROR] getContainer -> err.message = ' + err.message) }
|
||||
}
|
||||
}
|
||||
|
||||
function draw () {
|
||||
try {
|
||||
if (INFO_LOG === true) { logger.write('[INFO] draw -> Entering function.') }
|
||||
|
||||
let sessionToken = window.localStorage.getItem('sessionToken')
|
||||
|
||||
if (sessionToken === null || sessionToken === '') {
|
||||
/* not logged in */
|
||||
return
|
||||
}
|
||||
|
||||
thisObject.container.frame.draw(false, false)
|
||||
|
||||
if (canDrawIcon === false) { return }
|
||||
|
||||
let breakpointsHeight = 0
|
||||
|
||||
let imageHeight = 15
|
||||
let imageWidth = 15
|
||||
|
||||
let imagePoint = {
|
||||
x: 10,
|
||||
y: thisObject.container.frame.height / 2 - imageHeight / 2 + breakpointsHeight
|
||||
}
|
||||
|
||||
imagePoint = thisObject.container.frame.frameThisPoint(imagePoint)
|
||||
|
||||
browserCanvasContext.drawImage(icon, imagePoint.x, imagePoint.y, imageWidth, imageHeight)
|
||||
} catch (err) {
|
||||
if (ERROR_LOG === true) { logger.write('[ERROR] draw -> err.message = ' + err.message) }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
|
||||
function newBottomSpace () {
|
||||
var thisObject = {
|
||||
deleteTradingHistory: undefined,
|
||||
|
||||
container: undefined,
|
||||
draw: draw,
|
||||
getContainer: getContainer, // returns the inner most container that holds the point received by parameter.
|
||||
@@ -19,9 +19,6 @@ function newBottomSpace () {
|
||||
return thisObject
|
||||
|
||||
function initialize () {
|
||||
thisObject.deleteTradingHistory = newDeleteTradingHistory()
|
||||
thisObject.deleteTradingHistory.initialize()
|
||||
|
||||
window.canvasApp.eventHandler.listenToEvent('Browser Resized', resize)
|
||||
}
|
||||
|
||||
@@ -36,9 +33,6 @@ function newBottomSpace () {
|
||||
function getContainer (point) {
|
||||
let container
|
||||
|
||||
container = thisObject.deleteTradingHistory.getContainer(point)
|
||||
if (container !== undefined) { return container }
|
||||
|
||||
return thisObject.container
|
||||
}
|
||||
|
||||
@@ -46,7 +40,6 @@ function newBottomSpace () {
|
||||
thisObject.container.frame.draw(false, false)
|
||||
|
||||
drawBackground()
|
||||
thisObject.deleteTradingHistory.draw()
|
||||
}
|
||||
|
||||
function drawBackground () {
|
||||
|
||||
Reference in new issue
Block a user