From 92b93d875c3f61312d2221e3b4d15f5a2e8d7a11 Mon Sep 17 00:00:00 2001 From: crupest Date: Sat, 3 Dec 2022 18:21:25 +0800 Subject: Develop secret api. v3 --- .../CrupestApi.Secrets/SecretsService.cs | 36 +++++++++++++++++++--- 1 file changed, 32 insertions(+), 4 deletions(-) (limited to 'docker/crupest-api/CrupestApi/CrupestApi.Secrets/SecretsService.cs') diff --git a/docker/crupest-api/CrupestApi/CrupestApi.Secrets/SecretsService.cs b/docker/crupest-api/CrupestApi/CrupestApi.Secrets/SecretsService.cs index 9281cee..feac08a 100644 --- a/docker/crupest-api/CrupestApi/CrupestApi.Secrets/SecretsService.cs +++ b/docker/crupest-api/CrupestApi/CrupestApi.Secrets/SecretsService.cs @@ -108,14 +108,42 @@ INSERT INTO secrets (Key, Secret, Description, ExpireTime, Revoked, CreateTime) return new SecretInfo(key, secret, description, expireTime, false, now); } - public Task> GetSecretListAsync(bool includeExpired = false, bool includeRevoked = false) + public async Task> GetSecretListAsync(bool includeExpired = false, bool includeRevoked = false) { - throw new NotImplementedException(); + var dbConnection = await EnsureDatabase(); + + var query = await dbConnection.QueryAsync(@" +SELECT Key, Secret, Description, ExpireTime, Revoked, CreateTime FROM secrets +WHERE @IncludeExpired OR ExpireTime IS NULL OR ExpireTime > @Now AND + @IncludeRevoked OR Revoked = 0; + ", new + { + IncludeExpired = includeExpired, + IncludeRevoked = includeRevoked, + Now = DateTime.Now.ToString("O"), + }); + + return query.ToList(); } - public Task> GetSecretListByKeyAsync(string key, bool includeExpired = false, bool includeRevoked = false) + public async Task> GetSecretListByKeyAsync(string key, bool includeExpired = false, bool includeRevoked = false) { - throw new NotImplementedException(); + var dbConnection = await EnsureDatabase(); + + var query = await dbConnection.QueryAsync(@" +SELECT Key, Secret, Description, ExpireTime, Revoked, CreateTime FROM secrets +WHERE Key = @Key AND +(@IncludeExpired OR ExpireTime IS NULL OR ExpireTime > @Now) AND +(@IncludeRevoked OR Revoked = 0); + ", new + { + Key = key, + IncludeExpired = includeExpired, + IncludeRevoked = includeRevoked, + Now = DateTime.Now.ToString("O"), + }); + + return query.ToList(); } public Task ModifySecretAsync(string secret, SecretModifyRequest modifyRequest) -- cgit v1.2.3