using System;
using System.Threading.Tasks;
using Timeline.Helpers.Cache;
using Timeline.Models;
using Timeline.Services.Imaging;
namespace Timeline.Services.User.Avatar
{
public interface IUserAvatarService
{
///
/// Get avatar digest of a user.
///
/// User id.
/// The avatar digest.
/// Thrown when user does not exist.
Task GetAvatarDigestAsync(long userId);
///
/// Get avatar of a user. If the user has no avatar set, a default one is returned.
///
/// User id.
/// The avatar.
/// Thrown when user does not exist.
Task GetAvatarAsync(long userId);
///
/// Set avatar for a user.
///
/// User id.
/// The new avatar data.
/// The digest of the avatar.
/// Thrown if is null.
/// Thrown when user does not exist.
/// Thrown if avatar is of bad format.
Task SetAvatarAsync(long userId, ByteData avatar);
///
/// Remove avatar of a user.
///
/// User id.
/// Thrown when user does not exist.
Task DeleteAvatarAsync(long userId);
}
}