Skip to content

Commit a68a4d3

Browse files
authored
Merge pull request #6 from FerroEduardo/avatar
Mini user avatar
2 parents ac17c44 + da94f7f commit a68a4d3

37 files changed

Lines changed: 294 additions & 120 deletions

core-backend/src/main/java/com/softawii/social/config/SecurityConfig.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import org.springframework.context.annotation.Bean;
1010
import org.springframework.context.annotation.Configuration;
1111
import org.springframework.http.HttpMethod;
12+
import org.springframework.security.authentication.InternalAuthenticationServiceException;
1213
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
1314
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
1415
import org.springframework.security.oauth2.client.authentication.OAuth2AuthenticationToken;
@@ -67,6 +68,11 @@ public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Excepti
6768
response.sendRedirect("/login/failed?reason=github-public-email-disabled");
6869
return;
6970
}
71+
if (exception instanceof InternalAuthenticationServiceException) {
72+
response.sendRedirect("/login/failed?reason=unexpected-error");
73+
return;
74+
}
75+
7076
response.sendError(HttpServletResponse.SC_FORBIDDEN);
7177
})
7278
)
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package com.softawii.social.model;
2+
3+
public record AvatarImage(Long avatar, Long small) {
4+
}

core-backend/src/main/java/com/softawii/social/model/User.java

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
package com.softawii.social.model;
22

33
public class User {
4-
private Long id;
4+
private Long id;
55
private String name;
66
private String email;
7-
private Long imageId;
7+
private Long avatarImageId;
8+
private Long smallAvatarImageId;
89

910
public Long getId() {
1011
return id;
@@ -30,12 +31,20 @@ public void setEmail(String email) {
3031
this.email = email;
3132
}
3233

33-
public Long getImageId() {
34-
return imageId;
34+
public Long getAvatarImageId() {
35+
return avatarImageId;
3536
}
3637

37-
public void setImageId(Long imageUrl) {
38-
this.imageId = imageUrl;
38+
public void setAvatarImageId(Long avatarImageId) {
39+
this.avatarImageId = avatarImageId;
40+
}
41+
42+
public Long getSmallAvatarImageId() {
43+
return smallAvatarImageId;
44+
}
45+
46+
public void setSmallAvatarImageId(Long smallAvatarImageId) {
47+
this.smallAvatarImageId = smallAvatarImageId;
3948
}
4049

4150
@Override
@@ -44,7 +53,8 @@ public String toString() {
4453
"id=" + id +
4554
", name='" + name + '\'' +
4655
", email='" + email + '\'' +
47-
", imageId=" + imageId +
56+
", avatarImageId=" + avatarImageId +
57+
", smallAvatarImageId=" + smallAvatarImageId +
4858
'}';
4959
}
5060
}

core-backend/src/main/java/com/softawii/social/model/dto/CommentDTO.java

Lines changed: 12 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,12 @@ public class CommentDTO {
88
private String authorName;
99
private String value;
1010
private ZonedDateTime createdAt;
11-
private String authorImageUrl;
11+
private String authorAvatarUrl;
12+
private String authorMiniAvatarUrl;
1213

1314
public CommentDTO() {
1415
}
1516

16-
public CommentDTO(Long id, Long authorId, String authorName, String value, ZonedDateTime createdAt, String authorImageUrl) {
17-
this.id = id;
18-
this.authorId = authorId;
19-
this.authorName = authorName;
20-
this.value = value;
21-
this.createdAt = createdAt;
22-
this.authorImageUrl = authorImageUrl;
23-
}
24-
2517
public Long getId() {
2618
return id;
2719
}
@@ -62,23 +54,19 @@ public void setCreatedAt(ZonedDateTime createdAt) {
6254
this.createdAt = createdAt;
6355
}
6456

65-
public String getAuthorImageUrl() {
66-
return authorImageUrl;
57+
public String getAuthorAvatarUrl() {
58+
return authorAvatarUrl;
59+
}
60+
61+
public void setAuthorAvatarUrl(String authorAvatarUrl) {
62+
this.authorAvatarUrl = authorAvatarUrl;
6763
}
6864

69-
public void setAuthorImageUrl(String authorImageUrl) {
70-
this.authorImageUrl = authorImageUrl;
65+
public String getAuthorMiniAvatarUrl() {
66+
return authorMiniAvatarUrl;
7167
}
7268

73-
@Override
74-
public String toString() {
75-
return "CommentDTO{" +
76-
"id=" + id +
77-
", authorId=" + authorId +
78-
", authorName='" + authorName + '\'' +
79-
", value='" + value + '\'' +
80-
", createdAt=" + createdAt +
81-
", authorImageUrl='" + authorImageUrl + '\'' +
82-
'}';
69+
public void setAuthorMiniAvatarUrl(String authorMiniAvatarUrl) {
70+
this.authorMiniAvatarUrl = authorMiniAvatarUrl;
8371
}
8472
}

core-backend/src/main/java/com/softawii/social/model/dto/PostDTO.java

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ public class PostDTO {
1111
private ZonedDateTime modifiedAt;
1212
private Long authorId;
1313
private String authorName;
14-
private String authorImageUrl;
14+
private String authorAvatarUrl;
15+
private String authorMiniAvatarUrl;
1516
private Long gameId;
1617
private String gameName;
1718
private String gameStudio;
@@ -86,12 +87,12 @@ public void setAuthorName(String authorName) {
8687
this.authorName = authorName;
8788
}
8889

89-
public String getAuthorImageUrl() {
90-
return authorImageUrl;
90+
public String getAuthorAvatarUrl() {
91+
return authorAvatarUrl;
9192
}
9293

93-
public void setAuthorImageUrl(String authorImageUrl) {
94-
this.authorImageUrl = authorImageUrl;
94+
public void setAuthorAvatarUrl(String authorAvatarUrl) {
95+
this.authorAvatarUrl = authorAvatarUrl;
9596
}
9697

9798
public Long getGameId() {
@@ -141,4 +142,12 @@ public String getGameImageUrl() {
141142
public void setGameImageUrl(String gameImageUrl) {
142143
this.gameImageUrl = gameImageUrl;
143144
}
145+
146+
public String getAuthorMiniAvatarUrl() {
147+
return authorMiniAvatarUrl;
148+
}
149+
150+
public void setAuthorMiniAvatarUrl(String authorMiniAvatarUrl) {
151+
this.authorMiniAvatarUrl = authorMiniAvatarUrl;
152+
}
144153
}

core-backend/src/main/java/com/softawii/social/model/dto/UserDTO.java

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,17 @@ public class UserDTO {
44
private Long id;
55
private String name;
66
private String email;
7-
private String imageUrl;
7+
private String avatarUrl;
8+
private String miniAvatarUrl;
89

910
public UserDTO() {
1011
}
1112

12-
public UserDTO(Long id, String name, String email, String imageUrl) {
13+
public UserDTO(Long id, String name, String email, String avatarUrl) {
1314
this.id = id;
1415
this.name = name;
1516
this.email = email;
16-
this.imageUrl = imageUrl;
17+
this.avatarUrl = avatarUrl;
1718
}
1819

1920
public Long getId() {
@@ -40,11 +41,19 @@ public void setEmail(String email) {
4041
this.email = email;
4142
}
4243

43-
public String getImageUrl() {
44-
return imageUrl;
44+
public String getAvatarUrl() {
45+
return avatarUrl;
4546
}
4647

47-
public void setImageUrl(String imageUrl) {
48-
this.imageUrl = imageUrl;
48+
public void setAvatarUrl(String avatarUrl) {
49+
this.avatarUrl = avatarUrl;
50+
}
51+
52+
public String getMiniAvatarUrl() {
53+
return miniAvatarUrl;
54+
}
55+
56+
public void setMiniAvatarUrl(String miniAvatarUrl) {
57+
this.miniAvatarUrl = miniAvatarUrl;
4958
}
5059
}

core-backend/src/main/java/com/softawii/social/repository/CommentRepository.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public CommentRepository(JdbcClient jdbcClient, CommentRowMapper commentRowMappe
4747

4848
public Optional<CommentDTO> findById(Long id) {
4949
String sql = """
50-
SELECT pc.id, pc.author_id, u.name as "author_name", u.image_id as "author_image_id", pc.value, pc.created_at
50+
SELECT pc.id, pc.author_id, u.name as "author_name", u.avatar_id AS "authorAvatarId", u.mini_avatar_id AS "miniAuthorAvatarId", pc.value, pc.created_at
5151
FROM social.post_comment pc
5252
INNER JOIN social.user u on u.id = author_id
5353
WHERE pc.id = :id
@@ -63,7 +63,7 @@ public Optional<CommentDTO> findById(Long id) {
6363
public Page<CommentDTO> findByPostId(Long postId, Pageable pageable, boolean isActive) {
6464
MapSqlParameterSource parameterSource = new MapSqlParameterSource();
6565
String sql = """
66-
SELECT pc.id, pc.author_id, u.name AS "author_name", u.image_id AS "author_image_id", pc.value, pc.created_at
66+
SELECT pc.id, pc.author_id, u.name AS "author_name", u.avatar_id AS "authorAvatarId", u.mini_avatar_id AS "miniAuthorAvatarId", pc.value, pc.created_at
6767
FROM social.post_comment pc
6868
INNER JOIN social.user u ON u.id = author_id
6969
WHERE pc.post_id = :post_id
@@ -113,7 +113,7 @@ SELECT COUNT(*) FROM social.post_comment pc
113113

114114
public Optional<CommentDTO> findByIdAndUserId(Long id, Long userId) {
115115
String sql = """
116-
SELECT pc.id, pc.author_id, u.name as "author_name", u.image_id as "author_image_id", pc.value, pc.created_at
116+
SELECT pc.id, pc.author_id, u.name as "author_name", u.avatar_id AS "authorAvatarId", u.mini_avatar_id AS "miniAuthorAvatarId", pc.value, pc.created_at
117117
FROM social.post_comment pc
118118
INNER JOIN social.user u on u.id = author_id
119119
WHERE pc.id = :id AND pc.author_id = :author_id AND pc.deleted_at IS NULL

core-backend/src/main/java/com/softawii/social/repository/PostRepository.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,8 @@ private StringBuilder baseDtoQuery() {
263263
p.modified_at AS "modifiedAt",
264264
u.id AS "authorId",
265265
u.name AS "authorName",
266-
u.image_id AS "authorImageId",
266+
u.avatar_id AS "authorAvatarId",
267+
u.mini_avatar_id AS "miniAuthorAvatarId",
267268
p.game_id AS "gameId",
268269
g.name AS "gameName",
269270
g.studio AS "gameStudio",

core-backend/src/main/java/com/softawii/social/repository/UserRepository.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ public UserRepository(JdbcClient jdbcClient, UserRowMapper userRowMapper, UserDt
2929
@Transactional
3030
public User create(User user) {
3131
String sql = """
32-
INSERT INTO social.user (name, email, image_id)
33-
VALUES (:name, :email, :image_id)
32+
INSERT INTO social.user (name, email, avatar_id, mini_avatar_id)
33+
VALUES (:name, :email, :avatar_id, :mini_avatar_id)
3434
RETURNING id
3535
""";
3636

@@ -39,7 +39,8 @@ public User create(User user) {
3939
.sql(sql)
4040
.param("name", user.getName(), Types.VARCHAR)
4141
.param("email", user.getEmail(), Types.VARCHAR)
42-
.param("image_id", user.getImageId(), Types.BIGINT)
42+
.param("avatar_id", user.getAvatarImageId(), Types.BIGINT)
43+
.param("mini_avatar_id", user.getSmallAvatarImageId(), Types.BIGINT)
4344
.update(keyHolder);
4445

4546
user.setId(keyHolder.getKey().longValue());
@@ -49,7 +50,7 @@ public User create(User user) {
4950

5051
public Optional<User> findByEmail(String email) {
5152
String sql = """
52-
SELECT id, name, email, image_id from social.user
53+
SELECT id, name, email, avatar_id, mini_avatar_id from social.user
5354
WHERE email = :email
5455
LIMIT 1
5556
""";
@@ -63,7 +64,7 @@ public Optional<User> findByEmail(String email) {
6364

6465
public Optional<UserDTO> findByEmailSafe(String email) {
6566
String sql = """
66-
SELECT id, name, email, image_id from social.user
67+
SELECT id, name, email, avatar_id, mini_avatar_id from social.user
6768
WHERE email = :email
6869
LIMIT 1
6970
""";

core-backend/src/main/java/com/softawii/social/repository/mapper/CommentDtoRowMapper.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ public CommentDTO mapRow(ResultSet rs, int rowNum) throws SQLException {
2323
commentDTO.setId(rs.getLong("id"));
2424
commentDTO.setAuthorId(rs.getLong("author_id"));
2525
commentDTO.setAuthorName(rs.getString("author_name"));
26-
commentDTO.setAuthorImageUrl(imageService.getImageUrlFromImageId(rs.getLong("author_image_id")));
26+
commentDTO.setAuthorAvatarUrl(imageService.getImageUrlFromImageId(rs.getLong("authorAvatarId")));
27+
commentDTO.setAuthorMiniAvatarUrl(imageService.getImageUrlFromImageId(rs.getLong("miniAuthorAvatarId")));
2728
commentDTO.setValue(rs.getString("value"));
2829
commentDTO.setCreatedAt(rs.getObject("created_at", OffsetDateTime.class).toZonedDateTime());
2930

0 commit comments

Comments
 (0)