@7365admin1/layer-common 3.1.2-staging.37 → 3.1.2-staging.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -734,7 +734,7 @@ const {
|
|
|
734
734
|
updateStatus: updateServiceProviderStatus,
|
|
735
735
|
invite,
|
|
736
736
|
} = useServiceProvider();
|
|
737
|
-
const { getAllByUserId } = useMember();
|
|
737
|
+
const { getAll: getAllMembers, getAllByUserId } = useMember();
|
|
738
738
|
|
|
739
739
|
const { getVerifications, cancelUserInvitation, getVerificationByEmail } =
|
|
740
740
|
useVerification();
|
|
@@ -757,6 +757,9 @@ const createInviteDialog = ref(false);
|
|
|
757
757
|
// const loadingInviteRoles = ref(false);
|
|
758
758
|
// const serviceProviderInviteRoles = ref<Array<Record<string, any>>>([]);
|
|
759
759
|
|
|
760
|
+
const { getByUserType } = useMember();
|
|
761
|
+
const { getOrgs } = useOrg();
|
|
762
|
+
const { getByEmail } = useServiceProvider();
|
|
760
763
|
|
|
761
764
|
async function checkExistingAccount(email: string) {
|
|
762
765
|
existingAccount.value = null;
|
|
@@ -767,40 +770,54 @@ async function checkExistingAccount(email: string) {
|
|
|
767
770
|
checkingExistingAccount.value = true;
|
|
768
771
|
|
|
769
772
|
try {
|
|
773
|
+
// Check if user exists
|
|
770
774
|
const user = await getUserByEmail(email);
|
|
771
775
|
|
|
772
776
|
if (!user?._id) return;
|
|
773
777
|
|
|
774
|
-
|
|
778
|
+
// Check if this service provider already exists in current org/site
|
|
779
|
+
const serviceProviders = await getByEmail({
|
|
780
|
+
email,
|
|
781
|
+
orgId: props.orgId,
|
|
782
|
+
siteId: props.siteId,
|
|
783
|
+
});
|
|
775
784
|
|
|
776
|
-
|
|
777
|
-
(member: any) => member.type === serviceProviderInvite.value.app
|
|
778
|
-
);
|
|
785
|
+
console.log("serviceProviders", serviceProviders);
|
|
779
786
|
|
|
780
|
-
if (
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
787
|
+
if (serviceProviders?.length) {
|
|
788
|
+
messageServiceProvider.value =
|
|
789
|
+
"This service provider already exists.";
|
|
790
|
+
return;
|
|
791
|
+
}
|
|
784
792
|
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
(appMember.siteId || "") === (props.siteId || "")
|
|
788
|
-
) {
|
|
789
|
-
existingAccount.value = null;
|
|
790
|
-
messageServiceProvider.value =
|
|
791
|
-
"This user is already a member of this service provider.";
|
|
792
|
-
return;
|
|
793
|
-
}
|
|
793
|
+
// Check existing memberships
|
|
794
|
+
const members = await getAllByUserId(user._id);
|
|
794
795
|
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
siteId: appMember.siteId,
|
|
801
|
-
siteName: appMember.siteName,
|
|
802
|
-
};
|
|
796
|
+
const appMember = (members.items ?? []).find(
|
|
797
|
+
(member: any) => member.type === serviceProviderInvite.value.app
|
|
798
|
+
);
|
|
799
|
+
|
|
800
|
+
if (!appMember) return;
|
|
803
801
|
|
|
802
|
+
// Already belongs to the same org/site
|
|
803
|
+
if (
|
|
804
|
+
appMember.org === props.orgId &&
|
|
805
|
+
(appMember.siteId || "") === (props.siteId || "")
|
|
806
|
+
) {
|
|
807
|
+
messageServiceProvider.value =
|
|
808
|
+
"This user is already a member of this service provider.";
|
|
809
|
+
return;
|
|
810
|
+
}
|
|
811
|
+
|
|
812
|
+
// Existing account in another org/site
|
|
813
|
+
existingAccount.value = {
|
|
814
|
+
_id: appMember.org,
|
|
815
|
+
text: appMember.orgName,
|
|
816
|
+
org: appMember.org,
|
|
817
|
+
orgName: appMember.orgName,
|
|
818
|
+
siteId: appMember.siteId,
|
|
819
|
+
siteName: appMember.siteName,
|
|
820
|
+
};
|
|
804
821
|
} catch (error) {
|
|
805
822
|
existingAccount.value = null;
|
|
806
823
|
} finally {
|
|
@@ -236,6 +236,26 @@ export default function useServiceProvider() {
|
|
|
236
236
|
);
|
|
237
237
|
}
|
|
238
238
|
|
|
239
|
+
async function getByEmail({
|
|
240
|
+
email = "",
|
|
241
|
+
orgId = "",
|
|
242
|
+
siteId = "",
|
|
243
|
+
serviceProviderOrgId = "",
|
|
244
|
+
} = {}) {
|
|
245
|
+
return useNuxtApp().$api<Record<string, any>>(
|
|
246
|
+
"/api/service-providers/email",
|
|
247
|
+
{
|
|
248
|
+
method: "GET",
|
|
249
|
+
query: {
|
|
250
|
+
email,
|
|
251
|
+
...(orgId ? { orgId } : {}),
|
|
252
|
+
...(siteId ? { siteId } : {}),
|
|
253
|
+
...(serviceProviderOrgId ? { serviceProviderOrgId } : {}),
|
|
254
|
+
},
|
|
255
|
+
}
|
|
256
|
+
);
|
|
257
|
+
}
|
|
258
|
+
|
|
239
259
|
return {
|
|
240
260
|
serviceProviders,
|
|
241
261
|
serviceProvider,
|
|
@@ -254,5 +274,6 @@ export default function useServiceProvider() {
|
|
|
254
274
|
add,
|
|
255
275
|
addViaInvite,
|
|
256
276
|
updateStatus,
|
|
277
|
+
getByEmail,
|
|
257
278
|
};
|
|
258
279
|
}
|