예제 #1
0
        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));
        }
예제 #2
0
        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));
        }
예제 #3
0
        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,
            });
        }