Skip to content

Commit e638ef6

Browse files
committed
a bit of auth stuff and loading user data from db
1 parent 4e74104 commit e638ef6

File tree

6 files changed

+85
-2
lines changed

6 files changed

+85
-2
lines changed

src/main/java/net/developerden/backend/controller/InfoController.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33

44
import net.developerden.backend.security.DiscordUser;
5+
import org.springframework.security.access.annotation.Secured;
56
import org.springframework.security.core.annotation.AuthenticationPrincipal;
67
import org.springframework.web.bind.annotation.GetMapping;
78
import org.springframework.web.bind.annotation.RestController;
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package net.developerden.backend.users;
2+
3+
import javax.persistence.Entity;
4+
import javax.persistence.Id;
5+
import javax.persistence.Table;
6+
import java.util.Objects;
7+
8+
@Entity
9+
@Table(name = "Users")
10+
public class DevDenUser {
11+
@Id
12+
private long id;
13+
private long xp;
14+
private int level;
15+
private int bumps;
16+
17+
@Override
18+
public boolean equals(Object o) {
19+
if (this == o) return true;
20+
if (!(o instanceof DevDenUser that)) return false;
21+
return id == that.id && xp == that.xp && level == that.level && bumps == that.bumps;
22+
}
23+
24+
@Override
25+
public int hashCode() {
26+
return Objects.hash(id, xp, level, bumps);
27+
}
28+
29+
public long getId() {
30+
return id;
31+
}
32+
33+
public long getXp() {
34+
return xp;
35+
}
36+
37+
public int getLevel() {
38+
return level;
39+
}
40+
41+
public int getBumps() {
42+
return bumps;
43+
}
44+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package net.developerden.backend.users;
2+
3+
import net.developerden.backend.security.DiscordUser;
4+
import org.springframework.security.core.annotation.AuthenticationPrincipal;
5+
import org.springframework.web.bind.annotation.GetMapping;
6+
import org.springframework.web.bind.annotation.PathVariable;
7+
import org.springframework.web.bind.annotation.RestController;
8+
9+
import java.util.Optional;
10+
11+
@RestController
12+
public class DevDenUserController {
13+
private final DevDenUserRepository repository;
14+
15+
public DevDenUserController(DevDenUserRepository repository) {
16+
this.repository = repository;
17+
}
18+
19+
@GetMapping("/users/me")
20+
public Optional<DevDenUser> getMe(@AuthenticationPrincipal DiscordUser user) {
21+
return repository.findById(Long.valueOf(user.id()));
22+
}
23+
24+
@GetMapping("/users/{id}")
25+
public Optional<DevDenUser> getById(@AuthenticationPrincipal DiscordUser user, @PathVariable Optional<Long> id) {
26+
return id.flatMap(repository::findById);
27+
}
28+
29+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package net.developerden.backend.users;
2+
3+
import org.springframework.data.jpa.repository.JpaRepository;
4+
import org.springframework.stereotype.Repository;
5+
6+
@Repository
7+
public interface DevDenUserRepository extends JpaRepository<DevDenUser, Long> {
8+
}

src/test/java/net/developerden/backend/DevDenBackendApplicationTests.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
import org.junit.jupiter.api.Test;
44
import org.springframework.boot.test.context.SpringBootTest;
5+
import org.springframework.test.context.ActiveProfiles;
56

7+
@ActiveProfiles("test")
68
@SpringBootTest
79
class DevDenBackendApplicationTests {
810

src/test/java/net/developerden/backend/controller/InfoControllerTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@
99
import org.springframework.test.web.servlet.MockMvc;
1010

1111
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
12-
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
13-
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
12+
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
1413

1514
@ActiveProfiles("test")
1615
@WebMvcTest

0 commit comments

Comments
 (0)