Skip to content

Commit 97e40ea

Browse files
Merge pull request #15 from prgrms-web-devcourse-final-project/feat/block/3
[Refactor] BlockList API to simplify request handling
2 parents 97e17df + b49d64b commit 97e40ea

File tree

15 files changed

+449
-77
lines changed

15 files changed

+449
-77
lines changed

build.gradle.kts

Lines changed: 40 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,25 +35,25 @@ dependencies {
3535

3636
// Spring OAuth2
3737
// implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
38-
implementation ("org.springframework.boot:spring-boot-starter-security")
38+
implementation("org.springframework.boot:spring-boot-starter-security")
3939

4040
// Valid
4141
// implementation("org.springframework.boot:spring-boot-starter-validation")
4242

4343
// MariaDB & Spring JPA
4444
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
45-
runtimeOnly ("org.mariadb.jdbc:mariadb-java-client")
45+
runtimeOnly("org.mariadb.jdbc:mariadb-java-client")
4646

4747
// JWT
48-
implementation ("io.jsonwebtoken:jjwt-api:0.11.5")
49-
implementation ("io.jsonwebtoken:jjwt-impl:0.11.5")
50-
implementation ("io.jsonwebtoken:jjwt-jackson:0.11.5")
48+
implementation("io.jsonwebtoken:jjwt-api:0.11.5")
49+
implementation("io.jsonwebtoken:jjwt-impl:0.11.5")
50+
implementation("io.jsonwebtoken:jjwt-jackson:0.11.5")
5151

5252
// Redis
5353
implementation("org.springframework.boot:spring-boot-starter-data-redis")
5454

5555
// Swagger
56-
implementation ("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.7.0")
56+
implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.7.0")
5757

5858
// Lombok
5959
compileOnly("org.projectlombok:lombok:1.18.30")
@@ -67,23 +67,54 @@ dependencies {
6767
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
6868

6969
// logger
70-
implementation ("org.springframework.boot:spring-boot-starter-logging")
70+
implementation("org.springframework.boot:spring-boot-starter-logging")
7171

7272
// validation
73-
implementation ("org.springframework.boot:spring-boot-starter-validation")
73+
implementation("org.springframework.boot:spring-boot-starter-validation")
7474

7575
// Feign
7676
implementation("org.springframework.cloud:spring-cloud-starter-openfeign")
7777

7878
// Mail
79-
implementation ("org.springframework.boot:spring-boot-starter-mail")
79+
implementation("org.springframework.boot:spring-boot-starter-mail")
8080

8181
// Kafka
8282
// implementation ("org.springframework.kafka:spring-kafka")
8383
// implementation ("org.apache.kafka:kafka-streams")
8484
// implementation ("org.apache.kafka:kafka-clients")
85+
86+
//QueryDSL 추가
87+
implementation ("com.querydsl:querydsl-apt:5.0.0")
88+
implementation ("com.querydsl:querydsl-jpa:5.0.0:jakarta")
89+
implementation ("com.querydsl:querydsl-core:5.0.0")
90+
annotationProcessor ("com.querydsl:querydsl-apt:5.0.0:jakarta")
91+
annotationProcessor ("jakarta.annotation:jakarta.annotation-api")
92+
annotationProcessor ("jakarta.persistence:jakarta.persistence-api")
93+
8594
}
8695

8796
tasks.withType<Test> {
8897
useJUnitPlatform()
8998
}
99+
100+
// Querydsl 빌드 옵션 설정
101+
val generatedDir = "src/main/generated"
102+
103+
// querydsl QClass 파일 생성 위치를 지정
104+
tasks.withType<JavaCompile> {
105+
options.generatedSourceOutputDirectory.set(file(generatedDir))
106+
}
107+
108+
// java source set에 querydsl QClass 위치 추가
109+
sourceSets {
110+
getByName("main") {
111+
java {
112+
srcDir(generatedDir)
113+
}
114+
}
115+
}
116+
117+
// gradle clean 시에 QClass 디렉토리 삭제
118+
tasks.named<Delete>("clean") {
119+
delete(file(generatedDir))
120+
}
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
package org.dfbf.soundlink.domain.blocklist.entity;
2+
3+
import static com.querydsl.core.types.PathMetadataFactory.*;
4+
5+
import com.querydsl.core.types.dsl.*;
6+
7+
import com.querydsl.core.types.PathMetadata;
8+
import javax.annotation.processing.Generated;
9+
import com.querydsl.core.types.Path;
10+
import com.querydsl.core.types.dsl.PathInits;
11+
12+
13+
/**
14+
* QBlocklist is a Querydsl query type for Blocklist
15+
*/
16+
@Generated("com.querydsl.codegen.DefaultEntitySerializer")
17+
public class QBlocklist extends EntityPathBase<Blocklist> {
18+
19+
private static final long serialVersionUID = -864493686L;
20+
21+
private static final PathInits INITS = PathInits.DIRECT2;
22+
23+
public static final QBlocklist blocklist = new QBlocklist("blocklist");
24+
25+
public final org.dfbf.soundlink.domain.user.entity.QUser blockedUser;
26+
27+
public final NumberPath<Long> blocklistId = createNumber("blocklistId", Long.class);
28+
29+
public final DateTimePath<java.sql.Timestamp> createdAt = createDateTime("createdAt", java.sql.Timestamp.class);
30+
31+
public final DateTimePath<java.sql.Timestamp> updatedAt = createDateTime("updatedAt", java.sql.Timestamp.class);
32+
33+
public final org.dfbf.soundlink.domain.user.entity.QUser user;
34+
35+
public QBlocklist(String variable) {
36+
this(Blocklist.class, forVariable(variable), INITS);
37+
}
38+
39+
public QBlocklist(Path<? extends Blocklist> path) {
40+
this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
41+
}
42+
43+
public QBlocklist(PathMetadata metadata) {
44+
this(metadata, PathInits.getFor(metadata, INITS));
45+
}
46+
47+
public QBlocklist(PathMetadata metadata, PathInits inits) {
48+
this(Blocklist.class, metadata, inits);
49+
}
50+
51+
public QBlocklist(Class<? extends Blocklist> type, PathMetadata metadata, PathInits inits) {
52+
super(type, metadata, inits);
53+
this.blockedUser = inits.isInitialized("blockedUser") ? new org.dfbf.soundlink.domain.user.entity.QUser(forProperty("blockedUser"), inits.get("blockedUser")) : null;
54+
this.user = inits.isInitialized("user") ? new org.dfbf.soundlink.domain.user.entity.QUser(forProperty("user"), inits.get("user")) : null;
55+
}
56+
57+
}
58+
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package org.dfbf.soundlink.domain.emotionRecord.entity;
2+
3+
import static com.querydsl.core.types.PathMetadataFactory.*;
4+
5+
import com.querydsl.core.types.dsl.*;
6+
7+
import com.querydsl.core.types.PathMetadata;
8+
import javax.annotation.processing.Generated;
9+
import com.querydsl.core.types.Path;
10+
import com.querydsl.core.types.dsl.PathInits;
11+
12+
13+
/**
14+
* QEmotionRecord is a Querydsl query type for EmotionRecord
15+
*/
16+
@Generated("com.querydsl.codegen.DefaultEntitySerializer")
17+
public class QEmotionRecord extends EntityPathBase<EmotionRecord> {
18+
19+
private static final long serialVersionUID = 751579946L;
20+
21+
private static final PathInits INITS = PathInits.DIRECT2;
22+
23+
public static final QEmotionRecord emotionRecord = new QEmotionRecord("emotionRecord");
24+
25+
public final StringPath comment = createString("comment");
26+
27+
public final DateTimePath<java.sql.Timestamp> createdAt = createDateTime("createdAt", java.sql.Timestamp.class);
28+
29+
public final EnumPath<org.dfbf.soundlink.global.comm.enums.Emotions> emotion = createEnum("emotion", org.dfbf.soundlink.global.comm.enums.Emotions.class);
30+
31+
public final NumberPath<Long> recordId = createNumber("recordId", Long.class);
32+
33+
public final QSpotifyMusic spotifyMusic;
34+
35+
public final DateTimePath<java.sql.Timestamp> updatedAt = createDateTime("updatedAt", java.sql.Timestamp.class);
36+
37+
public final org.dfbf.soundlink.domain.user.entity.QUser user;
38+
39+
public QEmotionRecord(String variable) {
40+
this(EmotionRecord.class, forVariable(variable), INITS);
41+
}
42+
43+
public QEmotionRecord(Path<? extends EmotionRecord> path) {
44+
this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
45+
}
46+
47+
public QEmotionRecord(PathMetadata metadata) {
48+
this(metadata, PathInits.getFor(metadata, INITS));
49+
}
50+
51+
public QEmotionRecord(PathMetadata metadata, PathInits inits) {
52+
this(EmotionRecord.class, metadata, inits);
53+
}
54+
55+
public QEmotionRecord(Class<? extends EmotionRecord> type, PathMetadata metadata, PathInits inits) {
56+
super(type, metadata, inits);
57+
this.spotifyMusic = inits.isInitialized("spotifyMusic") ? new QSpotifyMusic(forProperty("spotifyMusic")) : null;
58+
this.user = inits.isInitialized("user") ? new org.dfbf.soundlink.domain.user.entity.QUser(forProperty("user"), inits.get("user")) : null;
59+
}
60+
61+
}
62+
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package org.dfbf.soundlink.domain.emotionRecord.entity;
2+
3+
import static com.querydsl.core.types.PathMetadataFactory.*;
4+
5+
import com.querydsl.core.types.dsl.*;
6+
7+
import com.querydsl.core.types.PathMetadata;
8+
import javax.annotation.processing.Generated;
9+
import com.querydsl.core.types.Path;
10+
11+
12+
/**
13+
* QSpotifyMusic is a Querydsl query type for SpotifyMusic
14+
*/
15+
@Generated("com.querydsl.codegen.DefaultEntitySerializer")
16+
public class QSpotifyMusic extends EntityPathBase<SpotifyMusic> {
17+
18+
private static final long serialVersionUID = 401786157L;
19+
20+
public static final QSpotifyMusic spotifyMusic = new QSpotifyMusic("spotifyMusic");
21+
22+
public final StringPath albumImage = createString("albumImage");
23+
24+
public final StringPath artist = createString("artist");
25+
26+
public final DateTimePath<java.sql.Timestamp> createdAt = createDateTime("createdAt", java.sql.Timestamp.class);
27+
28+
public final NumberPath<Long> spotifyId = createNumber("spotifyId", Long.class);
29+
30+
public final StringPath title = createString("title");
31+
32+
public final DateTimePath<java.sql.Timestamp> updateAt = createDateTime("updateAt", java.sql.Timestamp.class);
33+
34+
public QSpotifyMusic(String variable) {
35+
super(SpotifyMusic.class, forVariable(variable));
36+
}
37+
38+
public QSpotifyMusic(Path<? extends SpotifyMusic> path) {
39+
super(path.getType(), path.getMetadata());
40+
}
41+
42+
public QSpotifyMusic(PathMetadata metadata) {
43+
super(SpotifyMusic.class, metadata);
44+
}
45+
46+
}
47+
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
package org.dfbf.soundlink.domain.user.entity;
2+
3+
import static com.querydsl.core.types.PathMetadataFactory.*;
4+
5+
import com.querydsl.core.types.dsl.*;
6+
7+
import com.querydsl.core.types.PathMetadata;
8+
import javax.annotation.processing.Generated;
9+
import com.querydsl.core.types.Path;
10+
import com.querydsl.core.types.dsl.PathInits;
11+
12+
13+
/**
14+
* QProfileMusic is a Querydsl query type for ProfileMusic
15+
*/
16+
@Generated("com.querydsl.codegen.DefaultEntitySerializer")
17+
public class QProfileMusic extends EntityPathBase<ProfileMusic> {
18+
19+
private static final long serialVersionUID = -1546125877L;
20+
21+
private static final PathInits INITS = PathInits.DIRECT2;
22+
23+
public static final QProfileMusic profileMusic = new QProfileMusic("profileMusic");
24+
25+
public final DateTimePath<java.sql.Timestamp> createAt = createDateTime("createAt", java.sql.Timestamp.class);
26+
27+
public final NumberPath<Long> profileMusicId = createNumber("profileMusicId", Long.class);
28+
29+
public final org.dfbf.soundlink.domain.emotionRecord.entity.QSpotifyMusic spotifyMusic;
30+
31+
public final DateTimePath<java.sql.Timestamp> updateAt = createDateTime("updateAt", java.sql.Timestamp.class);
32+
33+
public final QUser user;
34+
35+
public QProfileMusic(String variable) {
36+
this(ProfileMusic.class, forVariable(variable), INITS);
37+
}
38+
39+
public QProfileMusic(Path<? extends ProfileMusic> path) {
40+
this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
41+
}
42+
43+
public QProfileMusic(PathMetadata metadata) {
44+
this(metadata, PathInits.getFor(metadata, INITS));
45+
}
46+
47+
public QProfileMusic(PathMetadata metadata, PathInits inits) {
48+
this(ProfileMusic.class, metadata, inits);
49+
}
50+
51+
public QProfileMusic(Class<? extends ProfileMusic> type, PathMetadata metadata, PathInits inits) {
52+
super(type, metadata, inits);
53+
this.spotifyMusic = inits.isInitialized("spotifyMusic") ? new org.dfbf.soundlink.domain.emotionRecord.entity.QSpotifyMusic(forProperty("spotifyMusic")) : null;
54+
this.user = inits.isInitialized("user") ? new QUser(forProperty("user"), inits.get("user")) : null;
55+
}
56+
57+
}
58+
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
package org.dfbf.soundlink.domain.user.entity;
2+
3+
import static com.querydsl.core.types.PathMetadataFactory.*;
4+
5+
import com.querydsl.core.types.dsl.*;
6+
7+
import com.querydsl.core.types.PathMetadata;
8+
import javax.annotation.processing.Generated;
9+
import com.querydsl.core.types.Path;
10+
import com.querydsl.core.types.dsl.PathInits;
11+
12+
13+
/**
14+
* QUser is a Querydsl query type for User
15+
*/
16+
@Generated("com.querydsl.codegen.DefaultEntitySerializer")
17+
public class QUser extends EntityPathBase<User> {
18+
19+
private static final long serialVersionUID = -2109140326L;
20+
21+
private static final PathInits INITS = PathInits.DIRECT2;
22+
23+
public static final QUser user = new QUser("user");
24+
25+
public final ListPath<org.dfbf.soundlink.domain.blocklist.entity.Blocklist, org.dfbf.soundlink.domain.blocklist.entity.QBlocklist> blocklist = this.<org.dfbf.soundlink.domain.blocklist.entity.Blocklist, org.dfbf.soundlink.domain.blocklist.entity.QBlocklist>createList("blocklist", org.dfbf.soundlink.domain.blocklist.entity.Blocklist.class, org.dfbf.soundlink.domain.blocklist.entity.QBlocklist.class, PathInits.DIRECT2);
26+
27+
public final DateTimePath<java.sql.Timestamp> createdAt = createDateTime("createdAt", java.sql.Timestamp.class);
28+
29+
public final StringPath email = createString("email");
30+
31+
public final ListPath<org.dfbf.soundlink.domain.emotionRecord.entity.EmotionRecord, org.dfbf.soundlink.domain.emotionRecord.entity.QEmotionRecord> emotionRecord = this.<org.dfbf.soundlink.domain.emotionRecord.entity.EmotionRecord, org.dfbf.soundlink.domain.emotionRecord.entity.QEmotionRecord>createList("emotionRecord", org.dfbf.soundlink.domain.emotionRecord.entity.EmotionRecord.class, org.dfbf.soundlink.domain.emotionRecord.entity.QEmotionRecord.class, PathInits.DIRECT2);
32+
33+
public final StringPath loginId = createString("loginId");
34+
35+
public final StringPath nickName = createString("nickName");
36+
37+
public final StringPath password = createString("password");
38+
39+
public final QProfileMusic profileMusic;
40+
41+
public final NumberPath<Long> socialId = createNumber("socialId", Long.class);
42+
43+
public final EnumPath<org.dfbf.soundlink.global.comm.enums.SocialType> socialType = createEnum("socialType", org.dfbf.soundlink.global.comm.enums.SocialType.class);
44+
45+
public final DateTimePath<java.sql.Timestamp> updateAt = createDateTime("updateAt", java.sql.Timestamp.class);
46+
47+
public final NumberPath<Long> userId = createNumber("userId", Long.class);
48+
49+
public QUser(String variable) {
50+
this(User.class, forVariable(variable), INITS);
51+
}
52+
53+
public QUser(Path<? extends User> path) {
54+
this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
55+
}
56+
57+
public QUser(PathMetadata metadata) {
58+
this(metadata, PathInits.getFor(metadata, INITS));
59+
}
60+
61+
public QUser(PathMetadata metadata, PathInits inits) {
62+
this(User.class, metadata, inits);
63+
}
64+
65+
public QUser(Class<? extends User> type, PathMetadata metadata, PathInits inits) {
66+
super(type, metadata, inits);
67+
this.profileMusic = inits.isInitialized("profileMusic") ? new QProfileMusic(forProperty("profileMusic"), inits.get("profileMusic")) : null;
68+
}
69+
70+
}
71+

0 commit comments

Comments
 (0)