chore: get announcements for customers
This commit is contained in:
@@ -22,18 +22,24 @@ export class AnnouncementService {
|
||||
async createAnnouncement(createAnnouncementDto: CreateAnnouncementDto) {
|
||||
let service;
|
||||
let groups;
|
||||
let users;
|
||||
if (createAnnouncementDto.serviceId) {
|
||||
service = await this.danakServicesService.findServiceById(createAnnouncementDto.serviceId);
|
||||
}
|
||||
if (createAnnouncementDto.groupIds) {
|
||||
groups = await this.usersService.getUserGroupsByIds(createAnnouncementDto.groupIds);
|
||||
}
|
||||
if (createAnnouncementDto.userIds) {
|
||||
users = await this.usersService.getUsersByIds(createAnnouncementDto.userIds);
|
||||
}
|
||||
//TODO: Create Queue for publishAT
|
||||
const announcement = this.announcementRepository.create({
|
||||
...createAnnouncementDto,
|
||||
service,
|
||||
targetGroups: groups?.userGroups,
|
||||
users,
|
||||
});
|
||||
|
||||
await this.announcementRepository.save(announcement);
|
||||
return {
|
||||
message: CommonMessage.CREATED,
|
||||
@@ -134,6 +140,7 @@ export class AnnouncementService {
|
||||
.createQueryBuilder("announcement")
|
||||
.leftJoin("announcement.service", "service")
|
||||
.addSelect(["service.id", "service.name"])
|
||||
.leftJoin("announcement.users", "announcementUser")
|
||||
.leftJoin("announcement.targetGroups", "group")
|
||||
.addSelect(["group.id", "group.name"])
|
||||
.leftJoin("group.users", "groupUser")
|
||||
@@ -147,7 +154,8 @@ export class AnnouncementService {
|
||||
.leftJoinAndSelect("announcement.userAnnouncements", "userAnnouncements", "userAnnouncements.userId = :userId", { userId })
|
||||
.where("announcement.isPublic = :isPublic", { isPublic: true })
|
||||
.orWhere("groupUser.id = :userId", { userId })
|
||||
.orWhere("userSubscription.userId = :userId", { userId });
|
||||
.orWhere("userSubscription.userId = :userId", { userId })
|
||||
.orWhere("announcementUser.id = :userId", { userId });
|
||||
|
||||
if (queryDto.since) {
|
||||
queryBuilder.andWhere("announcement.createdAt >= :since", { since: queryDto.since });
|
||||
@@ -164,7 +172,7 @@ export class AnnouncementService {
|
||||
queryBuilder.orderBy("announcement.createdAt", "DESC");
|
||||
const rawResults = await queryBuilder.getRawMany();
|
||||
const [, count] = await queryBuilder.skip(skip).take(limit).getManyAndCount();
|
||||
|
||||
//TODO: fix later
|
||||
const announcements = rawResults.map((raw) => ({
|
||||
id: raw.announcement_id,
|
||||
createdAt: raw.announcement_createdAt,
|
||||
|
||||
Reference in New Issue
Block a user