import { action } from 'mobx';
import { mapperRule } from 'resources/neutron/security-group-rule';
import client from 'client';
import Base from 'stores/base';
import globalProjectMapStore from 'stores/project';
export class SecurityGroupStore extends Base {
get client() {
return client.neutron.securityGroups;
}
get listFilterByProject() {
return true;
}
get mapper() {
return (data) => {
const { security_group_rules = [] } = data;
return {
...data,
security_group_rules: security_group_rules.map(mapperRule),
};
};
}
async detailDidFetch(item) {
const { project_id } = item;
const project = await globalProjectMapStore.fetchProjectDetail({
id: project_id,
});
item.project_name = project ? project.name || '-' : '-';
return item;
}
@action
async updatePortSecurityGroup({ id, reqBody }) {
return this.submitting(client.neutron.ports.update(id, reqBody));
}
}
const globalSecurityGroupStore = new SecurityGroupStore();
export default globalSecurityGroupStore;