armisa-models
Version:
models of armisa!
51 lines (45 loc) • 1.25 kB
text/typescript
import { ModelLanguage } from './ModelLogin';
import { MainStateManager } from '../MainStateManager';
import { Language, ILanguage } from './Save';
import axios from 'axios';
const Axios = (path: string) => {
return axios.create({
baseURL: `${process.env.REACT_APP_SHAREKERNEL_ADDRESS}/${path}`
});
};
export interface IResult {
isAmisa: boolean;
languages: Language[];
}
export class GetAllFactory extends ModelLanguage {
// startToLoad = () => {
// this.request('GetAll', GetAllFactory.deserialize, (err) => {
// this.mainStateManager.forceUpdate();
// });
// };
static deserialize = (
mainStateManager: MainStateManager,
json: { isAmisa: boolean, languages: ILanguage[] }
): IResult => {
const languages = json.languages.map(
(l) => new Language(mainStateManager, l.id, l.name, l.rightToLeft)
);
return {
isAmisa: json.isAmisa,
languages: languages,
};
};
static empty() {
return {
isAmisa: false,
languages: [],
};
}
static buildNew(mainStateManager: MainStateManager) {
return new GetAllFactory(
mainStateManager,
GetAllFactory.empty,
Axios('Language')
);
}
}