Skip to content

Commit 00135b2

Browse files
authored
Chore/update packages (#53)
* chore: Oppdatere sfdx-project.json - Fjerne platform-admin da denne ikke er i bruk ennå - Litt standarisering av hvordan ting er organisert - La inn alias for custom-permission-helper - Oppdatere oversikter over pakkeavhengigheter * chore: Liten omskrivning av deler av CustomPermissionHelper - Bedre feilhåndtering - Introdusere nye tester - La til test suites sånn at det er lettere å kjøre alle tester i pakken * chore: Mindre omskrivning av feature toogle - Test suite for å kjøre alle tester i pakken - Splittet FeatureToogleBase opp i flere klasser for å gi bedre lesbarhet og isolering - Introdusert FeatureToogle som holder for felles instrukser for pakken. Som bonus gjøre den det lettere med testing
1 parent a85b53e commit 00135b2

26 files changed

+749
-307
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ graph TD
2727
custom-pemission-helper
2828
feature-toggle --> platform-datamodel;
2929
feature-toggle --> custom-metadata-dao;
30+
feature-toggle --> custom-pemission-helper;
3031
```
3132

3233
## Komme i gang

sfdx-project.json

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
{
22
"sfdcLoginUrl": "https://login.salesforce.com",
33
"sourceApiVersion": "63.0",
4-
54
"packageDirectories": [
65
{
76
"path": "src-temp",
@@ -11,25 +10,27 @@
1110
"path": "src/platform-data-model",
1211
"package": "platform-data-model",
1312
"versionNumber": "0.1.0.NEXT",
14-
"definitionFile": "config/scratch-org-def.json"
15-
},
16-
{
17-
"path": "src/platform-admin",
18-
"package": "platform-admin",
19-
"versionNumber": "0.0.0.NEXT",
20-
"definitionFile": "config/scratch-org-def.json"
13+
"definitionFile": "config/scratch-org-def.json",
14+
"dependencies": []
2115
},
2216
{
23-
"versionNumber": "0.1.0.NEXT",
2417
"path": "src/platform-utility/custom-metadata-dao",
25-
"default": false,
2618
"package": "custom-metadata-dao",
27-
"definitionFile": "config/scratch-org-def.json"
19+
"versionNumber": "0.1.0.NEXT",
20+
"definitionFile": "config/scratch-org-def.json",
21+
"dependencies": []
2822
},
2923
{
24+
"path": "src/platform-utility/custom-permission-helper",
25+
"package": "custom-permission-helper",
3026
"versionNumber": "0.1.0.NEXT",
27+
"definitionFile": "config/scratch-org-def.json",
28+
"dependencies": []
29+
},
30+
{
3131
"path": "src/frameworks/feature-toggle",
3232
"package": "feature-toggle",
33+
"versionNumber": "0.1.0.NEXT",
3334
"definitionFile": "config/scratch-org-def.json",
3435
"dependencies": [
3536
{
@@ -39,20 +40,18 @@
3940
{
4041
"package": "custom-metadata-dao",
4142
"versionNumber": "0.1.0.LATEST"
43+
},
44+
{
45+
"package": "custom-permission-helper",
46+
"versionNumber": "0.1.0.LATEST"
4247
}
4348
]
44-
},
45-
{
46-
"versionNumber": "0.1.0.NEXT",
47-
"path": "src/platform-utility/custom-permission-helper",
48-
"default": false,
49-
"package": "custom-permission-helper",
50-
"versionDescription": "Custom Permission Helper class used to get access to Custom Permissions, and at the same time make it easier to test the various paths the code can take based on the values in the Custom Permissions."
5149
}
5250
],
5351
"packageAliases": {
5452
"platform-data-model": "0HoKB00000000010AA",
5553
"custom-metadata-dao": "0HoKB000000000B0AQ",
54+
"custom-permission-helper": "0HoKB000000000f0AA",
5655
"feature-toggle": "0HoKB000000000V0AQ"
5756
}
5857
}

src/frameworks/feature-toggle/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,4 +90,5 @@ title: Pakkeavhengigheter
9090
graph TD
9191
feature-toggle --> platform-datamodel;
9292
feature-toggle --> custom-metadata-dao;
93+
feature-toggle --> custom-pemission-helper
9394
```
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/**
2+
* @description Class to hold common parameters in the feature toggle framework.
3+
* @author Tor Håkon Sigurdsen
4+
* @since 0.1.0, April 2025 - Created
5+
*/
6+
public with sharing class FeatureToggle {
7+
public enum ToggleType {
8+
CUSTOM_PERMISSION,
9+
FEATURE_FLAG
10+
}
11+
12+
private static Boolean validateCustomPermissions = false;
13+
14+
/**
15+
* @description Sets the custom permission validation flag.
16+
*
17+
* @param validate `true` to enable validation, `false` to disable.
18+
* @author Tor Håkon Sigurdsen
19+
* @since 0.1.0, April 2025 - Created
20+
*/
21+
public static void setValidateCustomPermissions(Boolean validate) {
22+
FeatureToggle.validateCustomPermissions = validate;
23+
}
24+
25+
/**
26+
* @description Retrieves the current state of custom permission validation.
27+
* @return `true` if validation is enabled, `false` otherwise.
28+
*
29+
* @author Tor Håkon Sigurdsen
30+
* @since 0.1.0, April 2025 - Created
31+
*/
32+
public static Boolean shouldValidateCustomPermissions() {
33+
return FeatureToggle.validateCustomPermissions;
34+
}
35+
}

src/frameworks/feature-toggle/main/classes/FeatureToggleType.cls-meta.xml renamed to src/frameworks/feature-toggle/main/classes/FeatureToggle.cls-meta.xml

File renamed without changes.
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
/**
2+
* @description AuraEnabled method for checking feature toggles.
3+
*
4+
* @group Feature Toggle
5+
*
6+
* @see FeatureToggleBase
7+
*
8+
* @author Tor Håkon Sigurdsen
9+
* @since 0.1.0, April 2025 - Moved from FeatureToggleBase
10+
*/
11+
public with sharing class FeatureToggleAura {
12+
/**
13+
* @description Checks if a feature is enabled for a specific toggle type.
14+
*
15+
* @param featureName The feature name.
16+
* @param toogleType The type (FEATURE_FLAG or CUSTOM_PERMISSION).
17+
* @return `true` if enabled, `false` otherwise.
18+
*
19+
* @exception throws `AuraHandledException` if something goes wrong.
20+
*
21+
* @author Tor Håkon Sigurdsen
22+
* @since 0.1.0, April 2025 - Moved from FeatureToggleBase
23+
*/
24+
@AuraEnabled(cacheable=true)
25+
public static Boolean isFeatureEnabled(
26+
String featureName,
27+
String toogleType
28+
) {
29+
try {
30+
return new FeatureToggleBase()
31+
.isFeatureEnabled(
32+
featureName,
33+
FeatureToggle.ToggleType.valueOf(toogleType)
34+
);
35+
} catch (Exception e) {
36+
String exceptionMessage = String.format(
37+
'Something went wrong when checking the feature {0} with toogle type {1}: {2}',
38+
new List<String>{ featureName, toogleType, e.getMessage() }
39+
);
40+
AuraHandledException auraException = new AuraHandledException(
41+
exceptionMessage
42+
);
43+
auraException.setMessage(exceptionMessage);
44+
throw auraException;
45+
}
46+
}
47+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
3+
<apiVersion>63.0</apiVersion>
4+
<status>Active</status>
5+
</ApexClass>

0 commit comments

Comments
 (0)