Wiki
Clone wikidarudar-backend / Группы
[TOC] #Формат группы ##В списке
#!json { "pk_group": 649, "fk_user": 171452, "type": 1, "visibility": 1, "status": 2, "is_approved": 1, "alias": "testgroup", "title": "Test group", "count_users": 0, "count_gifts": 0, "avatar": { "uri_c100": "http:\/\/img38.static.darudar.org\/c100\/00\/00\/92\/40\/9240c72e81b676d786479be26f3e56943797db32.jpg", "uri_c300": "http:\/\/img38.static.darudar.org\/c300\/00\/00\/92\/40\/9240c72e81b676d786479be26f3e56943797db32.jpg", "uri_c600": "http:\/\/img38.static.darudar.org\/c600\/00\/00\/92\/40\/9240c72e81b676d786479be26f3e56943797db32.jpg" }, "relations:me": { "subscription": { "pk_gtu": 75003, "dtime": 1525446520 } }
#!json { "pk_group": 649, <-- Уникальный ID группы "fk_user": 171452, <-- ID пользователя - владельца (создателя) группы "type": 1, <-- Тип группы "visibility": 1, <-- Видимость группы "status": 2, <-- Статус "is_approved": 1, <-- флаг проверки "alias": "testgroup", <-- Уникальный псевдоним группы "title": "Test group", <-- Название группы "description": "This is the test group", <-- Описание группы "tags": "aaa, bbb, ccc", <-- Теги группы "score_limit": 1, <-- ... "count_users": 0, <-- Количество пользователей "count_gifts": 0, <-- Количество даров "dtime": 1525446520, <-- время создания группы "dtime_updated": 1525447785, <-- время последнего обновления данных группы "avatar": { <-- аватар группы "uri_c100": "http:\/\/img38.static.darudar.org\/c100\/00\/00\/92\/40\/9240c72e81b676d786479be26f3e56943797db32.jpg", "uri_c300": "http:\/\/img38.static.darudar.org\/c300\/00\/00\/92\/40\/9240c72e81b676d786479be26f3e56943797db32.jpg", "uri_c600": "http:\/\/img38.static.darudar.org\/c600\/00\/00\/92\/40\/9240c72e81b676d786479be26f3e56943797db32.jpg" }, "relations:me": { <-- подписка текущего пользователя на группу "subscription": { "pk_gtu": 75003, "dtime": 1525446520 } } }
Поле type
может принимать следующие значения:
- 1 - публичная группа (вступают как хотят),
- 2 - открытая группа (вступают только с подтверждения или приглашения участников)
- 3 - закрытая группа (вступают только с подтверждения создателя)
Поле visibility
может принимать следующие значения:
- 1 - публичная группа (видна всем)
- 2 - скрытая-приватная (видят только участники)
Поле status
может принимать следующие значения:
- 1 - ожидающая,
- 2 - подтвержденная (разрешена),
- 3 - "замороженная" (отклонена),
- 4 - забаненая,
- 5 - удаленная,
#Ресурсы группы
Добавление группы
URI: POST ~/groups
Создание группы.
Параметр | Тип | Значение |
---|---|---|
title | string | Название группы. Обязательное поле. |
avatar | image | Файл-изображение |
description | text | Описание группы |
tags | string | Ключевые слова. Разделитель запятая "," |
alias | string | Псевдоним. Обязательное поле. |
type | int | Тип группы |
visibility | int | Видимость группы |
score_limit | int | ??? |
allow_add_gifts | int | Кто может добавлять дар в группу |
Поле type
может принимать следующие значения:
- 1 - публичная группа (вступают как хотят),
- 2 - открытая группа (вступают только с подтверждения или приглашения участников)
- 3 - закрытая группа (вступают только с подтверждения создателя)
Поле visibility
может принимать следующие значения:
- 1 - публичная группа (видна всем)
- 2 - скрытая-приватная (видят только участники)
Поле allow_add_gifts
может принимать следующие значения:
- 0 - дары может добавлять любой участник группы (по умолчанию)
- 1 - дары может добавлять только владелец группы
Пример запроса:
POST /groups HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json authorization: <token> { "title":"Test group", "alias":"testgroup", "tags":"AAA,BBB,CCC", "description":"This is the test group", "type": 2, "visibility": 0, "score_limit": 100, "allow_add_gifts": 1 }
Пример ответа:
#!json { "saved": "ok", "group": { "pk_group": 649 } }
Редактирование группы
URI: PUT ~/groups/<groupAlias>
Редактирование группы с указателем <groupAlias>
. Параметры и ответы все те же, что и в методе создания (см. выше).
Подписка на группу
URI: POST ~/groups/<groupAlias>/subscribe
Пример ответа:
#!json { "subscribe": "ok" }
Подписка текущего пользователя на группу с указателем <groupAlias>
. В случае, если пользователь уже подписан на эту группу, будет выведена ошибка.
Отписка от группы
URI: DELETE ~/groups/<groupAlias>/subscribe
Пример ответа:
#!json { "unsubscribe": "ok" }
Удаление подписки текущего пользователя на группу с указателем <groupAlias>
. В случае, если пользователь является владельцем-создателем группы,
или подписка не обнаружена, будет выведена ошибка.
Профиль группы
URI: GET ~/groups/<groupAlias>
Получает данные о группе с указанным уникальным псевдонимом группы <groupAlias>
Пример запроса:
GET /groups/testalias HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json accept: application/json authorization: <токен>
В ответе в свойстве group
приходит JSON-объект группы.
Пример ответа:
#!json { "group": {...} <-- Группа в полном формате (см. в начало документа) }
Поиск групп
URI: GET ~/search/groups
Поиск публичных групп
Параметр | Тип | Описание |
---|---|---|
q (обязательный) | string | Полнотекстовый запрос |
Пример запроса:
GET /search/groups/%D1%88%D1%82%D0%B0%D0%BD%D1%8B%20%D0%BD%D0%B0%20%D0%BB%D1%8F%D0%BC%D0%BA%D0%B0%D1%85 HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json authorization: <token> accept: application/json
Пример ответа:
#!json { "groups": [ {...}, <-- Группа (см. вывод группы на списке) {...} ], "paginator": {...}, <-- см. постраничный вывод "search": { <-- мета по поиску "time": 0.011, <-- время затраченное на поиск "total_found": 2 <-- общее кол-во похожих объектов (групп etc) } }
Список системных групп
URI: GET ~/groups
Выводит список системных групп
Пример запроса:
GET /groups HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json authorization: <token> accept: application/json
Пример ответа:
#!json { "groups": [ {...}, <-- Группа (см. вывод группы на списке) {...} ] }
Дары группы
URI: GET ~/groups/{alias}/gifts
Выводит список даров группы
Пример запроса:
GET /groups/{alias}/gifts HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json authorization: <token> accept: application/json
Пример ответа:
#!json { "gifts": [ {...}, <-- Дар (см. вывод дара на списке) {...} ], "paginator": {...}, <-- см. постраничный вывод }
Добавление дара к группе
URI: POST ~/groups/{alias}/gifts
Добавляет к группе дар с указанным идентификатором
Параметр | Тип | Описание |
---|---|---|
gift (обязательный) | int | Идентификатор дара |
Пример запроса:
POST /groups/{alias}/gifts HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json authorization: <token> accept: application/json {"gift":12345}
Пример ответа:
#!json { "added": "ok" }
Благодарности группы
URI: /groups/<alias>/thanks
Поток благодарностей группы по её алиасу.
Пример запроса:
GET /groups/daritorg1/thanks HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json authorization: <token> accept: application/json
В ответе будет стандартный список благодарностей thanks
по дате их публикации.
Пример ответа:
#!json { "thanks": [ {...}, <-- Благодарность (см. вывод благодарности в списке) {...}, {...} ], "paginator": {...} <-- см. постраничная навигация }
Updated