public async Task <ActionResult <ExportWorker> > Initialize( [FromQuery] string filter = "", [FromQuery] string[] exclude = default, [FromQuery] bool includePublic = false, [FromQuery] bool includeExplicit = false) { if (workerHandler.HasWorker(authClaims.UserUid)) { return(BadRequest(new ErrorModel(400, "already initialized"))); } var count = await database.Count <ImageModel>(); if (authClaims.User?.TagBlacklist != null) { exclude = exclude.Concat(authClaims.User.TagBlacklist).ToArray(); } var res = await database.SearchImages( 0, (int)count, filter, exclude, authClaims.UserUid, includePublic, includeExplicit); var worker = workerHandler.InitializeWorker(authClaims.UserUid, res); return(Created("worker", worker)); }
public async Task <ActionResult <UserDetailsModel> > GetUser([FromRoute] string ident) { UserModel user; if (ident.IsNullOrEmpty()) { return(NotFound()); } if (Guid.TryParse(ident, out var uid)) { user = await database.Get <UserModel>(uid); } else { user = await database.GetUserByUserName(ident); } if (user == null) { return(NotFound()); } if (!(authClaims.User?.IsAdmin).Equals(true)) { user.EmailAddress = null; user.EmailConfirmStatus = EmailConfirmStatus.UNSET; } var detailedUser = new UserDetailsModel(user); detailedUser.ImagesCount = await database.Count <ImageModel>("ownerUid", user.Uid.ToString()); return(Ok(detailedUser)); }
public async Task <InstanceStatusModel> Status() { var usersCount = await database.Count <UserModel>(); var imageCount = await database.Count <ImageModel>(); var version = GetType().Assembly.GetName().Version.ToString(); return(new InstanceStatusModel() { Initialized = usersCount > 0L, UsersCount = usersCount, ImagesCount = imageCount, Version = version, }); }