Merge branch 'sprint1' of http://git.wdipl.com/Mayank.Mishra/MinglarBackendNestJS into paritosh-main1

This commit is contained in:
paritosh18
2025-12-02 19:58:52 +05:30
2 changed files with 126 additions and 24 deletions

View File

@@ -102,6 +102,17 @@ export class HostService {
documentType: true,
},
},
accountManager: {
select: {
id: true,
firstName: true,
lastName: true,
emailAddress: true,
mobileNumber: true,
profileImage: true,
userRefNumber: true,
}
},
user: {
select: {
id: true,
@@ -161,7 +172,7 @@ export class HostService {
}
}
}
if (host.user.profileImage) {
if (host.user?.profileImage) {
const key = host.user.profileImage.startsWith("http")
? host.user.profileImage.split(".com/")[1]
: host.user.profileImage;
@@ -169,7 +180,7 @@ export class HostService {
host.user.profileImage = await getPresignedUrl(bucket, key);
}
if (host.logoPath) {
if (host?.logoPath) {
const key = host.logoPath.startsWith('http')
? host.logoPath.split('.com/')[1]
: host.logoPath;
@@ -177,6 +188,14 @@ export class HostService {
host.logoPath = await getPresignedUrl(bucket, key);
}
if (host.accountManager?.profileImage) {
const key = host.accountManager.profileImage.startsWith('http')
? host.accountManager.profileImage.split('.com/')[1]
: host.accountManager.profileImage;
host.accountManager.profileImage = await getPresignedUrl(bucket, key);
}
if (host.hostParent?.length) {
const parent = host.hostParent[0]; // since you allow only 1 parent
@@ -365,18 +384,76 @@ export class HostService {
});
}
async getAllHostActivity(search?: string, hostXid?: number) {
return await this.prisma.activities.findMany({
async getAllHostActivity(search?: string, user_xid?: number) {
const hostDetails = await this.prisma.hostHeader.findFirst({
where: { userXid: user_xid, isActive: true }
})
const hostAllActivities = await this.prisma.activities.findMany({
where: {
isActive: true,
hostXid: hostXid,
hostXid: hostDetails.id,
},
include: {
ActivitiesMedia: true,
ActivityAmDetails: true,
ActivityAmDetails: {
select: {
accountManager: {
select: {
id: true,
firstName: true,
lastName: true,
profileImage: true,
emailAddress: true,
roleXid: true,
},
},
},
},
activityType: true,
},
});
for (const activity of hostAllActivities) {
/** 1⃣ Process Activity Media */
const processedMedia = [];
for (const media of activity.ActivitiesMedia || []) {
const key = media.mediaFileName?.startsWith("http")
? media.mediaFileName.split(".com/")[1]
: media.mediaFileName;
const presignedUrl = key ? await getPresignedUrl(bucket, key) : null;
processedMedia.push({
...media,
presignedUrl,
});
}
activity.ActivitiesMedia = processedMedia;
/** 2⃣ Process AM Profile Image */
const am = activity.ActivityAmDetails?.[0]?.accountManager;
if (am?.profileImage) {
const key = am.profileImage.startsWith("http")
? am.profileImage.split(".com/")[1]
: am.profileImage;
const presignedUrl = await getPresignedUrl(bucket, key);
activity.ActivityAmDetails[0].accountManager = {
...am,
profileImage: presignedUrl,
};
}
}
return hostAllActivities;
}
async acceptMinglarAgreement(user_xid: number) {

View File

@@ -291,26 +291,26 @@ export class MinglarService {
// Process each activity
for (const activity of hostActivities) {
/** --------------------------
* 1⃣ Process Activity Media
* -------------------------- */
if (activity.ActivitiesMedia?.length) {
for (const media of activity.ActivitiesMedia) {
/** 1⃣ Process Activity Media */
const processedMedia = [];
if (!media.mediaFileName) continue;
for (const media of activity.ActivitiesMedia || []) {
// Extract S3 key if URL or keep raw key
const key = media.mediaFileName.startsWith("http")
? media.mediaFileName.split(".com/")[1]
: media.mediaFileName;
const key = media.mediaFileName?.startsWith("http")
? media.mediaFileName.split(".com/")[1]
: media.mediaFileName;
media.mediaFileName = await getPresignedUrl(bucket, key);
}
const presignedUrl = key ? await getPresignedUrl(bucket, key) : null;
processedMedia.push({
...media,
presignedUrl,
});
}
/** --------------------------
* 2⃣ Process AM Profile Image
* -------------------------- */
activity.ActivitiesMedia = processedMedia;
/** 2⃣ Process AM Profile Image */
const am = activity.ActivityAmDetails?.[0]?.accountManager;
if (am?.profileImage) {
@@ -318,10 +318,16 @@ export class MinglarService {
? am.profileImage.split(".com/")[1]
: am.profileImage;
am.profileImage = await getPresignedUrl(bucket, key);
const presignedUrl = await getPresignedUrl(bucket, key);
activity.ActivityAmDetails[0].accountManager = {
...am,
profileImage: presignedUrl,
};
}
}
return hostActivities;
}
@@ -1577,6 +1583,25 @@ export class MinglarService {
locationLat: true,
locationLong: true,
locationName: true,
pinCode: true,
country: {
select: {
id: true,
countryName: true
}
},
cities: {
select: {
id: true,
cityName: true,
}
},
states: {
select: {
id: true,
stateName: true
}
}
}
},
userDocuments: {
@@ -1645,9 +1670,9 @@ export class MinglarService {
isActive: true
},
data: {
activityInternalStatus: ACTIVITY_INTERNAL_STATUS.PQQ_TO_UPDATE,
activityInternalStatus: ACTIVITY_INTERNAL_STATUS.PQ_TO_UPDATE,
activityDisplayStatus: ACTIVITY_DISPLAY_STATUS.ENHANCING,
amInternalStatus: ACTIVITY_AM_INTERNAL_STATUS.PQQ_REJECTED,
amInternalStatus: ACTIVITY_AM_INTERNAL_STATUS.PQ_REJECTED,
amDisplayStatus: ACTIVITY_AM_DISPLAY_STATUS.ENHANCING
}
})