Неверный сетевой запрос с модернизацией - PullRequest
1 голос
/ 17 января 2020

Извините, я знаю, что вопрос не имеет смысла, но я просто не могу понять, как задать вопрос. Я использую класс модели, который расширяет RealmObject, сериализация Gson. Когда я делаю запрос, я отправляю это json:

{"clothing_item_ids": [],
  "date": "2020-01-17 02:19:41 -0500",
  "location": {
   "id": 0
  },
"name": "Good event",
 "tag_ids": []
}

Но я хочу отправить его без объекта местоположения, когда местоположение равно нулю. Я не могу понять, возникла ли проблема из-за того, как я реализовал Царство. Пожалуйста, помогите и извините за мое невежество по этому вопросу.

@Parcel(implementations = {LocationRealmProxy.class}, value = Parcel.Serialization.FIELD, analyze = {Location.class})
public class Location extends RealmObject {

@PrimaryKey
@SerializedName("id")
public int id;
@SerializedName("city")
public String city;
@SerializedName("postal_code")
public String postalCode;
@SerializedName("state")
public String state;
@SerializedName("street")
public String street;

public Location() {
}

public Location(Location location) {
    this.id = location.id;
    this.city = location.city;
    this.postalCode = location.postalCode;
    this.state = location.state;
    this.street = location.street;
}
}

Вот класс события:

@Parcel(implementations = {EventRealmProxy.class}, value = Parcel.Serialization.FIELD, analyze = {Event.class})
public class Event extends RealmObject implements Serializable {

public static final String DATE_FIELD = "timestamp";
@PrimaryKey
@SerializedName("id")
public String id;
@SerializedName("date")
public String date;
@Nullable
public Date timestamp;
@SerializedName("image")
public String image;
@SerializedName("name")
public String name;

@Nullable
@SerializedName("event_clothing_items")
@ParcelPropertyConverter(RealmListParcelConverter.class)
public RealmList<ClothingItem> eventClothingItems;

@Nullable
@SerializedName("location")
public Location location;

@Nullable
@SerializedName("tags")
@ParcelPropertyConverter(RealmListParcelConverter.class)
public RealmList<Tag> tags;

public Event() {
    timestamp = new Date();
    eventClothingItems = new RealmList<>();
    location = new Location();
    tags = new RealmList<>();
}

public Event(Event event) {
    eventClothingItems = new RealmList<>();
    location = new Location();
    tags = new RealmList<>();
    this.id = event.id;
    this.date = event.date;
    this.image = event.image;
    this.name = event.name;
    this.tags.addAll(event.tags);
    this.eventClothingItems.addAll(event.eventClothingItems);
    this.location = new Location(event.location);

}

@Override
public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;
    Event event = (Event) o;
    return id.equals(event.id);
}

@Override
public int hashCode() {
    return Objects.hash(id);
}
}

Это модель запроса

public class CreateEventRequestModel  {
public String name;
public String date;
public Location location;
@SerializedName("clothing_item_ids")
public List<Integer> clothingItemIds;
@SerializedName("tag_ids")
public List<Integer> tagIds;

private CreateEventRequestModel() {
}

public CreateEventRequestModel(Event event) {
    if (event == null) {
        return;
    }
    this.name = event.name;
    this.date = event.date;
    this.location = event.location;
    this.tagIds = new ArrayList<>();
    this.clothingItemIds = new ArrayList<>();
    if (event.tags != null) {
        for (Tag tag : event.tags) {
            this.tagIds.add(tag.id);
        }
    }

    if (event.eventClothingItems != null) {
        for (ClothingItem clothingItem : event.eventClothingItems) {
            this.clothingItemIds.add(Integer.valueOf(clothingItem.id));
        }
    }
}
}

Помогите мне, пожалуйста, выяснить, в чем здесь проблема, почему местоположение не может иметь все его поля как нулевые, или как я могу проверить, когда местоположение допустимо (поле не должно быть пустым, или все поля должны быть нулевыми или удалить объект местоположения).

...