Skip to content

Commit b75a2ff

Browse files
committed
6.1.17
- [BUG FIX] bug fix reading distributed config from cache - [ENHANCEMENT] remove distributed config flag, rely on version being null
1 parent a4f2425 commit b75a2ff

File tree

10 files changed

+150
-190
lines changed

10 files changed

+150
-190
lines changed

db/configuration/stored procedures/Api_Settings_Read.sql

Lines changed: 72 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,4 @@
1-
/****** Object: StoredProcedure [dbo].[Api_Settings_Read] Script Date: 02/05/2023 14:31:01 ******/
2-
SET ANSI_NULLS ON
3-
GO
4-
5-
SET QUOTED_IDENTIFIER ON
6-
GO
7-
8-
/********************************************************************************
1+
/********************************************************************************
92
Author Name : Stephen Lane
103
Date written : 04/11/2022
114
Version : 1
@@ -20,6 +13,8 @@ REVISION HISTORY
2013
CHANGE NO. DATE CHANGED BY REASON
2114
01 22/06/2023 Stephen Lane dont return sensitive values unless requested
2215
02 13/09/2023 Stephen Lane changing mask to null to work with always encrypted
16+
03 24/11/2023 Stephen Lane app_settings_version being null means get max pk version
17+
04 07/11/2023 Stephen Lane always return two select statements
2318
2419
PEER REVIEW HISTORY
2520
-------------------
@@ -28,10 +23,7 @@ REVIEW NO. DATE REVIEWED BY COMMENTS
2823
exec api_settings_read 1
2924
3025
*************************************************************************************/
31-
CREATE
32-
OR
33-
34-
ALTER PROCEDURE [dbo].[Api_Settings_Read] @app_settings_version DECIMAL(10, 2),
26+
CREATE or alter PROCEDURE [dbo].[Api_Settings_Read] @app_settings_version DECIMAL(10, 2),
3527
@read_sensitive_value BIT=1
3628
AS
3729
BEGIN
@@ -63,7 +55,7 @@ BEGIN
6355
WHERE ASV_VERSION = @app_settings_version
6456
AND ASV_CST_ID = @config_setting_type_id;
6557

66-
IF @version_id IS NULL
58+
IF @version_id IS NULL AND @app_settings_version is not null
6759
BEGIN
6860
SELECT @errorMessage = CONCAT (
6961
'Api setting version not found for version : '
@@ -79,24 +71,74 @@ BEGIN
7971
RETURN 0
8072
END
8173

82-
IF @read_sensitive_value = 1
83-
BEGIN
8474

85-
SELECT API_KEY
86-
,API_VALUE
87-
,API_DESCRIPTION
88-
,API_SENSITIVE_VALUE
89-
FROM TS_API_SETTING
90-
WHERE API_ASV_ID = @version_id;
91-
END
75+
declare @versionToFind DECIMAL(10, 2) = NULL;
76+
77+
IF @app_settings_version is null
78+
BEGIN
79+
DECLARE @max_version_id INT = NULL
80+
,@max_version_number DECIMAL(10, 2) = NULL;
81+
82+
SELECT @max_version_id = max(ASV_ID)
83+
,@max_version_number = ASV_VERSION
84+
FROM TM_APP_SETTING_CONFIG_VERSION
85+
WHERE ASV_CST_ID = @config_setting_type_id
86+
GROUP BY ASV_ID
87+
,ASV_VERSION;
88+
89+
IF @max_version_id IS NULL
90+
BEGIN
91+
SELECT @errorMessage = 'Api setting version not found for latest version';
92+
93+
RAISERROR (
94+
@errorMessage
95+
,16
96+
,1
97+
)
98+
99+
RETURN 0
100+
END
101+
ELSE
102+
BEGIN
103+
set @versionToFind = @max_version_id;
104+
END
105+
END
92106
ELSE
93-
BEGIN
94-
SELECT API_KEY
95-
,CASE WHEN API_SENSITIVE_VALUE=0 THEN API_VALUE ELSE null END AS API_VALUE
96-
,API_DESCRIPTION
97-
,API_SENSITIVE_VALUE
98-
FROM TS_API_SETTING
99-
WHERE API_ASV_ID = @version_id;
107+
BEGIN
108+
set @versionToFind = @version_id;
109+
END
110+
111+
112+
IF @read_sensitive_value = 1
113+
BEGIN
114+
SELECT API_KEY
115+
,API_VALUE
116+
,API_DESCRIPTION
117+
,API_SENSITIVE_VALUE
118+
FROM TS_API_SETTING
119+
WHERE API_ASV_ID = @versionToFind;
120+
END
121+
ELSE
122+
BEGIN
123+
SELECT API_KEY
124+
,CASE WHEN API_SENSITIVE_VALUE=0 THEN API_VALUE ELSE null END AS API_VALUE
125+
,API_DESCRIPTION
126+
,API_SENSITIVE_VALUE
127+
FROM TS_API_SETTING
128+
WHERE API_ASV_ID = @versionToFind;
129+
END
130+
131+
132+
IF @app_settings_version is null
133+
begin
134+
SELECT @max_version_number AS max_version_number;
135+
end
136+
else
137+
begin
138+
SELECT ASV_VERSION AS max_version_number
139+
FROM TM_APP_SETTING_CONFIG_VERSION
140+
WHERE ASV_CST_ID = @config_setting_type_id
141+
and asv_id = @versionToFind
142+
end
100143

101-
END
102144
END
Lines changed: 36 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,4 @@
1-
/****** Object: StoredProcedure [dbo].[App_Settings_Read] Script Date: 02/05/2023 14:29:49 ******/
2-
SET ANSI_NULLS ON
3-
GO
4-
5-
SET QUOTED_IDENTIFIER ON
6-
GO
7-
8-
/********************************************************************************
1+
/********************************************************************************
92
Author Name : Stephen Lane
103
Date written : 04/11/2022
114
Version : 2
@@ -22,17 +15,15 @@ CHANGE NO. DATE CHANGED BY REASON
2215
1 23/03/2023 Stephen Lane adding auto_version param so that latest version can always be retrieved instead of specific version
2316
2 22/06/2023 Stephen Lane dont return sensitive values unless requested
2417
03 13/09/2023 Stephen Lane changing mask to null to work with always encrypted
18+
04 24/11/2023 Stephen Lane replacing autoversion with app_settings_version being null
19+
05 07/11/2023 Stephen Lane always return two select statements
2520
2621
PEER REVIEW HISTORY
2722
-------------------
2823
REVIEW NO. DATE REVIEWED BY COMMENTS
2924
3025
*************************************************************************************/
31-
CREATE
32-
OR
33-
34-
ALTER PROCEDURE [dbo].[App_Settings_Read] @app_settings_version DECIMAL(10, 2)
35-
,@auto_version BIT
26+
CREATE or alter PROCEDURE [dbo].[App_Settings_Read] @app_settings_version DECIMAL(10, 2)
3627
,@read_sensitive_value BIT=1
3728
AS
3829
BEGIN
@@ -64,8 +55,7 @@ BEGIN
6455
WHERE ASV_VERSION = @app_settings_version
6556
AND ASV_CST_ID = @config_setting_type_id;
6657

67-
IF @version_id IS NULL
68-
AND @auto_version = 0
58+
IF @version_id IS NULL AND @app_settings_version is not null
6959
BEGIN
7060
SELECT @errorMessage = CONCAT (
7161
'App setting version not found for version : '
@@ -81,7 +71,10 @@ BEGIN
8171
RETURN 0
8272
END
8373

84-
IF @auto_version = 1
74+
declare @versionToFind DECIMAL(10, 2) = NULL;
75+
76+
77+
IF @app_settings_version is null
8578
BEGIN
8679
DECLARE @max_version_id INT = NULL
8780
,@max_version_number DECIMAL(10, 2) = NULL;
@@ -94,58 +87,35 @@ BEGIN
9487
,ASV_VERSION;
9588

9689
IF @max_version_id IS NULL
97-
BEGIN
98-
SELECT @errorMessage = 'App setting version not found for latest version';
90+
BEGIN
91+
SELECT @errorMessage = 'App setting version not found for latest version';
9992

100-
RAISERROR (
101-
@errorMessage
102-
,16
103-
,1
104-
)
93+
RAISERROR (
94+
@errorMessage
95+
,16
96+
,1
97+
)
10598

106-
RETURN 0
107-
END
99+
RETURN 0
100+
END
108101
ELSE
109-
BEGIN
110-
111-
IF @read_sensitive_value = 1
112-
BEGIN
113-
SELECT APP_KEY
114-
,APP_VALUE
115-
,APP_DESCRIPTION
116-
,APP_SENSITIVE_VALUE
117-
FROM TS_APP_SETTING
118-
WHERE APP_ASV_ID = @max_version_id;
119-
120-
SELECT @max_version_number AS max_version_number;
102+
BEGIN
103+
set @versionToFind = @max_version_id;
104+
END
121105
END
122106
ELSE
123107
BEGIN
124-
SELECT APP_KEY
125-
,CASE WHEN APP_SENSITIVE_VALUE=0 THEN APP_VALUE ELSE null END AS APP_VALUE
126-
,APP_DESCRIPTION
127-
,APP_SENSITIVE_VALUE
128-
FROM TS_APP_SETTING
129-
WHERE APP_ASV_ID = @max_version_id;
130-
131-
SELECT @max_version_number AS max_version_number;
108+
set @versionToFind = @version_id;
132109
END
133110

134-
135-
END
136-
END
137-
ELSE
138-
BEGIN
139111
IF @read_sensitive_value = 1
140112
BEGIN
141113
SELECT APP_KEY
142114
,APP_VALUE
143115
,APP_DESCRIPTION
144116
,APP_SENSITIVE_VALUE
145117
FROM TS_APP_SETTING
146-
WHERE APP_ASV_ID = @version_id;
147-
148-
SELECT @app_settings_version AS max_version_number;
118+
WHERE APP_ASV_ID = @versionToFind;
149119
END
150120
ELSE
151121
BEGIN
@@ -154,10 +124,18 @@ BEGIN
154124
,APP_DESCRIPTION
155125
,APP_SENSITIVE_VALUE
156126
FROM TS_APP_SETTING
157-
WHERE APP_ASV_ID = @version_id;
158-
159-
SELECT @app_settings_version AS max_version_number;
127+
WHERE APP_ASV_ID = @versionToFind;
160128
END
161129

162-
END
163-
END
130+
IF @app_settings_version is null
131+
begin
132+
SELECT @max_version_number AS max_version_number;
133+
end
134+
else
135+
begin
136+
SELECT ASV_VERSION AS max_version_number
137+
FROM TM_APP_SETTING_CONFIG_VERSION
138+
WHERE ASV_CST_ID = @config_setting_type_id
139+
and asv_id = @versionToFind
140+
end
141+
END

rls/packages/API.Library.6.1.17.nupkg

76.4 KB
Binary file not shown.

src/API.Library/API.Library.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,13 @@
1212
<PackageId>API.Library</PackageId>
1313
<Product>API Library</Product>
1414
<Copyright>Central Statistics Office, Ireland</Copyright>
15-
<Version>6.1.16</Version>
15+
<Version>6.1.17</Version>
1616
<Authors>Central Statistics Office, Ireland</Authors>
1717
<SignAssembly>False</SignAssembly>
1818
<RepositoryUrl>https://github.com/CSOIreland/Server-API-Library</RepositoryUrl>
1919
<PackageReleaseNotes>
2020
- [BUG FIX] bug fix reading distributed config from cache
21+
- [ENHANCEMENT] remove distributed config flag, rely on version being null
2122
</PackageReleaseNotes>
2223
<RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
2324
<RestoreLockedMode>true</RestoreLockedMode>

0 commit comments

Comments
 (0)