1
0
mirror of https://github.com/mgerb/classic-wow-forums synced 2026-01-11 09:32:51 +00:00

client - user account page done

This commit is contained in:
2018-01-13 00:31:01 -06:00
parent 57663b802c
commit e9d46ed5ce
12 changed files with 306 additions and 110 deletions

View File

@@ -1,6 +1,8 @@
import { chain } from 'lodash';
import axios from '../axios/axios';
import userStore from '../stores/user-store';
import { CharacterModel } from '../model';
import { CharacterService } from './character.service';
// fetch user and store in local storage
const authorize = async (code: string): Promise<void> => {
@@ -12,16 +14,31 @@ const authorize = async (code: string): Promise<void> => {
}
};
const getCharacters = async (): Promise<CharacterModel | null> => {
const getCharacters = async (): Promise<any> => {
try {
const res = await axios.get('/api/user/characters');
return res.data.data.characters;
const characters = res.data.data.characters;
if (!!characters) {
res.data.data.characters = filterCharacters(characters);
}
return res.data.data;
} catch (e) {
console.error(e);
}
return null;
};
const filterCharacters = (chars: CharacterModel[]): CharacterModel[] => {
return chain(chars)
.filter(c => !!CharacterService.getClass(c.class))
.map((c) => {
c.races = CharacterService.getClass(c.class).races;
c.avatarList = CharacterService.getFilteredAvatarList(c.races);
return c;
})
.value();
};
const saveCharacter = async (character: any): Promise<any> => {
try {
const res = await axios.put('/api/user/characters', character);