@7365admin1/layer-common 3.1.2-staging.36 → 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.
@@ -28,7 +28,6 @@
28
28
  :items="items"
29
29
  fixed-header
30
30
  hide-default-footer
31
- hide-default-header
32
31
  @click:row="handleRowClick"
33
32
  style="max-height: 300px"
34
33
  >
@@ -281,10 +280,10 @@ const prop = defineProps({
281
280
  headers: {
282
281
  type: Array as PropType<Array<any>>,
283
282
  default: () => [
284
- { text: "Host", value: "host" },
285
- { text: "Category", value: "category" },
286
- { text: "Guard House", value: "guardPost" },
287
- { text: "Actions", value: "action", sortable: false },
283
+ { title: "Host", key: "host" },
284
+ { title: "Category", key: "category" },
285
+ // { title: "Guard House", key: "guardPost" },
286
+ // { title: "Actions", key: "action", sortable: false },
288
287
  ],
289
288
  },
290
289
  readOnly: {
@@ -296,7 +295,7 @@ const prop = defineProps({
296
295
  const computedHeaders = computed(() => {
297
296
  if (prop.type === "ip") {
298
297
  const base = [...prop.headers];
299
- base.splice(0, 0, { text: "Name", value: "name" });
298
+ base.splice(0, 0, { title: "Name", key: "name" });
300
299
  return base;
301
300
  }
302
301
  return prop.headers;
@@ -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
- const members = await getAllByUserId(user._id);
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
- const appMember = (members.items ?? []).find(
777
- (member: any) => member.type === serviceProviderInvite.value.app
778
- );
785
+ console.log("serviceProviders", serviceProviders);
779
786
 
780
- if (!appMember) {
781
- existingAccount.value = null;
782
- return;
783
- }
787
+ if (serviceProviders?.length) {
788
+ messageServiceProvider.value =
789
+ "This service provider already exists.";
790
+ return;
791
+ }
784
792
 
785
- if (
786
- appMember.org === props.orgId &&
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
- existingAccount.value = {
796
- _id: appMember.org,
797
- text: appMember.orgName,
798
- org: appMember.org,
799
- orgName: appMember.orgName,
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
  }
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@7365admin1/layer-common",
3
3
  "license": "MIT",
4
4
  "type": "module",
5
- "version": "3.1.2-staging.36",
5
+ "version": "3.1.2-staging.38",
6
6
  "author": "7365admin1",
7
7
  "main": "./nuxt.config.ts",
8
8
  "publishConfig": {