view client/src/store/imports.js @ 1142:dc3f0277628a

feat: Importqueue listing (Proof of concept) This is only a prototypical overview of importqueue data from backend. Uses GET to retrieve an overview of imports. Shows in separate tables. Further concept needs to be developed to progress..
author Thomas Junk <thomas.junk@intevation.de>
date Mon, 12 Nov 2018 15:00:04 +0100
parents
children 3035ddd3d1a8
line wrap: on
line source

/*
 * This is Free Software under GNU Affero General Public License v >= 3.0
 * without warranty, see README.md and license for details.
 * 
 * SPDX-License-Identifier: AGPL-3.0-or-later
 * License-Filename: LICENSES/AGPL-3.0.txt
 * 
 * Copyright (C) 2018 by via donau 
 *   – Österreichische Wasserstraßen-Gesellschaft mbH
 * Software engineering by Intevation GmbH
 * 
 * Author(s):
 * Thomas Junk <thomas.junk@intevation.de>
 */

import { HTTP } from "../application/lib/http";

const Imports = {
  namespaced: true,
  state: {
    imports: {}
  },
  mutations: {
    setImports: (state, imports) => {
      const groupedImports = imports.reduce((o, n) => {
        if (!o[n.state]) o[n.state] = [];
        o[n.state].push(n);
        return o;
      }, {});
      state.imports = groupedImports;
    }
  },
  actions: {
    getImports({ commit }) {
      return new Promise((resolve, reject) => {
        HTTP.get("/imports", {
          headers: { "X-Gemma-Auth": localStorage.getItem("token") }
        })
          .then(response => {
            commit("setImports", response.data.imports);
            resolve(response);
          })
          .catch(error => {
            reject(error);
          });
      });
    }
  }
};

export default Imports;