From ee556b659ed7fe373a384a3a65f86ad555870df7 Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Sun, 12 May 2019 18:00:24 +0200 Subject: [PATCH] saving prevented by circular references --- StrategySpace/ConstUpdateStrategy.js | 7 ++++++ StrategySpace/TradingSystem.js | 5 ++-- StrategySpace/Workspace.js | 37 ++++++++++++++-------------- 3 files changed, 28 insertions(+), 21 deletions(-) diff --git a/StrategySpace/ConstUpdateStrategy.js b/StrategySpace/ConstUpdateStrategy.js index e69de29bb..d84ce30cf 100644 --- a/StrategySpace/ConstUpdateStrategy.js +++ b/StrategySpace/ConstUpdateStrategy.js @@ -0,0 +1,7 @@ +const GRAPHQL_MUTATION_UPDATE_STRATEGIES = Apollo.gql` + mutation strategizer_EditStrategy($id: ID!, $strategy: strategizer_StrategyInput!) { + strategizer_EditStrategy(id: $id, strategy: $strategy) { + id + } + } +` diff --git a/StrategySpace/TradingSystem.js b/StrategySpace/TradingSystem.js index ddf329f24..6befa1852 100644 --- a/StrategySpace/TradingSystem.js +++ b/StrategySpace/TradingSystem.js @@ -244,10 +244,11 @@ function newTradingSystem () { } } - function onMenuItemClick (payload, action) { + async function onMenuItemClick (payload, action) { switch (action) { case 'Save Trading System': - canvas.strategySpace.workplace.saveToStrategyzer() + let wasSaved + await canvas.strategySpace.workplace.saveToStrategyzer() break case 'Open Settings': diff --git a/StrategySpace/Workspace.js b/StrategySpace/Workspace.js index 7573ff923..58662075d 100644 --- a/StrategySpace/Workspace.js +++ b/StrategySpace/Workspace.js @@ -40,8 +40,6 @@ function newWorkspace () { } async function saveToStrategyzer () { - const GRAPHQL_MUTATION_UPDATE_STRATEGIES = buildUpdateGraphQlQuery() - try { const accessToken = window.localStorage.getItem(LOGGED_IN_ACCESS_TOKEN_LOCAL_STORAGE) @@ -78,21 +76,22 @@ function newWorkspace () { } }]) - const getStrategies = () => { + const updateStrategies = () => { return new Promise((resolve, reject) => { - apolloClient.query({ - query: GRAPHQL_QUERY_GET_STRATEGIES, - variables: { fbSlug: tradingSystemSimulationClone} + apolloClient.mutate({ + mutation: GRAPHQL_MUTATION_UPDATE_STRATEGIES, + variables: { + id: thisObject.strategizerData.id, + strategy: thisObject.strategizerData + } }) .then(response => { - window.localStorage.setItem('userStrategies', JSON.stringify(response.data.strategizer_StrategyByFb.subStrategies)) - thisObject.strategizerData = JSON.parse(JSON.stringify(response.data.strategizer_StrategyByFb.subStrategies)) - - resolve({ strategies: response.data.strategizer_StrategyByFb.subStrategies}) + console.log('FUNCO!!') + resolve(true) }) - .catch(error => { - if (ERROR_LOG === true) { logger.write('[ERROR] saveTotrategyzer -> ApolloClient error getting user strategies -> err = ' + err.stack) } - reject(error) + .catch(err => { + if (ERROR_LOG === true) { logger.write('[ERROR] saveToStrategyzer -> ApolloClient error getting user strategies -> err = ' + err.stack) } + reject(err) }) }) } @@ -100,16 +99,16 @@ function newWorkspace () { // To avoid race conditions, add asynchronous fetches to array let fetchDataPromises = [] - fetchDataPromises.push(getStrategies()) + fetchDataPromises.push(updateStrategies()) // When all asynchronous fetches resolve, authenticate user or throw error. await Promise.all(fetchDataPromises).then(result => { - + console.log('parece que anda??') }, err => { - if (ERROR_LOG === true) { logger.write('[ERROR] saveTotrategyzer -> GraphQL Fetch Error -> err = ' + err.stack) } + if (ERROR_LOG === true) { logger.write('[ERROR] saveToStrategyzer -> GraphQL Fetch Error -> err = ' + err.stack) } }) } catch (err) { - if (ERROR_LOG === true) { logger.write('[ERROR] saveTotrategyzer -> err = ' + err.stack) } + if (ERROR_LOG === true) { logger.write('[ERROR] saveToStrategyzer -> err = ' + err.stack) } } } @@ -366,9 +365,9 @@ function newWorkspace () { resolve({ strategies: response.data.strategizer_StrategyByFb.subStrategies}) }) - .catch(error => { + .catch(err => { if (ERROR_LOG === true) { logger.write('[ERROR] loadFromStrategyzer -> ApolloClient error getting user strategies -> err = ' + err.stack) } - reject(error) + reject(err) }) }) }