import { createAsyncThunk } from '@reduxjs/toolkit';
import axios from 'axios';
import { Token, LoginParams } from './types';
import pickBy from 'lodash/pickBy';
import identity from 'lodash/identity';

function replacer(key:string, value:string) {
  console.log(typeof value);
  if (key === 'token') {
    console.log(value, 'json');
    localStorage.setItem('token', JSON.stringify(value));
  } else { console.log(value, 'json')}
}

export const fetchToken = createAsyncThunk<Token[], LoginParams>(
  'token/fetchTokenStatus',
  async (params) => {
    const { login, password } = params;
    const { data } = await axios.post<Token[]>('/api/login', {
      params: pickBy(
        {
          login: login,
          password: password,
        },
        identity,
      ),
    });
    type V1 = typeof data[Token];
    JSON.stringify(data[0], replacer);
    console.log(data, 4444);
    return data;
  },
);
