starting request service

Signed-off-by: Peter Siegmund <developer@mars3142.org>
This commit is contained in:
2024-08-03 10:18:42 +02:00
parent 64f4ab247b
commit bb92409fda
24 changed files with 255 additions and 35 deletions

View File

@@ -0,0 +1,4 @@
package dev.mars3142.fhq.account;
public interface AccountService{
}

View File

@@ -0,0 +1,17 @@
package dev.mars3142.fhq.account.repositories;
import dev.mars3142.fhq.account.repositories.impl.responses.LoginResponse;
import dev.mars3142.fhq.account.repositories.impl.responses.AccountDeleteResponse;
import dev.mars3142.fhq.account.repositories.impl.responses.AccountRegisterResponse;
import dev.mars3142.fhq.account.repositories.impl.responses.RefreshTokenResponse;
public interface AccountRepository {
AccountRegisterResponse register(String username, String email, String password);
LoginResponse login(String username, String password);
RefreshTokenResponse refreshToken(String token);
AccountDeleteResponse delete(String token);
}

View File

@@ -0,0 +1,68 @@
package dev.mars3142.fhq.account.repositories.impl;
import dev.mars3142.fhq.account.repositories.impl.responses.AccountRegisterResponse;
import dev.mars3142.fhq.account.repositories.impl.responses.LoginResponse;
import dev.mars3142.fhq.account.repositories.AccountRepository;
import dev.mars3142.fhq.account.repositories.impl.requests.AccountDeleteRequest;
import dev.mars3142.fhq.account.repositories.impl.requests.LoginRequest;
import dev.mars3142.fhq.account.repositories.impl.requests.RefreshTokenRequest;
import dev.mars3142.fhq.account.repositories.impl.responses.AccountDeleteResponse;
import dev.mars3142.fhq.account.repositories.impl.responses.RefreshTokenResponse;
import dev.mars3142.fhq.account.repositories.impl.requests.AccountRegisterRequest;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import lombok.val;
import org.springframework.stereotype.Repository;
import org.springframework.web.client.RestClient;
@Repository
@RequiredArgsConstructor
@Slf4j
public class AccountRepositoryImpl implements AccountRepository {
private final RestClient client;
@Override
public AccountRegisterResponse register(String username, String email, String password) {
val request = new AccountRegisterRequest(username, email, password);
return client
.post()
.uri("/v1/account/register")
.body(request)
.retrieve()
.body(AccountRegisterResponse.class);
}
@Override
public LoginResponse login(String email, String password) {
val request = new LoginRequest(email, password);
return client
.post()
.uri("/v1/account/login")
.body(request)
.retrieve()
.body(LoginResponse.class);
}
@Override
public RefreshTokenResponse refreshToken(String token) {
val request = new RefreshTokenRequest(token);
return client
.post()
.uri("/v1/account/refresh")
.body(request)
.retrieve()
.body(RefreshTokenResponse.class);
}
@Override
public AccountDeleteResponse delete(String token) {
val request = new AccountDeleteRequest(token);
return client
.post()
.uri("/v1/account/delete")
.body(request)
.retrieve()
.body(AccountDeleteResponse.class);
}
}

View File

@@ -0,0 +1,4 @@
package dev.mars3142.fhq.account.repositories.impl.requests;
public record AccountDeleteRequest(String token) {
}

View File

@@ -0,0 +1,4 @@
package dev.mars3142.fhq.account.repositories.impl.requests;
public record AccountRegisterRequest(String username, String email, String password) {
}

View File

@@ -0,0 +1,4 @@
package dev.mars3142.fhq.account.repositories.impl.requests;
public record LoginRequest(String email, String password) {
}

View File

@@ -0,0 +1,4 @@
package dev.mars3142.fhq.account.repositories.impl.requests;
public record RefreshTokenRequest(String token) {
}

View File

@@ -0,0 +1,4 @@
package dev.mars3142.fhq.account.repositories.impl.responses;
public record AccountDeleteResponse() {
}

View File

@@ -0,0 +1,4 @@
package dev.mars3142.fhq.account.repositories.impl.responses;
public record AccountRegisterResponse() {
}

View File

@@ -0,0 +1,4 @@
package dev.mars3142.fhq.account.repositories.impl.responses;
public record LoginResponse() {
}

View File

@@ -0,0 +1,4 @@
package dev.mars3142.fhq.account.repositories.impl.responses;
public record RefreshTokenResponse() {
}

View File

@@ -0,0 +1,14 @@
package dev.mars3142.fhq.account.services;
import dev.mars3142.fhq.account.repositories.AccountRepository;
import dev.mars3142.fhq.account.AccountService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@Service
@RequiredArgsConstructor
public class AccountServiceImpl implements AccountService {
private final AccountRepository repository;
}