I have few methods on server-side:
@GET("/api/Queue/Index")
Observable<List<QueueCarItem>> getQueueItems();
@GET("/api/Queue/Details/{id}")
Observable<DetailedQueueCarItem> getQueueItemDetails(@Path("id") int id);
@POST("/api/Queue/FastAdd")
Observable<Void> fastAdd(@Body QuickAddCarRequest body);
@POST("/api/Queue/Create")
Observable<Void> create(@Body EditCarRequest body);
@PUT("/api/Queue/Edit/{id}")
Observable<Void> edit(@Path("id") int id, @Body EditCarRequest body);
There is two main kind of data:
QueueCarItemreturned by/api/Queue/IndexandDetailedQueueCarItemreturned by/api/Queue/Details/{id}
Now I use QueueCarItemsRepository to get/update/cache data:
public interface QueueCarItemsRepository extends ReadOnlyRepository<QueueCarItem> {
Observable<Void> put(QueueCarItem objects);
Observable<Void> put(TinyCarInfo objects, boolean skipRegNumberValidation);
Observable<DetailedQueueCarItem> getDetailedById(int id);
Observable<Void> changeById(int id, QueueCarItem object);
Observable<Void> remove(int id);
}
public interface ReadOnlyRepository<D> {
Observable<List<D>> forceUpdate();
Observable<List<D>> getAll();
RxBus<DataEvent> getDataEventBus();
boolean isUpdating();
}
Is it okay? I think that it is a bad implementation. Must I split this repo into Repo<QueueCarItem> and Repo<DetailedQueueCarItem>? Which of them must provide create/update/delete methods to edit queue? Any better idea? :)
Aucun commentaire:
Enregistrer un commentaire