Модуль опроса. API: відмінності між версіями

Матеріал з NoDeny
Перейти до навігації Перейти до пошуку
 
(Не показано 19 проміжних версій цього користувача)
Рядок 5: Рядок 5:
</source>
</source>


Если в ответе ключ err_cod - ошибка. Иначе в polls - список опросов
Если в ответе ключ err_cod - ошибка. Иначе в polls - список опросов.


Данные опроса:
Данные опроса:
Рядок 16: Рядок 16:
start            : дата старта опроса в виде timestamp
start            : дата старта опроса в виде timestamp
end              : дата завершения опроса в виде timestamp
end              : дата завершения опроса в виде timestamp
stats_voted_users : количество проголосовавших
stats_voted_users : количество проголосовавших пользователей
can_see_results  : 1 - пользователь может видеть результаты голосования, 0 - нет
can_see_results  : 1 - пользователь может видеть результаты голосования, 0 - нет
can_see_results_before_vote : 1 - может видеть результаты до голосования, 0 - только после
can_see_results_before_vote : 1 - может видеть результаты до голосования, 0 - только после
can_revote        : 1 - может переголосовать, 0 - нет
can_revote        : 1 - может переголосовать, 0 - нет
can_multi_choice  : 1 - можно голосовать за несколько пунктов, 0 - нет
can_multi_choice  : 1 - можно голосовать за несколько пунктов, 0 - нет
can_anonymous    : 1 - можно голосовать анонимно, 0 - нет
voted            : 1 - голосовал, 0 - нет
voted            : 1 - голосовал, 0 - нет
can_anonymous    : 1 - можно голосовать анонимно, 0 - нет
vote_time        : дата голосования в виде строки, '' если не голосовал
vote_time        : дата голосования в виде строки, '' если не голосовал
viewed_time      : дата первого просмотра опроса в виде строки, '' если не просматривал еще
viewed_time      : дата первого просмотра опроса в виде строки, '' если не просматривал еще
Рядок 30: Рядок 30:
* Если не разрешено просматривать результаты опроса или пользователь не голосовал, то stats_voted_users = -1.
* Если не разрешено просматривать результаты опроса или пользователь не голосовал, то stats_voted_users = -1.
* ignore - флаг, который указывает на то, что ранее пользователь давал команду не показывать этот опрос. Показывать или нет - на усмотрение.
* ignore - флаг, который указывает на то, что ранее пользователь давал команду не показывать этот опрос. Показывать или нет - на усмотрение.
* viewed_time установлен, если пользователь вызывал cmd=choices, т.е. видел названия пунктов меню и возможно статистику (если разрешен ее показ).
* vote_time - дата последнего голосования, если голосовал несколько раз.


==Получить данные опроса==
==Получить данные опроса==
В параметре poll_id - id опроса в списке polls
<source lang="bash">
<source lang="bash">
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_poll&cmd=choices&poll_id=1' \
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_poll&cmd=choices&poll_id=1' \
Рядок 37: Рядок 42:
</source>
</source>


"choices" : [
Если в ответе ключ err_cod - ошибка. Иначе в choices - пункты опроса:
      {
<pre>
         "poll_id" : "1",
id         : id пункта опроса
        "title" : "Грибочки",
title       : пункт опроса
        "is_active" : "1",
description : описание
        "id" : "2",
voted      : 1 - проголосовал за этот пункт
        "voted" : null,
votes      : количество пользователей проголосовавших за этот пункт
        "image" : "",
</pre>
        "order" : "2",
 
        "description" : "ну такое себе блюдо",
* Если не разрешено просматривать результаты опроса или пользователь не голосовал, то votes = -1.
        "votes" : "-1"
 
      }
==Голосование==
 
В параметре:
* poll_id - id опроса в списке polls
* choice - id пункта или список id, разделенных запятыми
* as_anon - голосовать анонимно (1 - да, 0 - нет)
 
<source lang="bash">
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_poll&cmd=vote&poll_id=1&choice=1,2' \
    --cookie 'noses=zpP6gc2lJjeYKzskLBK7zA'
</source>


==Игнорировать опрос==
==Игнорировать опрос==
Рядок 61: Рядок 76:
     --cookie 'noses=zpP6gc2lJjeYKzskLBK7zA'
     --cookie 'noses=zpP6gc2lJjeYKzskLBK7zA'
</source>
</source>
==Коды ошибок==
<pre>
temporary        : ошибка на сервере API
poll_id_required : в параметре poll_id не задан id опроса
poll_not_found  : опрос не найден (неверный id/опрос в статусе "неактивный"/
                                время опроса еще не наступило или уже закончилось)
choice_required  : в параметре choices не указан ни один пункт опроса
only_one_choice  : опрос позволяет выбирать только один пункт
cannot_revote    : пользователь уже голосовал и в данном опросе не разрешено менять выбор
wrong_choice_id  : в параметре choices как минимум один id не указывает на существующий активный пункт меню
anonymous_deny  : опрос не позволяет голосовать анонимно
</pre>

Поточна версія на 08:55, 31 липня 2021

Список опросов

curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_poll&cmd=list' \
    --cookie 'noses=zpP6gc2lJjeYKzskLBK7zA'

Если в ответе ключ err_cod - ошибка. Иначе в polls - список опросов.

Данные опроса:

id                : id опроса, целое число больше нуля
title             : заголовок
description       : описание
start_date        : дата старта опроса в виде строки
end_date          : дата завершения опроса в виде строки
start             : дата старта опроса в виде timestamp
end               : дата завершения опроса в виде timestamp
stats_voted_users : количество проголосовавших пользователей
can_see_results   : 1 - пользователь может видеть результаты голосования, 0 - нет
can_see_results_before_vote : 1 - может видеть результаты до голосования, 0 - только после
can_revote        : 1 - может переголосовать, 0 - нет
can_multi_choice  : 1 - можно голосовать за несколько пунктов, 0 - нет
can_anonymous     : 1 - можно голосовать анонимно, 0 - нет
voted             : 1 - голосовал, 0 - нет
vote_time         : дата голосования в виде строки, '' если не голосовал
viewed_time       : дата первого просмотра опроса в виде строки, '' если не просматривал еще
ignore            : пользователь просил не показываеть ему этот опрос
  • Если не разрешено просматривать результаты опроса или пользователь не голосовал, то stats_voted_users = -1.
  • ignore - флаг, который указывает на то, что ранее пользователь давал команду не показывать этот опрос. Показывать или нет - на усмотрение.
  • viewed_time установлен, если пользователь вызывал cmd=choices, т.е. видел названия пунктов меню и возможно статистику (если разрешен ее показ).
  • vote_time - дата последнего голосования, если голосовал несколько раз.

Получить данные опроса

В параметре poll_id - id опроса в списке polls

curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_poll&cmd=choices&poll_id=1' \
    --cookie 'noses=zpP6gc2lJjeYKzskLBK7zA'

Если в ответе ключ err_cod - ошибка. Иначе в choices - пункты опроса:

id          : id пункта опроса
title       : пункт опроса
description : описание
voted       : 1 - проголосовал за этот пункт
votes       : количество пользователей проголосовавших за этот пункт
  • Если не разрешено просматривать результаты опроса или пользователь не голосовал, то votes = -1.

Голосование

В параметре:

  • poll_id - id опроса в списке polls
  • choice - id пункта или список id, разделенных запятыми
  • as_anon - голосовать анонимно (1 - да, 0 - нет)
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_poll&cmd=vote&poll_id=1&choice=1,2' \
    --cookie 'noses=zpP6gc2lJjeYKzskLBK7zA'

Игнорировать опрос

curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_poll&cmd=ignore&poll_id=1' \
    --cookie 'noses=zpP6gc2lJjeYKzskLBK7zA'

Не игнорировать опрос

curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_poll&cmd=dont_ignore&poll_id=1' \
    --cookie 'noses=zpP6gc2lJjeYKzskLBK7zA'

Коды ошибок

temporary        : ошибка на сервере API
poll_id_required : в параметре poll_id не задан id опроса
poll_not_found   : опрос не найден (неверный id/опрос в статусе "неактивный"/
                                 время опроса еще не наступило или уже закончилось)
choice_required  : в параметре choices не указан ни один пункт опроса
only_one_choice  : опрос позволяет выбирать только один пункт
cannot_revote    : пользователь уже голосовал и в данном опросе не разрешено менять выбор
wrong_choice_id  : в параметре choices как минимум один id не указывает на существующий активный пункт меню
anonymous_deny   : опрос не позволяет голосовать анонимно