kamikat / moshi-jsonapi

JSON API v1.0 Specification in Moshi.
MIT License
156 stars 34 forks source link

How can I use HasMany? #39

Closed mirmousaviii closed 7 years ago

mirmousaviii commented 7 years ago

I need use multi relation for example:

CategoriesModel categoriesModel = new CategoriesModel();
categoriesModel.setId("2");
categoriesModel.setId("4");
taskerModel.taskerCategory =  HasMany.create(taskerModel, categoriesModel);
kamikat commented 7 years ago

Here's a simple example for moshi-jsonapi 2.x:

CategoriesModel categoriesModel2 = new CategoriesModel();
categoriesModel2.setId("2");
CategoriesModel categoriesModel4 = new CategoriesModel();
categoriesModel4.setId("4");
taskerModel.taskerCategory =  HasMany.create(taskerModel, CategoriesModel.class, new CategoriesModel[] { categoriesModel2, categoriesModel4 });
// or omit `new CategoriesModel[] { ... }`
taskerModel.taskerCategory =  HasMany.create(taskerModel, CategoriesModel.class, categoriesModel2, categoriesModel4);
// and returns a `HasMany<Resource>` if type parameter is omitted.
taskerModel.taskerCategory =  HasMany.create(taskerModel, categoriesModel2, categoriesModel4); // cannot pass type check if `taskerModel.taskerCategory` has a type of `HasMany<CategoriesModel>`
// or create a HasMany without `Resource` context, which means it cannot be resolved by resources
taskerModel.taskerCategory =  HasMany.create(null, categoriesModel2, categoriesModel4);
mirmousaviii commented 7 years ago

Thank you for good solutions.

But I think this part is not correct: taskerModel.taskerCategory = HasMany.create(taskerModel, CategoriesModel.class, new CategoriesModel[] { categoriesModel2, categoriesModel4 });

I use this code: taskerModel.taskerCategory = HasMany.create(taskerModel, new CategoriesModel[] { categoriesModel2, categoriesModel4 });