guillaumeperes / strawpoll_backoffice

Laravel powered backoffice for the strawpoll application
GNU General Public License v3.0
1 stars 1 forks source link

Données des sondages #15

Closed guillaumeperes closed 7 years ago

guillaumeperes commented 7 years ago

Lorsqu'on récupère les données d'un sondage, ce n'est pas très logique de mettre le tableau contenant la liste des réponses au même endroit que la question. Il faudrait donc séparer ces deux informations.

Lorsqu'on teste cette url : https://api.strawpoll.guillaumeperes.fr/api/poll/64 on obtient un résultat de ce genre :

{
    "id": 64,
    "has_captcha": false,
    "multiple_answers": false,
    "is_draft": false,
    "created": 1495289794,
    "updated": 1495289794,
    "published": 1495289794,
    "duplication_check": {
        "id": 2,
        "name": "ip",
        "label": "Contrôle par adresse IP"
    },
    "question": {
        "id": 64,
        "question": "dfg",
        "answers": [
            {
                "id": 135,
                "answer": "dfg"
            },
            {
                "id": 136,
                "answer": "dfg"
            }
        ]
    },
    "comments": []
}

La liste des réponses se trouve dans la question. Il faudrait donc modifier le code pour que la liste des résponses soit un item à part entière du tableau contenant les données du sondage. La réponse retournée par la route précedente devra ressembler à ça :

{
    "id": 64,
    "has_captcha": false,
    "multiple_answers": false,
    "is_draft": false,
    "created": 1495289794,
    "updated": 1495289794,
    "published": 1495289794,
    "duplication_check": {
        "id": 2,
        "name": "ip",
        "label": "Contrôle par adresse IP"
    },
    "question": {
        "id": 64,
        "question": "dfg"
    },
    "answers": [
            {
                "id": 135,
                "answer": "dfg"
            },
            {
                "id": 136,
                "answer": "dfg"
            }
        ],
    "comments": []
}

Le code qui gère ça part d'ici : https://github.com/guillaumeperes/strawpoll_backoffice/blob/master/app/Http/Controllers/PollsController.php#L118

guillaumeperes commented 7 years ago

Never mind, on va faire en sorte que l'api soit scalable, donc qu'elle soit en mesure de prendre en charge une ou plusieurs questions par sondage.

Il faudra donc modifier cette partie du code : https://github.com/guillaumeperes/strawpoll_backoffice/blob/master/app/Poll.php#L53 pour aller chercher toutes les questions d'un sondage avec leurs réponses associées et les mettre dans $out['questions']. On aura aussi certainement besoin d'une nouvelle colonne position dans la table des questions pour sauvegarder leur ordre.

guillaumeperes commented 7 years ago

Fixé dans ce commit : https://github.com/guillaumeperes/strawpoll_backoffice/commit/9e84f8139553b4ad8b9b6637ae1207715a9243d5