Skip to content

Commit

Permalink
Merge pull request #795 from bounswe/feature/707/BE/upcoming-titles
Browse files Browse the repository at this point in the history
upcoming titles feature added
  • Loading branch information
omersafakbebek authored Dec 23, 2023
2 parents 6a4b626 + d8e09e9 commit ed3bac4
Show file tree
Hide file tree
Showing 10 changed files with 58 additions and 0 deletions.
3 changes: 3 additions & 0 deletions ludos/backend/src/controllers/post.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,8 @@ export class PostController {
isLiked?: boolean,
@Query('isDisliked', new DefaultValuePipe(false), ParseBoolPipe)
isDisliked?: boolean,
@Query('isUpcomingTitle', new DefaultValuePipe(false), ParseBoolPipe)
isUpcomingTitle?: boolean,
@Query('orderByKey') orderByKey?: keyof PostEntity,
@Query('order') order?: 'ASC' | 'DESC',
) {
Expand All @@ -229,6 +231,7 @@ export class PostController {
req.user && req.user.id,
isLiked,
isDisliked,
isUpcomingTitle,
orderByKey,
order,
);
Expand Down
7 changes: 7 additions & 0 deletions ludos/backend/src/dtos/post/request/create.dto.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { ApiProperty } from '@nestjs/swagger';
import { IsArray, IsOptional, IsString, IsUUID } from 'class-validator';
import { UpcomingTitleDto } from '../upcomingTitle.dto';

export class PostCreateDto {
@ApiProperty({
Expand Down Expand Up @@ -47,4 +48,10 @@ export class PostCreateDto {
@IsArray()
@IsOptional()
tags: string[];


@ApiProperty({
description: 'Upcoming Title',
})
upcomingTitle: UpcomingTitleDto;
}
8 changes: 8 additions & 0 deletions ludos/backend/src/dtos/post/request/update.dto.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { ApiProperty } from '@nestjs/swagger';
import { IsArray, IsOptional, IsString, IsUUID } from 'class-validator';
import { UpcomingTitleDto } from '../upcomingTitle.dto';

export class PostUpdateDto {
@ApiProperty({
Expand Down Expand Up @@ -39,4 +40,11 @@ export class PostUpdateDto {
@IsArray()
@IsOptional()
tags: string[];

@ApiProperty({
description: 'Upcoming Title',
required: false,
})
@IsOptional()
upcomingTitle: UpcomingTitleDto;
}
5 changes: 5 additions & 0 deletions ludos/backend/src/dtos/post/response/create.response.dto.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { ApiProperty } from '@nestjs/swagger';
import { Expose } from 'class-transformer';
import { UpcomingTitleDto } from '../upcomingTitle.dto';

export class PostCreateResponseDto {
@ApiProperty()
Expand All @@ -25,4 +26,8 @@ export class PostCreateResponseDto {
@ApiProperty()
@Expose()
createdAt: Date;

@Expose()
@ApiProperty()
upcomingTitle: UpcomingTitleDto;
}
5 changes: 5 additions & 0 deletions ludos/backend/src/dtos/post/response/get.response.dto.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { Expose, Type } from 'class-transformer';
import { UserInOtherResponsesDto } from '../../user/response/user-in-other-responses.dto';
import { GameGetResponseDto } from '../../game/response/get.response';
import { GroupGetResponseDto } from '../../group/response/get.response.dto';
import { UpcomingTitleDto } from '../upcomingTitle.dto';

export class PostGetResponseDto {
@ApiProperty()
Expand Down Expand Up @@ -68,4 +69,8 @@ export class PostGetResponseDto {
@ApiProperty()
@Expose()
createdAt: Date;

@ApiProperty()
@Expose()
upcomingTitle: UpcomingTitleDto;
}
5 changes: 5 additions & 0 deletions ludos/backend/src/dtos/post/response/list.response.dto.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { Expose, Type } from 'class-transformer';
import { UserInOtherResponsesDto } from '../../user/response/user-in-other-responses.dto';
import { GameGetResponseDto } from '../../game/response/get.response';
import { GroupGetResponseDto } from '../../group/response/get.response.dto';
import { UpcomingTitleDto } from '../upcomingTitle.dto';

export class PostListResponseDto {
@Expose()
Expand Down Expand Up @@ -49,4 +50,8 @@ export class PostListResponseDto {
@Expose()
@ApiProperty()
isDisliked: boolean;

@Expose()
@ApiProperty()
upcomingTitle: UpcomingTitleDto;
}
12 changes: 12 additions & 0 deletions ludos/backend/src/dtos/post/upcomingTitle.dto.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { IsBoolean, IsDate, IsString } from 'class-validator';

export class UpcomingTitleDto {
@IsBoolean()
isUpcomingTitle: boolean;

@IsDate()
launchingDate: Date;

@IsString()
demoLink: string;
}
4 changes: 4 additions & 0 deletions ludos/backend/src/entities/post.entity.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import {
import { User } from './user.entity';
import { Game } from './game.entity';
import { Group } from './group.entity';
import { UpcomingTitleDto } from '../dtos/post/upcomingTitle.dto';

@Entity('posts')
export class Post {
Expand Down Expand Up @@ -75,4 +76,7 @@ export class Post {
isLiked: boolean;

isDisliked: boolean;

@Column('jsonb')
upcomingTitle: UpcomingTitleDto;
}
7 changes: 7 additions & 0 deletions ludos/backend/src/repositories/post.repository.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ export class PostRepository extends Repository<Post> {
userId?: string, // denotes current user, used for like and dislike
isLiked?: boolean,
isDisliked?: boolean,
isUpcomingTitle?: boolean,
orderByKey: keyof Post = 'createdAt',
order: 'ASC' | 'DESC' = 'DESC',
): Promise<Pagination<Post, IPaginationMeta>> {
Expand Down Expand Up @@ -88,6 +89,12 @@ export class PostRepository extends Repository<Post> {
if (ownerUserId) {
queryBuilder.andWhere('posts.userId = :ownerUserId', { ownerUserId });
}
if (isUpcomingTitle) {
console.log("seeeennnn");
queryBuilder.andWhere('posts."upcomingTitle"->>\'isUpcomingTitle\' = :isUpcomingTitle', {
isUpcomingTitle: isUpcomingTitle.toString(),
});
}
if (userId && isLiked) {
const subQuery = this.createQueryBuilder()
.select('1')
Expand Down
2 changes: 2 additions & 0 deletions ludos/backend/src/services/post.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,7 @@ export class PostService {
userId?: string,
isLiked?: boolean,
isDisliked?: boolean,
isUpcomingTitle?: boolean,
orderByKey?: keyof Post,
order?: 'ASC' | 'DESC',
): Promise<Pagination<Post, IPaginationMeta>> {
Expand All @@ -182,6 +183,7 @@ export class PostService {
userId,
isLiked,
isDisliked,
isUpcomingTitle,
orderByKey,
order,
);
Expand Down

0 comments on commit ed3bac4

Please sign in to comment.