Skip to content

Commit

Permalink
fix: added new feature flag for recon-v2
Browse files Browse the repository at this point in the history
  • Loading branch information
Riddhiagrawal001 committed Jul 10, 2024
1 parent 37f5228 commit df26eef
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 43 deletions.
3 changes: 2 additions & 1 deletion config/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,5 @@ configure_pmts=false
branding=false
totp=false
live_users_counter=false
granularity=false
granularity=false
recon_v2=false
2 changes: 2 additions & 0 deletions src/entryPoints/FeatureFlagUtils.res
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ type featureFlag = {
totp: bool,
liveUsersCounter: bool,
granularity: bool,
reconV2: bool,
}

let featureFlagType = (featureFlags: JSON.t) => {
Expand Down Expand Up @@ -63,6 +64,7 @@ let featureFlagType = (featureFlags: JSON.t) => {
totp: dict->getBool("totp", false),
liveUsersCounter: dict->getBool("live_users_counter", false),
granularity: dict->getBool("granularity", false),
reconV2: dict->getBool("recon_v2", false),
}
typedFeatureFlag
}
2 changes: 1 addition & 1 deletion src/entryPoints/HyperSwitchApp.res
Original file line number Diff line number Diff line change
Expand Up @@ -468,7 +468,7 @@ let make = () => {
| list{"reports"}
| list{"config-settings"}
| list{"file-processor"} =>
<AccessControl isEnabled=featureFlagDetails.recon permission=Access>
<AccessControl isEnabled=featureFlagDetails.reconV2 permission=Access>
<ReconModule urlList={url.path->urlPath} />
</AccessControl>

Expand Down
73 changes: 34 additions & 39 deletions src/entryPoints/SidebarValues.res
Original file line number Diff line number Diff line change
Expand Up @@ -466,7 +466,7 @@ let developers = (isDevelopersEnabled, userRole, systemMetrics, ~permissionJson)
: emptyComponent
}

let uploadReconFiles = () => {
let uploadReconFiles = {
SubLevelLink({
name: "Upload Recon Files",
link: `/upload-files`,
Expand All @@ -475,7 +475,7 @@ let uploadReconFiles = () => {
})
}

let runRecon = () => {
let runRecon = {
SubLevelLink({
name: "Run Recon",
link: `/run-recon`,
Expand All @@ -484,15 +484,15 @@ let runRecon = () => {
})
}

let reconAnalytics = () => {
let reconAnalytics = {
SubLevelLink({
name: "Analytics",
link: `/recon-analytics`,
access: Access,
searchOptions: [("Recon analytics", "")],
})
}
let reconReports = () => {
let reconReports = {
SubLevelLink({
name: "Reports",
link: `reports`,
Expand All @@ -501,15 +501,15 @@ let reconReports = () => {
})
}

let reconConfigurator = () => {
let reconConfigurator = {
SubLevelLink({
name: "Configurator",
link: `config-settings`,
access: Access,
searchOptions: [("Recon configurator", "")],
})
}
let reconFileProcessor = () => {
let reconFileProcessor = {
SubLevelLink({
name: "File Processor",
link: `file-processor`,
Expand All @@ -519,39 +519,32 @@ let reconFileProcessor = () => {
}

let reconTag = (recon, isReconEnabled) => {
let uploadReconFiles = uploadReconFiles()
let runRecon = runRecon()
let reconAnalytics = reconAnalytics()
let reconReports = reconReports()
let reconConfigurator = reconConfigurator()
let reconFileProcessor = reconFileProcessor()
// TODO: change later for everyone
let reconUrlPresent = Window.env.reconIframeUrl->Option.getOr("")->LogicUtils.isNonEmptyString

switch (recon, isReconEnabled, reconUrlPresent) {
| (true, true, true) =>
Section({
name: "Recon And Settlement",
icon: "recon",
showSection: true,
links: [
uploadReconFiles,
runRecon,
reconAnalytics,
reconReports,
reconConfigurator,
reconFileProcessor,
],
})
| (true, _, _) =>
Link({
name: "Reconcilation",
icon: isReconEnabled ? "recon" : "recon-lock",
link: `/recon`,
access: Access,
})
| (_, _, _) => emptyComponent
}
recon
? Link({
name: "Reconcilation",
icon: isReconEnabled ? "recon" : "recon-lock",
link: `/recon`,
access: Access,
})
: emptyComponent
}

let reconAndSettlement = (recon_v2, isReconEnabled) => {
recon_v2 && isReconEnabled
? Section({
name: "Recon And Settlement",
icon: "recon",
showSection: true,
links: [
uploadReconFiles,
runRecon,
reconAnalytics,
reconReports,
reconConfigurator,
reconFileProcessor,
],
})
: emptyComponent
}

let useGetSidebarValues = (~isReconEnabled: bool) => {
Expand All @@ -575,6 +568,7 @@ let useGetSidebarValues = (~isReconEnabled: bool) => {
quickStart,
disputeAnalytics,
configurePmts,
reconV2,
} = featureFlagDetails

let sidebar = [
Expand All @@ -596,6 +590,7 @@ let useGetSidebarValues = (~isReconEnabled: bool) => {
),
default->workflow(isSurchargeEnabled, ~permissionJson, ~isPayoutEnabled=payOut),
recon->reconTag(isReconEnabled),
reconV2->reconAndSettlement(isReconEnabled),
default->developers(userRole, systemMetrics, ~permissionJson),
settings(
~isSampleDataEnabled=sampleData,
Expand Down
4 changes: 2 additions & 2 deletions src/screens/Recon/ReconModule.res
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ let make = (~urlList) => {

let getURL = useGetURL()
let fetchDetails = useGetMethod()
let (redirectToken, setRedirecToken) = React.useState(_ => "")
let (redirectToken, setRedirectToken) = React.useState(_ => "")
let (screenState, setScreenState) = React.useState(_ => PageLoaderWrapper.Loading)
let (iframeLoaded, setIframeLoaded) = React.useState(_ => false)
let iframeRef = React.useRef(Js.Nullable.null)
Expand All @@ -15,7 +15,7 @@ let make = (~urlList) => {
let url = getURL(~entityName=RECON, ~reconType=#TOKEN, ~methodType=Get, ())
let res = await fetchDetails(url)
let token = res->LogicUtils.getDictFromJsonObject->LogicUtils.getString("token", "")
setRedirecToken(_ => token)
setRedirectToken(_ => token)
setScreenState(_ => PageLoaderWrapper.Success)
} catch {
| _ => setScreenState(_ => PageLoaderWrapper.Error("Something went wrong!"))
Expand Down

0 comments on commit df26eef

Please sign in to comment.