package com.code44.finance.api.requests;
import com.code44.finance.api.GcmRegistration;
import com.code44.finance.backend.endpoint.categories.Categories;
import com.code44.finance.backend.endpoint.categories.model.CategoriesBody;
import com.code44.finance.backend.endpoint.categories.model.CategoryEntity;
import com.code44.finance.common.utils.Preconditions;
import com.code44.finance.data.model.Category;
import java.util.ArrayList;
import java.util.List;
public class PostCategoriesRequest extends PostRequest<CategoriesBody> {
private final Categories categoriesService;
private final List<Category> categories;
public PostCategoriesRequest(GcmRegistration gcmRegistration, Categories categoriesService, List<Category> categories) {
super(null, gcmRegistration);
Preconditions.notNull(categoriesService, "Categories service cannot be null.");
Preconditions.notNull(categories, "Categories list cannot be null.");
this.categoriesService = categoriesService;
this.categories = categories;
}
@Override protected CategoriesBody createBody() {
return new CategoriesBody();
}
@Override protected void onAddPostData(CategoriesBody body) {
final List<CategoryEntity> categoryEntities = new ArrayList<>();
for (Category category : categories) {
// categoryEntities.add(category.asEntity());
}
body.setCategories(categoryEntities);
}
@Override protected boolean isPostDataEmpty(CategoriesBody body) {
return body.getCategories().isEmpty();
}
@Override protected void performRequest(CategoriesBody body) throws Exception {
categoriesService.save(body);
}
}