43 lines
1.5 KiB
JavaScript
43 lines
1.5 KiB
JavaScript
import {computed, ref} from "vue";
|
|
import {storeToRefs} from "pinia";
|
|
import {useOrganizationsStore} from "stores/Organizations";
|
|
import {useUserStore} from "stores/User";
|
|
import {successObject} from "src/composables/dialog";
|
|
|
|
export const loading = ref(true);
|
|
export const organization = ref(null);
|
|
export const fetchOrganization = (organizationId) => {
|
|
loading.value = true;
|
|
return useOrganizationsStore().fetchDetail(parseInt(organizationId))
|
|
.then(resp => {
|
|
organization.value = resp;
|
|
return resp;
|
|
})
|
|
.finally(() => loading.value = false);
|
|
}
|
|
|
|
export const organizations = storeToRefs(useOrganizationsStore()).items;
|
|
export const fetchOrganizations = () => {
|
|
loading.value = true;
|
|
return useOrganizationsStore().fetch().finally(() => loading.value = false);
|
|
}
|
|
|
|
export const isRequestPending = storeToRefs(useOrganizationsStore()).isMutationRunning;
|
|
|
|
const loggedUser = storeToRefs(useUserStore()).user;
|
|
export const myOrganizationIds = computed(() => loggedUser.value.organizations?.map(o => o.id) || []);
|
|
|
|
export const addToOrganization = async (organizationId) => {
|
|
useOrganizationsStore().addUserToOrganization(organizationId).then((data) => {
|
|
organization.value.users = data.users;
|
|
useUserStore().fetchLoggedUserDetail();
|
|
});
|
|
};
|
|
|
|
export const removeFromOrganization = async (organizationId) => {
|
|
useOrganizationsStore().removeUserFromOrganization(organizationId).then((data) => {
|
|
organization.value.users = data.users;
|
|
useUserStore().fetchLoggedUserDetail();
|
|
});
|
|
}
|