Skip to content

Commit 92ff970

Browse files
committed
change applications files
1 parent 5474ec8 commit 92ff970

13 files changed

+39
-28
lines changed

pom.xml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@
6969
<groupId>org.postgresql</groupId>
7070
<artifactId>postgresql</artifactId>
7171
<version>42.7.4</version>
72+
<scope>runtime</scope>
7273
</dependency>
7374

7475
<!--Redis-->
@@ -86,9 +87,12 @@
8687
<dependency>
8788
<groupId>org.flywaydb</groupId>
8889
<artifactId>flyway-core</artifactId>
89-
<version>9.22.1</version>
90+
<version>11.2.0</version>
91+
</dependency>
92+
<dependency>
93+
<groupId>org.flywaydb</groupId>
94+
<artifactId>flyway-database-postgresql</artifactId>
9095
</dependency>
91-
9296

9397
<!--Others-->
9498
<dependency>

src/main/java/com/chat/yourway/config/redis/RedisConfig.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
11
package com.chat.yourway.config.redis;
22

3+
import com.chat.yourway.model.redis.ContactOnline;
34
import com.chat.yourway.model.redis.Token;
45
import lombok.RequiredArgsConstructor;
56
import org.springframework.context.annotation.Bean;
67
import org.springframework.context.annotation.Configuration;
78
import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
89
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
910
import org.springframework.data.redis.core.RedisTemplate;
11+
import org.springframework.data.redis.repository.configuration.EnableRedisRepositories;
1012
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
1113
import org.springframework.data.redis.serializer.StringRedisSerializer;
1214

1315
@Configuration
1416
@RequiredArgsConstructor
17+
@EnableRedisRepositories
1518
public class RedisConfig {
1619

1720
private final RedisProperties properties;
@@ -35,4 +38,13 @@ public RedisTemplate<String, Token> redisTemplate() {
3538
return template;
3639
}
3740

41+
@Bean
42+
public RedisTemplate<String, ContactOnline> contactOnlineRedisTemplate() {
43+
RedisTemplate<String, ContactOnline> template = new RedisTemplate<>();
44+
template.setConnectionFactory(jedisConnectionFactory());
45+
template.setKeySerializer(new StringRedisSerializer());
46+
template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
47+
return template;
48+
}
49+
3850
}

src/main/java/com/chat/yourway/config/redis/RedisProperties.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
public class RedisProperties {
1414

1515
private String host;
16-
private int port;
16+
private Integer port;
1717
private String password;
1818

1919
@Value("${spring.profiles.active}")

src/main/java/com/chat/yourway/controller/rest/MessageController.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ public MessageResponseDto sendToPrivateContact(@PathVariable String sendToEmail,
8080
@ApiResponse(responseCode = "404", description = TOPIC_NOT_FOUND,
8181
content = @Content(schema = @Schema(implementation = ApiErrorResponseDto.class)))
8282
})
83-
@GetMapping(path = TOPIC_ID, produces = APPLICATION_JSON_VALUE, consumes = APPLICATION_JSON_VALUE)
83+
@GetMapping(path = TOPIC_ID, produces = APPLICATION_JSON_VALUE)
8484
public Page<MessageResponseDto> getMessagesByTopic(
8585
@Parameter(description = "Number of page (1..N)",
8686
required = true,
@@ -103,7 +103,7 @@ public Page<MessageResponseDto> getMessagesByTopic(
103103
@ApiResponse(responseCode = "404", description = MESSAGE_NOT_FOUND,
104104
content = @Content(schema = @Schema(implementation = ApiErrorResponseDto.class)))
105105
})
106-
@PostMapping(value = ID_REPORT, consumes = APPLICATION_JSON_VALUE)
106+
@PostMapping(value = ID_REPORT, produces = APPLICATION_JSON_VALUE)
107107
public void reportMessage(@PathVariable UUID id) {
108108
messageService.reportMessageById(id);
109109
}
@@ -115,7 +115,7 @@ public void reportMessage(@PathVariable UUID id) {
115115
@ApiResponse(responseCode = "404", description = MESSAGE_NOT_FOUND,
116116
content = @Content(schema = @Schema(implementation = ApiErrorResponseDto.class)))
117117
})
118-
@PostMapping(value = ID_READ, consumes = APPLICATION_JSON_VALUE)
118+
@PostMapping(value = ID_READ)
119119
public void readMessage(@PathVariable UUID id) {
120120
messageService.readMessage(id);
121121
}

src/main/java/com/chat/yourway/model/Contact.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,15 @@ public class Contact implements UserDetails {
5353
@OneToMany(mappedBy = "sender", fetch = FetchType.LAZY)
5454
private List<Message> messages;
5555

56+
@ManyToMany
57+
@JoinTable(
58+
schema = "chat",
59+
name = "contact_messages_report",
60+
joinColumns = @JoinColumn(name = "contact_id"),
61+
inverseJoinColumns = @JoinColumn(name = "message_id")
62+
)
63+
private Set<Message> reportedMessages = new HashSet<>();
64+
5665
@ManyToMany
5766
@JoinTable(
5867
schema = "chat",

src/main/java/com/chat/yourway/model/Message.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ public class Message {
3232
@JoinColumn(name = "send_by", referencedColumnName = "id", nullable = false)
3333
private Contact sender;
3434

35+
@ManyToMany(mappedBy = "reportedMessages")
36+
private Set<Contact> reporters = new HashSet<>();
37+
3538
@Column(name = "message_text", nullable = false)
3639
private String content;
3740

src/main/java/com/chat/yourway/model/redis/ContactOnline.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import org.springframework.data.annotation.Id;
55
import org.springframework.data.redis.core.RedisHash;
66
import org.springframework.data.redis.core.index.Indexed;
7-
87
import java.time.LocalDateTime;
98
import java.util.UUID;
109

@@ -16,13 +15,11 @@
1615
@ToString
1716
@RedisHash("ContactOnline")
1817
public class ContactOnline {
19-
2018
@Id
2119
@Indexed
2220
private String id;
2321
private LocalDateTime timestamp;
2422
@Indexed
2523
private UUID topicId;
2624
private boolean typingStatus;
27-
2825
}

src/main/java/com/chat/yourway/repository/redis/ContactOnlineRedisRepository.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import com.chat.yourway.model.redis.ContactOnline;
44
import org.springframework.data.repository.CrudRepository;
55
import org.springframework.stereotype.Repository;
6-
76
import java.util.List;
87
import java.util.UUID;
98

src/main/java/com/chat/yourway/repository/redis/TokenRedisRepository.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import com.chat.yourway.model.redis.Token;
44
import org.springframework.data.repository.CrudRepository;
55
import org.springframework.stereotype.Repository;
6-
76
import java.util.List;
87
import java.util.Optional;
98

src/main/resources/application.properties

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,13 @@ spring.data.redis.port=${REDIS_PORT:6379}
2323
spring.data.redis.password=${REDIS_PASSWORD:admin}
2424

2525
#Hibernate
26-
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
2726
spring.jpa.show-sql=true
2827
spring.jpa.properties.hibernate.format_sql=true
29-
spring.jpa.hibernate.ddl-auto=update
28+
spring.jpa.hibernate.ddl-auto=validate
3029

3130
#Flyway:
3231
spring.flyway.enabled=true
33-
spring.flyway.locations=src/main/resources/db/migration
32+
spring.flyway.locations=classpath:db/migration
3433
spring.flyway.baseline-on-migrate=true
3534

3635
#WebSocket config:

0 commit comments

Comments
 (0)