Skip to content

Commit

Permalink
feat | redis adjusts
Browse files Browse the repository at this point in the history
  • Loading branch information
thiagochirana committed Aug 4, 2024
1 parent 19f9f2d commit 829d1aa
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 78 deletions.
Original file line number Diff line number Diff line change
@@ -1,74 +1,19 @@
package br.com.streampix.app.models.checkout;

import jakarta.persistence.Id;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.redis.core.RedisHash;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import java.io.Serializable;;

@RedisHash("checkout")
@NoArgsConstructor
@AllArgsConstructor
@Data
public class Checkout implements Serializable {

@Id
private Long id;
private String nickname;
private String message;
private String value;
private String expTime;

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

public String getNickname() {
return nickname;
}

public void setNickname(String nickname) {
this.nickname = nickname;
}

public String getMessage() {
return message;
}

public void setMessage(String message) {
this.message = message;
}

public String getValue() {
return value;
}

public void setValue(String value) {
this.value = value;
}

public String getExpTime() {
return expTime;
}

public void setExpTime(String expTime) {
this.expTime = expTime;
}

public Map<String, Object> toMap() {
Map<String, Object> map = new HashMap<>();
map.put("id", id);
map.put("nickname", nickname);
map.put("message", message);
map.put("value", value);
map.put("expTime", expTime);
return map;
}
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -2,32 +2,30 @@

import br.com.streampix.app.models.checkout.Checkout;
import br.com.streampix.app.models.records.checkout.CheckoutJson;
import br.com.streampix.app.repositories.CheckoutRepositoryRedis;
import com.fasterxml.jackson.core.JsonProcessingException;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Optional;

@Service
@RequiredArgsConstructor
public class CheckoutService {

private final CheckoutRepositoryRedis checkoutRepositoryRedis;
private final RedisService redis;
private static final String PREFIX = "CO_";

public ResponseEntity doCheckout(CheckoutJson json) throws JsonProcessingException {
Checkout checkout = new Checkout(null, json.nickname(), json.message(), json.value(), "100");
redis.put("CO_"+json.nickname(), checkout);
Checkout checkout = new Checkout(json.nickname(), json.message(), json.value(), "60");
redis.put(PREFIX+json.nickname(), checkout, 60);
return ResponseEntity.ok().body("Deu bom em por no Redis");
}

public ResponseEntity getRedis(String nickname) throws JsonProcessingException {
List<Checkout> checkouts = redis.findByAttribute("CO_"+nickname, "nickname", nickname, Checkout.class);
List<Checkout> checkouts = redis.findByAttribute(PREFIX+nickname, "nickname", nickname, Checkout.class);
if (checkouts.isEmpty()) {
return ResponseEntity.notFound().build();
return ResponseEntity.status(404).body("Nada encontrado com o nickname \"" + nickname+"\"");
} else {
return ResponseEntity.ok(checkouts);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@ public <T> void put(String key, T model) throws JsonProcessingException {
redisTemplate.opsForValue().set(key, modelJson);
}

public <T> void put(String key, T model, int secondsToExpire) throws JsonProcessingException {
String modelJson = objectMapper.writeValueAsString(model);
redisTemplate.opsForValue().set(key, modelJson, secondsToExpire, TimeUnit.SECONDS);
}

public <T> T get(String key, Class<T> clazz) throws JsonProcessingException {
String modelJson = redisTemplate.opsForValue().get(key);
if (modelJson != null) {
Expand All @@ -31,9 +36,9 @@ public <T> T get(String key, Class<T> clazz) throws JsonProcessingException {
}
}

public <T> List<T> findByAttribute(String prefix, String attributeName, String attributeValue, Class<T> clazz) throws JsonProcessingException, JsonMappingException {
public <T> List<T> findByAttribute(String prefixKey, String attributeName, String attributeValue, Class<T> clazz) throws JsonProcessingException, JsonMappingException {
List<T> models = new ArrayList<>();
for (String key : Objects.requireNonNull(redisTemplate.keys(prefix + "*"))) {
for (String key : Objects.requireNonNull(redisTemplate.keys(prefixKey + "*"))) {
String modelJson = redisTemplate.opsForValue().get(key);
if (modelJson != null) {
T model = objectMapper.readValue(modelJson, clazz);
Expand Down

0 comments on commit 829d1aa

Please sign in to comment.