Skip to content

Commit

Permalink
Merge pull request #37 from LiveTex/fix_employee
Browse files Browse the repository at this point in the history
Added temporary solution for Employee structure
  • Loading branch information
maxxx authored Jun 8, 2024
2 parents a028bc8 + 9bc4c77 commit 8c884ee
Showing 1 changed file with 23 additions and 31 deletions.
54 changes: 23 additions & 31 deletions sdk/src/main/java/ru/livetex/sdk/logic/EntityMapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ public class EntityMapper {
.registerTypeAdapter(BaseEntity.class, new LivetexTypeModelDeserializer())
.registerTypeAdapter(GenericMessage.class, new LivetexGenericMessageDeserializer())
.registerTypeAdapter(Creator.class, new LivetexCreatorDeserializer())
.registerTypeAdapter(DialogState.class, new LivetexDialogStateDeserializer())
.create();

public BaseEntity toEntity(String jsonStr) {
Expand All @@ -59,12 +60,6 @@ public BaseEntity deserialize(final JsonElement json, final Type typeOfT, final
case DialogState.TYPE: {
return gson.fromJson(json, DialogState.class);
}
// case TextMessage.TYPE: {
// return parseTextMessage(json);
// }
// case FileMessage.TYPE: {
// return parseFileMessage(json);
// }
case TypingEvent.TYPE: {
return gson.fromJson(json, TypingEvent.class);
}
Expand All @@ -85,31 +80,6 @@ public BaseEntity deserialize(final JsonElement json, final Type typeOfT, final
}
case HistoryEntity.TYPE: {
HistoryEntity history = gson.fromJson(json, HistoryEntity.class);

// JsonArray messages = jsonObject.getAsJsonArray("messages");
//
// for (int i = 0; i < messages.size(); i++) {
// JsonElement message = messages.get(i);
//
// String msgType = message.getAsJsonObject().get("type").getAsString();
// GenericMessage msg = null;
//
// switch (msgType) {
// case TextMessage.TYPE: {
// msg = parseTextMessage(message);
// break;
// }
// case FileMessage.TYPE: {
// msg = parseFileMessage(message);
// break;
// }
// }
//
// if (msg != null) {
// history.messages.add(msg);
// }
// }

return history;
}
case EmployeeTypingEvent.TYPE: {
Expand Down Expand Up @@ -162,6 +132,10 @@ public Creator deserialize(JsonElement json, Type typeOfT, JsonDeserializationCo

switch (creatorType) {
case Employee.TYPE: {
if (obj.has("employee")) {
// temporary solution
return gson.fromJson(obj.get("employee"), Employee.class);
}
return gson.fromJson(obj, Employee.class);
}
case Visitor.TYPE: {
Expand All @@ -177,4 +151,22 @@ public Creator deserialize(JsonElement json, Type typeOfT, JsonDeserializationCo
return null;
}
}

static class LivetexDialogStateDeserializer implements JsonDeserializer<DialogState> {
@Override
public DialogState deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
JsonObject obj = json.getAsJsonObject();
Gson tempGson = new GsonBuilder().create();
DialogState result = tempGson.fromJson(json, DialogState.class);


JsonObject employee = obj.get("employee").getAsJsonObject();
if (employee.has("employee")) {
// temporary solution
result.employee = gson.fromJson(employee.get("employee"), Employee.class);
}

return result;
}
}
}

0 comments on commit 8c884ee

Please sign in to comment.