1
|
package eu.dnetlib.statsapi.repositories;
|
2
|
|
3
|
import eu.dnetlib.statsapi.domain.Result;
|
4
|
|
5
|
import org.apache.log4j.Logger;
|
6
|
import org.springframework.data.redis.core.HashOperations;
|
7
|
import org.springframework.data.redis.core.RedisTemplate;
|
8
|
import org.springframework.stereotype.Repository;
|
9
|
|
10
|
import java.security.MessageDigest;
|
11
|
|
12
|
@Repository
|
13
|
public class StatsRepository {
|
14
|
|
15
|
private RedisTemplate<String, String> redisTemplate;
|
16
|
|
17
|
private HashOperations<String, String, String> jedis;
|
18
|
|
19
|
private final Logger log = Logger.getLogger(this.getClass());
|
20
|
|
21
|
public StatsRepository(RedisTemplate<String, String> redisTemplate) {
|
22
|
this.redisTemplate = redisTemplate;
|
23
|
this.jedis = this.redisTemplate.opsForHash();
|
24
|
}
|
25
|
|
26
|
private static String MD5(String string) throws java.security.NoSuchAlgorithmException {
|
27
|
MessageDigest md = MessageDigest.getInstance("MD5");
|
28
|
md.update(string.getBytes());
|
29
|
|
30
|
byte byteData[] = md.digest();
|
31
|
StringBuilder sb = new StringBuilder();
|
32
|
for (byte aByteData : byteData) {
|
33
|
sb.append(Integer.toString((aByteData & 0xff) + 0x100, 16).substring(1));
|
34
|
}
|
35
|
|
36
|
return sb.toString();
|
37
|
}
|
38
|
|
39
|
public Result getNumber(String number) {
|
40
|
String redis_result = jedis.get("STATS_NUMBERS", number);
|
41
|
if (redis_result != null) {
|
42
|
return new Result("OK", "200", Integer.parseInt(redis_result.replaceAll(",", "")));
|
43
|
}
|
44
|
return new Result("Not Found", "400", null);
|
45
|
}
|
46
|
}
|