jeudi 20 août 2015

How to configure Ember-data to combine dependants with parent object?

I have following resources

  1. Question /api/v1/questions/{questionID}
  2. Category /api/v1/categories/{questionID}
  3. Comment /api/v1/comments/{questionID}
  4. Recommendations /api/v1/recommendations/{questionID}
  5. Pattern answers /api/v1/patternanswers/{questionID}

The API is made to deliver children objects by parent object ID, and I don't see that compatible with Ember-data out-of-the-box (or without hacking, only proper configuration).

Question resource gets me JSON like this:

{
    "errors": [],
    "data": {
        "created": 1439832769693,
        "updated": 1440012378723,
        "userID": 20,
        "user": {
            "password": null,
            "created": null,
            "updated": null,
            "photoID": null,
            "photo": null,
            "email": "apsikz@gmail.com",
            "emailConfirmed": false,
            "phoneNumber": null,
            "phoneNumberConfirmed": false,
            "accessFailedCount": 0,
            "id": 20,
            "userName": "qwerty"
        },
        "categories": [], // does not exist in json
        "addCategoriesIDs": [],
        "removeCategoriesIDs": [],
        "recommendations": [],
        "removeRecommendstionIDs": [],
        "patternAnswers": [],
        "removePatternAnswerIDs": [],
        "comments": [], //does not exist in json
        "hint": null,
        "version": 1,
        "commonVersion": 8,
        "id": 7,
        "questionText": "What is your name?",
        "weight": 0,
        "answerType": 0,
        "status": 0,
        "estimatedTime": null,
        "private": false
    }
}

Properties "patternAnswers", "recommendations" are in the question, but "comments" and "categories" are not. More over I don't get Question with listed properties filled with IDs of dependent objects. I wish I could get

{
    "errors": [],
    "data": {
        "comments" : [11,12,13,14],
        "categories" : [21,22,23,24],
        "recommendations": [1,2,3,4],
        "removeRecommendstionIDs": [],
        "patternAnswers": [5,6,7,8],
        "removePatternAnswerIDs": [],
        "hint": null,
        "version": 1,
        "commonVersion": 8,
        "id": 7,
        ....
    }
}

.. but they are empty :(

I would like to configure my Question Model and Question Serializer to grab all that dependent objects asynchronously.

I would like to get everything just issuing

var QuestionModel = this.store.find('question',7);
var comments = QuestionModel.get('comments');
var categories= QuestionModel.get('categories');
var recommendations= QuestionModel.get('recommendations');
var patternAnswers= QuestionModel.get('patternAnswers');

Please, could you tell my how is it feasible?

Best regards!




Aucun commentaire:

Enregistrer un commentaire