Skip to content

Commit e0a47f2

Browse files
author
Max Presman
committed
remove typed reference from grant
1 parent 086c001 commit e0a47f2

File tree

3 files changed

+25
-24
lines changed

3 files changed

+25
-24
lines changed

src/main/java/com/pubnub/api/endpoints/access/Grant.java

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
11
package com.pubnub.api.endpoints.access;
22

3-
import com.fasterxml.jackson.core.type.TypeReference;
3+
import com.fasterxml.jackson.databind.JsonNode;
44
import com.pubnub.api.PubNub;
55
import com.pubnub.api.PubNubException;
66
import com.pubnub.api.PubNubUtil;
77
import com.pubnub.api.builder.PubNubErrorBuilder;
88
import com.pubnub.api.endpoints.Endpoint;
99
import com.pubnub.api.enums.PNOperationType;
10-
import com.pubnub.api.managers.MapperManager;
1110
import com.pubnub.api.models.consumer.access_manager.PNAccessManagerGrantResult;
1211
import com.pubnub.api.models.consumer.access_manager.PNAccessManagerKeyData;
13-
import com.pubnub.api.models.consumer.access_manager.PNAccessManagerKeysData;
1412
import com.pubnub.api.models.server.Envelope;
1513
import com.pubnub.api.models.server.access_manager.AccessManagerGrantPayload;
1614
import lombok.Setter;
@@ -21,6 +19,7 @@
2119

2220
import java.util.ArrayList;
2321
import java.util.HashMap;
22+
import java.util.Iterator;
2423
import java.util.List;
2524
import java.util.Map;
2625

@@ -119,27 +118,19 @@ protected PNAccessManagerGrantResult createResponse(Response<Envelope<AccessMana
119118
if (channelGroups.size() == 1) {
120119
constructedGroups.put(data.getChannelGroups().asText(), data.getAuthKeys());
121120
} else if (channelGroups.size() > 1) {
122-
MapperManager mapper = this.getPubnub().getMapper();
123-
HashMap<String, PNAccessManagerKeysData> channelGroupKeySet = mapper.fromJson(data.getChannelGroups().toString(),
124-
new TypeReference<HashMap<String, PNAccessManagerKeysData>>() {
125-
});
126-
// for (String fetchedChannelGroup : channelGroupKeySet.keySet()) {
127-
// constructedGroups.put(fetchedChannelGroup, channelGroupKeySet.get(fetchedChannelGroup).getAuthKeys());
128-
// }
129-
for (Map.Entry<String, PNAccessManagerKeysData> entry : channelGroupKeySet.entrySet()) {
130-
constructedGroups.put(entry.getKey(), entry.getValue().getAuthKeys());
121+
for (Iterator<Map.Entry<String, JsonNode>> it = data.getChannelGroups().fields(); it.hasNext();) {
122+
Map.Entry<String, JsonNode> channelGroup = it.next();
123+
constructedGroups.put(channelGroup.getKey(), createKeyMap(channelGroup.getValue()));
131124
}
132125
}
133126
}
134127

135-
136128
if (data.getChannels() != null) {
137129
for (String fetchedChannel : data.getChannels().keySet()) {
138130
constructedChannels.put(fetchedChannel, data.getChannels().get(fetchedChannel).getAuthKeys());
139131
}
140132
}
141133

142-
143134
return pnAccessManagerGrantResult
144135
.subscribeKey(data.getSubscribeKey())
145136
.level(data.getLevel())
@@ -159,4 +150,20 @@ protected boolean isAuthRequired() {
159150
return false;
160151
}
161152

153+
private Map<String, PNAccessManagerKeyData> createKeyMap(JsonNode input) {
154+
Map<String, PNAccessManagerKeyData> result = new HashMap<>();
155+
156+
for (Iterator<Map.Entry<String, JsonNode>> it = input.get("auths").fields(); it.hasNext();) {
157+
Map.Entry<String, JsonNode> keyMap = it.next();
158+
PNAccessManagerKeyData pnAccessManagerKeyData = new PNAccessManagerKeyData()
159+
.setManageEnabled(keyMap.getValue().get("m").asBoolean())
160+
.setWriteEnabled(keyMap.getValue().get("w").asBoolean())
161+
.setReadEnabled(keyMap.getValue().get("r").asBoolean());
162+
163+
result.put(keyMap.getKey(), pnAccessManagerKeyData);
164+
}
165+
166+
return result;
167+
}
168+
162169
}

src/main/java/com/pubnub/api/managers/MapperManager.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.pubnub.api.managers;
22

33
import com.fasterxml.jackson.core.JsonProcessingException;
4-
import com.fasterxml.jackson.core.type.TypeReference;
54
import com.fasterxml.jackson.databind.DeserializationFeature;
65
import com.fasterxml.jackson.databind.ObjectMapper;
76
import com.pubnub.api.PubNubException;
@@ -35,15 +34,6 @@ public <T> T fromJson(String input, Class<T> clazz) throws PubNubException {
3534
}
3635
}
3736

38-
@SuppressWarnings("unchecked")
39-
public <T> T fromJson(String input, TypeReference typeReference) throws PubNubException {
40-
try {
41-
return this.objectMapper.readValue(input, typeReference);
42-
} catch (IOException e) {
43-
throw PubNubException.builder().pubnubError(PubNubErrorBuilder.PNERROBJ_PARSING_ERROR).errormsg(e.getMessage()).build();
44-
}
45-
}
46-
4737
@SuppressWarnings("unchecked")
4838
public <T> T convertValue(Object input, Class clazz) {
4939
return (T) this.objectMapper.convertValue(input, clazz);

src/main/java/com/pubnub/api/models/consumer/access_manager/PNAccessManagerKeyData.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,12 @@
22

33
import com.fasterxml.jackson.annotation.JsonProperty;
44
import lombok.Getter;
5+
import lombok.Setter;
6+
import lombok.experimental.Accessors;
57

68
@Getter
9+
@Setter
10+
@Accessors(chain = true)
711
public class PNAccessManagerKeyData {
812

913
@JsonProperty("r")

0 commit comments

Comments
 (0)