package net.dev123.mblog.api;
import java.util.List;
import net.dev123.commons.Paging;
import net.dev123.exception.LibException;
import net.dev123.mblog.entity.User;
import net.dev123.mblog.entity.Group;
public interface GroupSubscribersMethods {
/**
* 返回指定分组的订阅者 <br>
*
* @param groupId
* 分组Id
* @param paging
* 分页控制参数,不能为空
* @return 指定分组的订阅者
* @throws LibException
*/
List<User> getGroupSubscribers(String groupId, Paging<User> paging)
throws LibException;
/**
* 订阅指定分组 <br>
*
* @param groupId
* 分组Id.
* @return 更新后的分组对象
* @throws LibException
*/
Group createGroupSubscriber(String groupId) throws LibException;
/**
* 取消订阅指定分组<br>
*
* @param groupId
* 分组Id
* @return 更新后的分组对象
* @throws LibException
*/
Group destroyGroupSubscriber(String groupId) throws LibException;
/**
* 判断用户是否订阅指定的分组<br>
*
* @param groupId
* 分组Id
* @param userId
* 用户唯一标识
* @return 用户对象
* @throws LibException
*/
User showGroupSubscriber(String groupId, String userId)
throws LibException;
/**
* 获取指定用户关注的分组列表<br>
*
* @param groupOwnerUserId
* 用户唯一识别名,不能为空
* @param paging
* 分组控制参数,不能为空
* @return 用户关注的分组列表
* @throws LibException
*/
List<Group> getGroupSubscriptions(String groupOwnerUserId,
Paging<Group> paging) throws LibException;
}