import { action, observable } from 'mobx';
import { has } from 'lodash';
import client from 'client';
export class ProjectMapStore {
@observable
projectMap = {};
get client() {
return client.keystone.projects;
}
@action
async fetchProjectDetail({ id }) {
const project = {
id,
};
if (!has(this.projectMap, id)) {
let result = 'error';
try {
result = await this.client.show(id);
} catch (e) {
console.log(e);
}
this.projectMap[id] = result === 'error' ? '' : result.project.name;
}
project.name = this.projectMap[id] || '-';
return project;
}
getItemProjectId(item) {
return (
item.project_id ||
item.tenant_id ||
item.owner ||
item.owner_id ||
item.tenant ||
item.fingerprint
);
}
getItemProjectName(item) {
return item.project_name || item.owner_project_name;
}
@action
clearData() {
this.projectMap = {};
}
}
const globalProjectMapStore = new ProjectMapStore();
export default globalProjectMapStore;