Skip to content

Commit 9745051

Browse files
committed
Add missing threat fields: is_vpn, blocklists, scores
Addresses #9 - the ThreatModel was missing fields from the API. - Add is_vpn boolean field - Add blocklists list with Blocklist model (name, site, type) - Add scores object with Scores model (vpn_score, proxy_score, threat_score, trust_score) - Update all test fixtures with new fields https://claude.ai/code/session_01KxvyXRVVZaLrgTZshvsZY6
1 parent 8f8bab8 commit 9745051

9 files changed

Lines changed: 87 additions & 6 deletions

File tree

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package io.ipdata.client.model;
2+
3+
import lombok.Getter;
4+
import lombok.ToString;
5+
6+
@Getter @ToString
7+
public class Blocklist {
8+
private String name;
9+
private String site;
10+
private String type;
11+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package io.ipdata.client.model;
2+
3+
import com.fasterxml.jackson.annotation.JsonProperty;
4+
import lombok.Getter;
5+
import lombok.ToString;
6+
7+
@Getter @ToString
8+
public class Scores {
9+
@JsonProperty("vpn_score")
10+
private int vpnScore;
11+
@JsonProperty("proxy_score")
12+
private int proxyScore;
13+
@JsonProperty("threat_score")
14+
private int threatScore;
15+
@JsonProperty("trust_score")
16+
private int trustScore;
17+
}

src/main/java/io/ipdata/client/model/ThreatModel.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
package io.ipdata.client.model;
22

33
import com.fasterxml.jackson.annotation.JsonProperty;
4+
import java.util.List;
45
import lombok.Getter;
56
import lombok.ToString;
67

78
@Getter @ToString
89
public class ThreatModel {
910
@JsonProperty("is_tor")
1011
private boolean tor;
12+
@JsonProperty("is_vpn")
13+
private boolean vpn;
1114
@JsonProperty("is_proxy")
1215
private boolean proxy;
1316
@JsonProperty("is_anonymous")
@@ -24,4 +27,6 @@ public class ThreatModel {
2427
private boolean icloudRelay;
2528
@JsonProperty("is_datacenter")
2629
private boolean datacenter;
30+
private List<Blocklist> blocklists;
31+
private Scores scores;
2732
}

src/test/resources/io/ipdata/client/fixture.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,22 @@
5656
},
5757
"threat": {
5858
"is_tor": false,
59+
"is_vpn": false,
5960
"is_proxy": false,
6061
"is_anonymous": false,
6162
"is_known_attacker": false,
6263
"is_known_abuser": false,
6364
"is_threat": false,
6465
"is_bogon": false,
6566
"is_icloud_relay": false,
66-
"is_datacenter": false
67+
"is_datacenter": false,
68+
"blocklists": [],
69+
"scores": {
70+
"vpn_score": 0,
71+
"proxy_score": 0,
72+
"threat_score": 0,
73+
"trust_score": 100
74+
}
6775
},
6876
"count": "236"
6977
}

src/test/resources/io/ipdata/client/fixtures/1.1.1.1.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,22 @@
5656
},
5757
"threat": {
5858
"is_tor": false,
59+
"is_vpn": false,
5960
"is_proxy": false,
6061
"is_anonymous": false,
6162
"is_known_attacker": false,
6263
"is_known_abuser": false,
6364
"is_threat": false,
6465
"is_bogon": false,
6566
"is_icloud_relay": false,
66-
"is_datacenter": false
67+
"is_datacenter": false,
68+
"blocklists": [],
69+
"scores": {
70+
"vpn_score": 0,
71+
"proxy_score": 0,
72+
"threat_score": 0,
73+
"trust_score": 100
74+
}
6775
},
6876
"count": "1500"
6977
}

src/test/resources/io/ipdata/client/fixtures/2001-4860-4860--8844.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,22 @@
5656
},
5757
"threat": {
5858
"is_tor": false,
59+
"is_vpn": false,
5960
"is_proxy": false,
6061
"is_anonymous": false,
6162
"is_known_attacker": false,
6263
"is_known_abuser": false,
6364
"is_threat": false,
6465
"is_bogon": false,
6566
"is_icloud_relay": false,
66-
"is_datacenter": false
67+
"is_datacenter": false,
68+
"blocklists": [],
69+
"scores": {
70+
"vpn_score": 0,
71+
"proxy_score": 0,
72+
"threat_score": 0,
73+
"trust_score": 100
74+
}
6775
},
6876
"count": "1500"
6977
}

src/test/resources/io/ipdata/client/fixtures/2001-4860-4860--8888.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,22 @@
5656
},
5757
"threat": {
5858
"is_tor": false,
59+
"is_vpn": false,
5960
"is_proxy": false,
6061
"is_anonymous": false,
6162
"is_known_attacker": false,
6263
"is_known_abuser": false,
6364
"is_threat": false,
6465
"is_bogon": false,
6566
"is_icloud_relay": false,
66-
"is_datacenter": false
67+
"is_datacenter": false,
68+
"blocklists": [],
69+
"scores": {
70+
"vpn_score": 0,
71+
"proxy_score": 0,
72+
"threat_score": 0,
73+
"trust_score": 100
74+
}
6775
},
6876
"count": "1500"
6977
}

src/test/resources/io/ipdata/client/fixtures/41.128.21.123.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,22 @@
5656
},
5757
"threat": {
5858
"is_tor": false,
59+
"is_vpn": false,
5960
"is_proxy": false,
6061
"is_anonymous": false,
6162
"is_known_attacker": false,
6263
"is_known_abuser": false,
6364
"is_threat": false,
6465
"is_bogon": false,
6566
"is_icloud_relay": false,
66-
"is_datacenter": false
67+
"is_datacenter": false,
68+
"blocklists": [],
69+
"scores": {
70+
"vpn_score": 0,
71+
"proxy_score": 0,
72+
"threat_score": 0,
73+
"trust_score": 100
74+
}
6775
},
6876
"count": "1500"
6977
}

src/test/resources/io/ipdata/client/fixtures/8.8.8.8.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,22 @@
5656
},
5757
"threat": {
5858
"is_tor": false,
59+
"is_vpn": false,
5960
"is_proxy": false,
6061
"is_anonymous": false,
6162
"is_known_attacker": false,
6263
"is_known_abuser": false,
6364
"is_threat": false,
6465
"is_bogon": false,
6566
"is_icloud_relay": false,
66-
"is_datacenter": false
67+
"is_datacenter": false,
68+
"blocklists": [],
69+
"scores": {
70+
"vpn_score": 0,
71+
"proxy_score": 0,
72+
"threat_score": 0,
73+
"trust_score": 100
74+
}
6775
},
6876
"count": "1500"
6977
}

0 commit comments

Comments
 (0)