Guest User

Untitled

a guest
Feb 18th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.03 KB | None | 0 0
  1. const useNormalizedApi = () => {
  2. let db = useDB();
  3.  
  4. return {
  5. ...
  6. updateTodo: async (id, payload, oldTodo) => {
  7. // Let's assume the update will be successful
  8. let normalizedTodoData = normalize(payload, TodoSchema);
  9. db.mergeEntities(normalizedTodoData.entities);
  10. try {
  11. let todo = await api.updateTodo(id, payload);
  12. // If successful, let's update again to make sure we have the latest todo data
  13. normalizedTodoData = normalize(todo, apiSchemas.updateTodoResponseSchema);
  14. db.mergeEntities(normalizedTodoData.entities);
  15. }
  16. catch(e) {
  17. // If update fails, let's normalize the old todo and merge it back into the db
  18. normalizedTodoData = normalize(oldTodo, TodoSchema);
  19. db.mergeEntities(normalizedTodoData.entities);
  20. }
  21. },
  22. ...
  23. };
  24. };
  25.  
  26. const TodosComponent = (props) => {
  27. let db = useDB();
  28.  
  29. let allTodosQuery = db.getStoredQuery('ALL_TODOS');
  30. let todos = db.executeQuery(allTodosQuery);
  31.  
  32. return (
  33. <JSON data={todos} />
  34. )
  35. }
Add Comment
Please, Sign In to add comment