Skip to content

Commit 96950b2

Browse files
Added asciinema
1 parent 9b9acd0 commit 96950b2

File tree

10 files changed

+40
-11
lines changed

10 files changed

+40
-11
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ replay_pid*
2828
*.iml
2929
*.iws
3030
*.ipr
31+
*.cast
3132
out/
3233

3334
# Maven
@@ -40,7 +41,6 @@ release.properties
4041
dependency-reduced-pom.xml
4142
buildNumber.properties
4243
.mvn/timing.properties
43-
# https://github.com/takari/maven-wrapper#usage-without-binary-jar
4444
.mvn/wrapper/maven-wrapper.jar
4545

4646
# OS-specific

README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,4 +65,7 @@ java -jar target/user-service-spring.jar
6565

6666
### 7. Пример работы приложения
6767
![img_1.png](readme-resources/img_1.png)
68-
![img_2.png](readme-resources/img_2.png)
68+
![img_2.png](readme-resources/img_2.png)
69+
70+
[![asciicast](https://asciinema.org/a/724582.svg)](https://asciinema.org/a/724582)
71+

notification-service/src/main/java/notificationservice/dto/UserEventNotificDto.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44

55
@Data
66
public class UserEventNotificDto {
7-
private String operation; // "CREATE" или "DELETE"
7+
private String operation;
88
private String email;
99
}

pom.xml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,16 @@
5858
</dependencies>
5959

6060
<build>
61-
<plugins>
61+
<pluginManagement>
62+
<plugins>
63+
<plugin>
64+
<groupId>org.springframework.boot</groupId>
65+
<artifactId>spring-boot-maven-plugin</artifactId>
66+
<version>${spring-boot.version}</version>
67+
</plugin>
68+
</plugins>
69+
</pluginManagement>
70+
<plugins>
6271
<plugin>
6372
<groupId>org.apache.maven.plugins</groupId>
6473
<artifactId>maven-surefire-plugin</artifactId>

user-service/src/main/java/myuserservice/UserServiceSpringApplication.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@
44
import org.springframework.boot.SpringApplication;
55
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
66
import org.springframework.boot.autoconfigure.SpringBootApplication;
7+
import org.springframework.scheduling.annotation.EnableScheduling;
78

89
@SpringBootApplication
910
@EnableAutoConfiguration
11+
@EnableScheduling
1012
public class UserServiceSpringApplication {
1113

1214
public static void main(String[] args) {
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package myuserservice.entity;
2+
3+
public enum OutboxEventType {
4+
CREATE,
5+
DELETE
6+
}

user-service/src/main/java/myuserservice/entity/OutboxMessage.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package myuserservice.entity;
2+
23
import jakarta.persistence.Column;
34
import jakarta.persistence.Entity;
5+
import jakarta.persistence.EnumType;
6+
import jakarta.persistence.Enumerated;
47
import jakarta.persistence.GeneratedValue;
58
import jakarta.persistence.GenerationType;
69
import jakarta.persistence.Id;
@@ -23,7 +26,9 @@ public class OutboxMessage {
2326
@Id
2427
@GeneratedValue(strategy = GenerationType.IDENTITY)
2528
private Long id;
26-
private String eventType;
29+
30+
@Enumerated(EnumType.STRING)
31+
private OutboxEventType eventType;
2732

2833
@Column(columnDefinition = "TEXT")
2934
private String payload;

user-service/src/main/java/myuserservice/service/UserServiceImpl.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import lombok.RequiredArgsConstructor;
55
import myuserservice.dto.UserDto;
66
import myuserservice.dto.UserEventDto;
7+
import myuserservice.entity.OutboxEventType;
78
import myuserservice.mapper.UserMapper;
89
import myuserservice.entity.OutboxMessage;
910
import myuserservice.entity.User;
@@ -41,7 +42,7 @@ public UserDto createUser(UserDto userDto) {
4142
log.info("Пользователь добавлен: {}", saved);
4243

4344

44-
saveOutboxEvent("CREATE", saved.getEmail());
45+
saveOutboxEvent(OutboxEventType.CREATE, saved.getEmail());
4546

4647
return UserMapper.toDto(saved);
4748
}
@@ -83,19 +84,19 @@ public void deleteUser(Long id) {
8384
userRepository.deleteById(id);
8485
log.info("Пользователь с id {} удалён", id);
8586

86-
saveOutboxEvent("DELETE", user.getEmail());
87+
saveOutboxEvent(OutboxEventType.DELETE, user.getEmail());
8788
}
8889

89-
private void saveOutboxEvent(String operation, String email) {
90+
private void saveOutboxEvent(OutboxEventType eventType, String email) {
9091
try {
9192
UserEventDto event = UserEventDto.builder()
92-
.operation(operation)
93+
.operation(eventType.name())
9394
.email(email)
9495
.build();
9596
String payload = objectMapper.writeValueAsString(event);
9697

9798
OutboxMessage outbox = OutboxMessage.builder()
98-
.eventType(operation)
99+
.eventType(eventType)
99100
.payload(payload)
100101
.createdAt(LocalDateTime.now())
101102
.processed(false)

user-service/src/main/resources/application.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,5 @@ spring.http.encoding.charset=UTF-8
1111
spring.http.encoding.enabled=true
1212
spring.http.encoding.force=true
1313
spring.kafka.bootstrap-servers=localhost:9092
14+
15+

user-service/src/test/java/myuserservice/integration/UserServiceIntegrationTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package myuserservice.integration;
22

33
import myuserservice.dto.UserDto;
4+
import myuserservice.entity.OutboxEventType;
45
import myuserservice.entity.User;
56
import myuserservice.repository.OutboxRepository;
67
import myuserservice.repository.UserRepository;
@@ -54,7 +55,7 @@ void testUserCreate_savesOutboxMessage() {
5455
var dto = UserDto.builder().name("Zoe").email("[email protected]").age(38).build();
5556
userService.createUser(dto);
5657
var messages = outboxRepository.findAll();
57-
assertThat(messages).anyMatch(m -> m.getEventType().equals("CREATE"));
58+
assertThat(messages).anyMatch(m -> m.getEventType().equals(OutboxEventType.CREATE));
5859
}
5960

6061

0 commit comments

Comments
 (0)