diff options
author | crupest <crupest@outlook.com> | 2022-12-03 18:21:25 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-12-20 20:32:52 +0800 |
commit | cdfb5781c8028a08051e0dbe6b7a2e39013e0f72 (patch) | |
tree | 2c5a1cc44c16a8c9a1b44146165ece08de3ccb13 /docker/crupest-api/CrupestApi/CrupestApi.Secrets/SecretsService.cs | |
parent | dcee71fabcdefb9ee7c825d4c15812cb084e3584 (diff) | |
download | crupest-cdfb5781c8028a08051e0dbe6b7a2e39013e0f72.tar.gz crupest-cdfb5781c8028a08051e0dbe6b7a2e39013e0f72.tar.bz2 crupest-cdfb5781c8028a08051e0dbe6b7a2e39013e0f72.zip |
Develop secret api. v3
Diffstat (limited to 'docker/crupest-api/CrupestApi/CrupestApi.Secrets/SecretsService.cs')
-rw-r--r-- | docker/crupest-api/CrupestApi/CrupestApi.Secrets/SecretsService.cs | 36 |
1 files changed, 32 insertions, 4 deletions
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<List<SecretInfo>> GetSecretListAsync(bool includeExpired = false, bool includeRevoked = false) + public async Task<List<SecretInfo>> GetSecretListAsync(bool includeExpired = false, bool includeRevoked = false) { - throw new NotImplementedException(); + var dbConnection = await EnsureDatabase(); + + var query = await dbConnection.QueryAsync<SecretInfo>(@" +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<List<SecretInfo>> GetSecretListByKeyAsync(string key, bool includeExpired = false, bool includeRevoked = false) + public async Task<List<SecretInfo>> GetSecretListByKeyAsync(string key, bool includeExpired = false, bool includeRevoked = false) { - throw new NotImplementedException(); + var dbConnection = await EnsureDatabase(); + + var query = await dbConnection.QueryAsync<SecretInfo>(@" +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<SecretInfo> ModifySecretAsync(string secret, SecretModifyRequest modifyRequest) |