package org.initialde.yakasave.Infrastructure.authentication.Jwt.fake;


import org.initialde.yakasave.Api.Requests.LoginRequest;
import org.initialde.yakasave.Infrastructure.authentication.Jwt.JwtService;
import org.springframework.security.core.userdetails.UserDetails;

import java.util.HashMap;
import java.util.Map;

public class FakeJwtService implements JwtService {
    private final Map<String, String> tokenUserMap = new HashMap<>();
    private String token = "";

    public void setupFakeToken(String token) {
        this.token = token;
    }

    @Override
    public String generateToken(LoginRequest loginRequest) {
        String fakeToken = token;
        tokenUserMap.put(fakeToken, loginRequest.username());
        return fakeToken;
    }

    @Override
    public String extractUsername(String token) {
        return tokenUserMap.getOrDefault(token, "unknown");
    }

    @Override
    public boolean isTokenValid(String jwt, UserDetails userDetails) {
        return true;
    }
}
