<template>
  <q-card class="Army q-pa-sm">
    <div class="row no-wrap items-center">
      <q-file
        class="Army-File q-mb-xs q-pr-xs"
        v-model="armyFile"
        label="Выберите файл"
        accept=".csv"
        :multiple="false"
      />
      <q-btn label="Загрузить" color="primary" outline rounded @click="uploadFile" />
    </div>
    <q-card class="Army-Result q-mt-sm" bordered v-html="resultQuery"/>
  </q-card>
</template>

<script>
import { ClassifierApiFactory } from '@openapi/cnsi';
import { notifyError, notifySuccess } from '@utils/notify';

export default {
  name: 'army',
  data() {
    return {
      cnsiApi: new ClassifierApiFactory(),
      armyFile: [],
      resultQuery: 'Результат выполнения запрос загрузки файла',
    };
  },
  methods: {
    uploadFile() {
      if (!this.armyFile) {
        notifyError('Выберите файл');
        return;
      }
      this.cnsiApi
        .uploadClassifier(
          'PGS_ARMY_REGISTRY',
          this.armyFile,
          JSON.stringify({
            userId: this.$store.state.oidcClient.currentUser.sub,
            userFullName: this.$store.state.oidcClient.currentUser.name,
            userEmail: this.$store.state.oidcClient.currentUser.email,
          }),
          {
            headers: {
              'content-type': 'multipart/form-data',
            },
          }
        )
        .then((response) => {
          this.armyFile = null;
          this.resultQuery = `
          <h4 style="color: green; text-align: center;">Успешная загрузка</h4>
          <p>Строк создано: ${response.data.countCreated}</p>
          <p>Строк обновлено: ${response.data.countUpdated}</p>
          `
        })
        .catch((e) => {
          console.log(e.response)
          this.resultQuery = `
          <h4 style="color: red; text-align: center;">Ошибка загрузки</h4>
          ${e.response.data.error || e.response.data.message}`
        });
    },
  },
};
</script>
