Skip to content

Commit d70cc42

Browse files
authored
Merge pull request #28 from juspay/feature/removeFromSharedPrefs
added remove from shared prefs
2 parents d693459 + 73450e9 commit d70cc42

File tree

5 files changed

+27
-2
lines changed

5 files changed

+27
-2
lines changed

src/Presto/Core/Flow.purs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@ module Presto.Core.Flow ( module Presto.Core.Language.Runtime.API
77

88
import Presto.Core.Language.Runtime.API (APIRunner, runAPIInteraction)
99
import Presto.Core.Language.Runtime.Interpreter (Runtime(..), PermissionRunner(..), PermissionCheckRunner, PermissionTakeRunner, UIRunner, run)
10-
import Presto.Core.Types.Language.Flow (Flow, callAPI, evalUI, forkUI, runUI, showUI, get, set, load, save, fork, launch, doAff, await, await', delay, oneOf)
10+
import Presto.Core.Types.Language.Flow (Flow, callAPI, evalUI, forkUI, runUI, showUI, get, set, load, save, delete, fork, launch, doAff, await, await', delay, oneOf)
1111
import Presto.Core.Types.Language.Interaction (class Interact, Interaction, defaultInteract, request)
1212
import Presto.Core.Types.Language.Storage (class Serializable, Key)

src/Presto/Core/Language/Runtime/Interpreter.purs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import Foreign.Object as Object
2626
import Global.Unsafe (unsafeStringify)
2727

2828
import Presto.Core.Language.Runtime.API (APIRunner, runAPIInteraction)
29-
import Presto.Core.LocalStorage (getValueFromLocalStore, setValueToLocalStore)
29+
import Presto.Core.LocalStorage (deleteValueFromLocalStore, getValueFromLocalStore, setValueToLocalStore)
3030
import Presto.Core.Types.Language.Flow (ErrorHandler(..), Flow, FlowMethod, FlowMethodF(..), FlowWrapper(..), Store(..), Control(..))
3131
import Presto.Core.Types.Language.Interaction (InteractionF(..), Interaction, ForeignOut(..))
3232
import Presto.Core.Types.Language.Storage (Key)
@@ -105,6 +105,14 @@ interpret _ (Set LocalStore key value next) = do
105105
interpret _ (Set InMemoryStore key value next) = do
106106
updateState key value *> pure next
107107

108+
interpret _ (Delete LocalStore key next) = do
109+
lift $ deleteValueFromLocalStore key
110+
pure next
111+
112+
interpret _ (Delete InMemoryStore key next) = do
113+
_ <- Object.delete key <$> readState
114+
pure next
115+
108116
interpret r (Fork flow nextF) = forkFlow r flow >>= (pure <<< nextF)
109117

110118
interpret _ (DoAff aff nextF) = lift aff >>= (pure <<< nextF)

src/Presto/Core/LocalStorage/LocalStorage.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,7 @@ exports.getValueFromLocalStoreImpl = function(key) {
55
exports.setValueToLocalStoreImpl = function(key, value) {
66
return JBridge.setInSharedPrefs(key, value);
77
};
8+
9+
exports.deleteValueFromLocalStoreImpl = function(key){
10+
JBridge.removeDataFromSharedPrefs(key);
11+
};

src/Presto/Core/LocalStorage/LocalStorage.purs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,17 @@ foreign import setValueToLocalStoreImpl ::
1919
String
2020
Unit
2121

22+
foreign import deleteValueFromLocalStoreImpl ::
23+
EffectFn1
24+
String
25+
Unit
26+
2227
getValueFromLocalStore :: String -> Aff (Maybe String)
2328
getValueFromLocalStore k = let v = liftEffect $ runEffectFn1 getValueFromLocalStoreImpl k
2429
in ifM ((==) "__failed" <$> v) (pure Nothing) (Just <$> v)
2530

2631
setValueToLocalStore :: String -> String -> Aff Unit
2732
setValueToLocalStore k v = liftEffect $ runEffectFn2 setValueToLocalStoreImpl k v
33+
34+
deleteValueFromLocalStore :: String -> Aff Unit
35+
deleteValueFromLocalStore k = liftEffect $ runEffectFn1 deleteValueFromLocalStoreImpl k

src/Presto/Core/Types/Language/Flow.purs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ data FlowMethodF a s
3636
| CallAPI (Interaction (APIResult s)) (APIResult s -> a)
3737
| Get Store Key (Maybe String -> a)
3838
| Set Store Key String a
39+
| Delete Store Key a
3940
| Fork (Flow s) (Control s -> a)
4041
| DoAff (Aff s) (s -> a)
4142
| Await (Control s) (s -> a)
@@ -63,6 +64,10 @@ getS key = wrap $ Get InMemoryStore key identity
6364
setS :: Key -> String -> Flow Unit
6465
setS key val = wrap $ Set InMemoryStore key val unit
6566

67+
-- | Deletes a string value from sharedprefs using key.
68+
delete :: Key -> Flow Unit
69+
delete key = wrap $ Delete LocalStore key unit
70+
6671
-- | Gets some string from localStorage by key
6772
loadS :: Key -> Flow (Maybe String)
6873
loadS key = wrap $ Get LocalStore key identity

0 commit comments

Comments
 (0)