Skip to content

Server Requests

Nataliya edited this page Feb 9, 2017 · 1 revision

1 Авторизация

1.1 Выбор сервера

Метод: initLoad();

@GET("api/v3/users/initial_load")

Возвращает: Observable

1.2 Авторизация

on click “Sign In”

Метод: requestLogin();

@POST("api/v3/users/login")

Возвращает: Observable

1.3 Восстановление пароля

Метод: forgotPassword(ForgotData forgotData)

@POST("api/v3/users/send_password_reset")

Возвращает: Observable

1.4 Выбор команды

Все команды пользователя приходят при инициализации

2 Основной чат

2.1 Левое боковое меню

  • инициализация данных для левого меню + обновление данных в левом меню

Метод: getUserByIds(ids)

@POST("api/v3/users/ids")

Возвращает: Observable<Map<String,User>>

Метод: getUserMembersByIds(teamId, ids)

@POST("api/v3/teams/{teamId}/members/ids")

Возвращает: Observable<List>

Метод: getChannelsTeamNew(teamId)

@GET("api/v3/teams/{teamId}/channels/")

Возвращает: Observable<List>

Метод: getMembersTeamNew(teamId)

@GET("api/v3/teams/{teamId}/channels/members")

Возвращает: Observable<List>

  • создание и сохранение direct dialog-а

Метод: saveOrCreateDirectChannel(mListPreferences.getmSaveData(), mTeamId, mUser.getUserId())

@POST("api/v3/preferences/save")

Возвращает: Observable

@POST("api/v3/teams/{team_id}/channels/create_direct")

Возвращает: Observable

2.1.1 Редактирование приватного (открытого) чата

  • получение extra info

Метод: getExtraInfoChannel(teamId, channelId)

@GET("api/v3/teams/{teamId}/channels/{channelId}/stats")

Возвращает: Observable

Метод: getUsersInChannel(teamId, channelId, 0, 100)

@GET("api/v3/teams/{team_id}/channels/{channel_id}/users/{offset}/{limit}")

Возвращает: Observable<Map<String, User>>

Метод: getChannel(this.mTeamId, this.mChannelId)

@GET("api/v3/teams/{teamId}/channels/{channel_id}/")

Возвращает: Observable

  • покинуть чат

Метод: leaveChannel(this.mTeamId, this.mChannelId)

@POST("api/v3/teams/{team_id}/channels/{channel_id}/leave")

Возвращает: Observable

  • сохранить или создать direct dialog

Метод: save(preferences)

@POST("api/v3/preferences/save")

Возвращает: Observable

Метод:createDirect(teamId, user)

@POST("api/v3/teams/{team_id}/channels/create_direct")

Возвращает: Observable

Метод: save(Realm.getDefaultInstance().copyFromRealm(PreferenceRepository.query())

@POST("api/v3/preferences/save")

Возвращает: Observable

  • удалить канал

Метод: deleteChannel(this.mTeamId, this.mChannelId)

@POST("api/v3/teams/{teamId}/channels/{channelId}/delete")

Возвращает: Observable

2.2 Чат

  • получение extra info

Метод: getChannelsTeamNew(teamId)

@GET("api/v3/teams/{teamId}/channels/")

Возвращает: Observable<List>

Метод: getMembersTeamNew(teamId), ChannelsWithMembers::new)

@GET("api/v3/teams/{teamId}/channels/members")

Возвращает: Observable<List>

  • подгрузка постов Метод: getPosts(teamId, channelId)

@GET("api/v3/teams/{teamId}/channels/{channelId}/posts/page/0/60")

Возвращает: Observable

  • получение статистики канала

Метод: getExtraInfoChannel(teamId,channelId)

@GET("api/v3/teams/{teamId}/channels/{channelId}/stats")

Возвращает: Observable

  • получение кана по id

Метод: getChannelById(teamId, channelId)

@GET("api/v3/teams/{team_id}/channels/{channel_id}/")

Возвращает: Observable

  • удаление поста

Метод: deletePost(teamId, channelId, postId, new Object())

@POST("api/v3/teams/{teamId}/channels/{channelId}/posts/{postId}/delete")

Возвращает: Observable

  • редактировать сообщение

Метод: editPost(teamId, channelId, postEdit)

@POST("api/v3/teams/{teamId}/channels/{channelId}/posts/update")

Возвращает: Observable

  • отправление поста на сервер

Метод: sendPost(teamId, channelId, post)

@POST("api/v3/teams/{teamId}/channels/{channelId}/posts/create")

Возвращает: Observable

  • последний раз просмотрено

Метод: updatelastViewedAt(teamId, channelId)

@POST("api/v3/teams/{teamId}/channels/{channelId}/update_last_viewed_at")

Возвращает: Observable

  • командная строка

Метод: executeCommand(teamId, command)

@POST("api/v3/teams/{teamId}/commands/execute")

Возвращает: Observable

  • загрузка сообщений до и после всех сообщений + до и после сообщения, найденного в поиске

Метод: getPostsBefore(teamId, channelId, lastSinceId, limit)

@GET("api/v3/teams/{teamId}/channels/{channelId}/posts/{lastMessageId}/before/0/{limit}")

Возвращает: Observable

Метод: getPostsAfter(teamId, channelId, firstSinceId, limit)

@GET("api/v3/teams/{teamId}/channels/{channelId}/posts/{firstMessageId}/after/0/{limit}")

Возвращает: Observable

  • автозаполнение пользователей

Метод: getAutocompleteUsers(teamId, channelId, term) @GET("api/v3/teams/{teamId}/channels/{channelId}/users/autocomplete") Возвращает: Observable

2.3 Отображение приватного и открытого каналов

Различается параметром, который передается в объекте канала

2.4 Поиск сообщений

Метод: searchForPosts(teamId, params)

@POST("api/v3/teams/{team_id}/posts/search")

Возвращает: Observable

2.5 Боковое правое меню

2.5.1 настройки профиля

  • сохранить измененные данные пользователя

Метод: updateUser(user);

@POST("api/v3/users/update")

Возвращает: Observable

  • изменить аватар

Метод: newimage(filePart)

@POST("api/v3/users/newimage")

Возвращает: Observable

  • смена почты

Метод: updateUser(user)

@POST("api/v3/users/update")

Возвращает: Observable

  • смена пароля

Метод: changePassword(password)

@POST("api/v3/users/newpassword")

Возвращает: Observable

  • настройки уведомлений (+ пушей)

Метод: updateNotify(notifyUpdate)

@POST("api/v3/users/update_notify")

Возвращает: Observable

2.5.2 приглашение нового участника

Метод: mApi.invite(teamId, listInviteObj)

@POST("api/v3/teams/{teamId}/invite_members")

Возвращает: bservable

2.5.3 выход из приложения

Метод: logout(new Object())

@POST("api/v3/users/logout")

Возвращает: Observable

3 Профиль

Просмотр профиля осуществляется из правого меню. Настройки и изменения профиля осуществляются также в правом меню.

4 Каналы (общие и закрытые)

4.1 Создание канала

Создание канала и приватной группы различаются параметром типа создаваемого чата.

Метод: createChannel(teamId, channel)

@POST("api/v3/teams/{team_id}/channels/create")

Возвращает: Observable

4.2 Информация и настройка канала

  • изменение названия канала

Метод: updateChannel(teamId, channel)

@POST("api/v3/teams/{teamId}/channels/update")

Возвращает: Observable

  • изменение заголовка канала

Метод: updateHeader(teamId, channelHeader)

@POST("api/v3/teams/{teamId}/channels/update_header")

Возвращает: Observable

  • изменения “цели” канала

Метод: updatePurpose(teamId, channelPurpose)

@POST("api/v3/teams/{teamId}/channels/update_purpose")

Возвращает: Observable

  • добавление участников в канал

mApi.getUsersNotInChannel(team_id, channel_id, offset, limit)

@GET("api/v3/teams/{team_id}/channels/{channel_id}/users/not_in_channel/{offset}/{limit}")

Observable<Map<String, User>>

|

mApi.addMember(teamId, channelId, members)

@POST("api/v3/teams/{teamId}/channels/{channelId}/add")

Observable<AddMembersPresenter.Members>

  • просмотр всех участников

    Данные берутся из бд

  • покинуть канал (удалить канал)

если участник один -> Метод: deleteChannel(teamId, channelId)

@POST("api/v3/teams/{teamId}/channels/{channelId}/delete")

Возвращает: Observable deleteChannel

иначе -> Метод: leaveChannel(teamId, channelId)

@POST("api/v3/teams/{team_id}/channels/{channel_id}/leave")

Возвращает: Observable leaveChannel

5 Файлы

  • Посмотреть информацию о файлах

Метод: getFileInfo(team_id, channel_id, postId)

@GET("api/v3/teams/{teamId}/channels/{channel_id}/posts/{postId}/get_file_infos")

Возвращает: Observable<List>

  • загрузить файл

Метод: uploadFile(MattermostPreference.getInstance().getTeamId(), filePart, mChannelIdBody, mClientIdBody)

@Multipart @POST("api/v3/teams/{team_id}/files/upload")

Возвращает: Observable

Clone this wiki locally