Skip to content

Commit 5451b3c

Browse files
committed
feat(curation): add curation set classes
1 parent b9160ee commit 5451b3c

File tree

3 files changed

+79
-0
lines changed

3 files changed

+79
-0
lines changed

src/main/java/org/typesense/api/Client.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ public class Client {
2929
private SynonymSets synonymSets;
3030
private Map<String, SynonymSet> individualSynonymSets;
3131

32+
private CurationSets curationSets;
33+
private Map<String, CurationSet> individualCurationSets;
34+
3235
public Health health;
3336
public Operations operations;
3437
public Metrics metrics;
@@ -55,6 +58,8 @@ public Client(Configuration configuration){
5558
this.individualStopwordsSets = new HashMap<>();
5659
this.synonymSets = new SynonymSets(this.apiCall);
5760
this.individualSynonymSets = new HashMap<>();
61+
this.curationSets = new CurationSets(this.apiCall);
62+
this.individualCurationSets = new HashMap<>();
5863
}
5964

6065
public Collection collections(String name){
@@ -141,4 +146,19 @@ public SynonymSet synonymSet(String synonymSetName) {
141146
retVal = this.individualSynonymSets.get(synonymSetName);
142147
return retVal;
143148
}
149+
150+
public CurationSets curationSets() {
151+
return this.curationSets;
152+
}
153+
154+
public CurationSet curationSet(String curationSetName) {
155+
CurationSet retVal;
156+
157+
if (!this.individualCurationSets.containsKey(curationSetName)) {
158+
this.individualCurationSets.put(curationSetName, new CurationSet(curationSetName, this.apiCall));
159+
}
160+
161+
retVal = this.individualCurationSets.get(curationSetName);
162+
return retVal;
163+
}
144164
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package org.typesense.api;
2+
3+
import org.typesense.api.utils.URLEncoding;
4+
import org.typesense.model.CurationSetCreateSchema;
5+
import org.typesense.model.CurationSetSchema;
6+
import org.typesense.model.CurationSetDeleteSchema;
7+
8+
public class CurationSet {
9+
10+
private String curationSetName;
11+
private ApiCall apiCall;
12+
13+
public CurationSet(String curationSetName, ApiCall apiCall) {
14+
this.curationSetName = curationSetName;
15+
this.apiCall = apiCall;
16+
}
17+
18+
public CurationSetCreateSchema retrieve() throws Exception {
19+
return this.apiCall.get(this.getEndpoint(), null, CurationSetCreateSchema.class);
20+
}
21+
22+
public CurationSetSchema upsert(CurationSetCreateSchema curationSetCreateSchema) throws Exception {
23+
return this.apiCall.put(this.getEndpoint(), curationSetCreateSchema, null, CurationSetSchema.class);
24+
}
25+
26+
public CurationSetDeleteSchema delete() throws Exception {
27+
return this.apiCall.delete(this.getEndpoint(), null, CurationSetDeleteSchema.class);
28+
}
29+
30+
public String getEndpoint() {
31+
return "/curation_sets/" + URLEncoding.encodeURIComponent(this.curationSetName);
32+
}
33+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package org.typesense.api;
2+
3+
import org.typesense.model.CurationSetCreateSchema;
4+
import org.typesense.model.CurationSetSchema;
5+
6+
public class CurationSets {
7+
8+
private ApiCall apiCall;
9+
public final static String RESOURCEPATH = "/curation_sets";
10+
11+
public CurationSets(ApiCall apiCall) {
12+
this.apiCall = apiCall;
13+
}
14+
15+
public CurationSetSchema upsert(String curationSetName, CurationSetCreateSchema curationSetCreateSchema) throws Exception {
16+
return this.apiCall.put(getEndpoint(curationSetName), curationSetCreateSchema, null, CurationSetSchema.class);
17+
}
18+
19+
public CurationSetSchema[] retrieve() throws Exception {
20+
return this.apiCall.get(this.getEndpoint(null), null, CurationSetSchema[].class);
21+
}
22+
23+
public String getEndpoint(String operation) {
24+
return RESOURCEPATH + "/" + (operation == null ? "" : operation);
25+
}
26+
}

0 commit comments

Comments
 (0)