import api from "./axios_config"; // findAll() on Back End. export function get_todos_function() { // Get a list of all to dos. // GET "/todos" return async (handler) => { try { const response = await api.get("/todos"); handler(response.data); } catch (err) { console.log(err); } }; } // addToDo() on Back End. export function new_todo_function() { // Add a new to do on database. // POST "/todos" return async (data) => { try { await api.post("/todos", { text: data.text, dueDate: data.due_date, priority: data.priority, }); } catch (err) { console.log(err); } }; } // editToDo() on BE. export function edit_todo_function() { // Edit an existing to do. // PUT "/todos/{id}" return async (data) => { try { await api.put(`/todos/${data.id}`, { text: data.text, dueDate: data.due_date, priority: data.priority, }); } catch (err) { console.log(err); } }; } // removeToDo(). export function remove_todo_function() { // Remove an existing to do by its id. // DELETE "/todos/{id}" return async (data) => { try { await api.delete(`/todos/${data.id}`); } catch (err) { console.log(err); } }; } // setDone(). export function set_done_function() { // Set a to do as done. If already done, don't do anything. // POST "/todos/{id}/done" return async (data) => { try { await api.post(`/todos/${data.id}/done`); } catch (err) { console.log(err); } }; } // setUndone(). export function set_undone_function() { // Set a to do as not done. If it's already not done, don't do anything. // PUT "/todos/{id}/undone" return async (data) => { try { await api.put(`/todos/${data.id}/undone`); } catch (err) { console.log(err); } }; } // setFiltersAndSorters(). export function set_fil_sort_function() { // Set filters and sorters for our to dos. // POST "/todos/setFiltSort" return async (data) => { try { await api.post("/todos/setFiltSort", { filters: { name: data.filter.name, priority: data.filter.priority, done: data.filter.state, }, sortField: data.sort.field, sortOrder: data.sort.order, }); } catch (err) { console.log(err); } }; } // getPage(). export function get_todos_page_function() { // Return a page of max 10 to dos with sorting and filters added. // GET "/todos/filtSort/{page}" return async (handler, data) => { try { const response = await api.get(`/todos/filtSort/${data.page}`); handler(response.data); } catch (err) { console.log(err); } }; } // getNumberOfPages(). export function get_nu_pages_function() { // Return the number of pages in total. // GET "/todos/filtSort/pages" return async (handler) => { try { const response = await api.get("/todos/filtSort/pages"); handler(response.data); } catch (err) { console.log(err); } }; } // giveMeLastID(). export function get_last_id_function() { // Retrieve last index used. // GET "/todos/lastIndex" return async (handler) => { try { const response = await api.get("/todos/lastIndex"); handler(response.data); } catch (err) { console.log(err); } }; } // getAverageTime(). export function get_average_time_function() { // Retrieve the average time to complete the to dos, given a priority. // GET "/todos/average/{priority}" return async (handler, priority) => { try { const response = await api.get(`/todos/average/${priority}`); handler(response.data); } catch (err) { console.log(err); } }; }