@@ -0,0 +1,209 @@
1+module Yoga.Redis.Om
2+ ( -- * Om-friendly operations
3+ ping
4+ , get
5+ , set
6+ , setex
7+ , del
8+ , exists
9+ , expire
10+ , ttl
11+ , incr
12+ , incrBy
13+ , decr
14+ , decrBy
15+ -- * Hash operations
16+ , hget
17+ , hset
18+ , hgetall
19+ , hdel
20+ , hexists
21+ , hkeys
22+ , hlen
23+ -- * List operations
24+ , lpush
25+ , rpush
26+ , lpop
27+ , rpop
28+ , lrange
29+ , llen
30+ -- * Set operations
31+ , sadd
32+ , srem
33+ , smembers
34+ , sismember
35+ , scard
36+ -- * Sorted set operations
37+ , zadd
38+ , zrem
39+ , zrange
40+ , zcard
41+ , zscore
42+ -- * Pub/Sub
43+ , publish
44+ -- * Re-exports from base module
45+ , module Yoga.Redis
46+ ) where
47+
48+import Prelude
49+
50+import Data.Maybe (Maybe)
51+import Effect.Aff.Class (liftAff)
52+import Prim.Row (class Union)
53+import Yoga.Redis as R
54+import Yoga.Redis (Redis, RedisKey, RedisValue, RedisField, RedisChannel, RedisScore, TTLSeconds, TTLMilliseconds, ZAddMember, ZRangeMember)
55+import Yoga.Om (Om)
56+
57+-- | Om-friendly ping
58+ping :: forall ctx err. R.Redis -> Om ctx err String
59+ping redis = liftAff $ R.ping redis
60+
61+-- | Om-friendly get
62+get :: forall ctx err. R.RedisKey -> R.Redis -> Om ctx err (Maybe R.RedisValue)
63+get key redis = liftAff $ R.get key redis
64+
65+-- | Om-friendly set
66+set :: forall ctx err opts opts_. Union opts opts_ R.SetOptionsImpl => R.RedisKey -> R.RedisValue -> { | opts } -> R.Redis -> Om ctx err Unit
67+set key value opts redis = liftAff $ R.set key value opts redis
68+
69+-- | Om-friendly setex
70+setex :: forall ctx err. R.RedisKey -> R.TTLSeconds -> R.RedisValue -> R.Redis -> Om ctx err Unit
71+setex key ttlVal value redis = liftAff $ R.setex key ttlVal value redis
72+
73+-- | Om-friendly del
74+del :: forall ctx err. Array R.RedisKey -> R.Redis -> Om ctx err Int
75+del keys redis = liftAff $ R.del keys redis
76+
77+-- | Om-friendly exists
78+exists :: forall ctx err. Array R.RedisKey -> R.Redis -> Om ctx err Int
79+exists keys redis = liftAff $ R.exists keys redis
80+
81+-- | Om-friendly expire
82+expire :: forall ctx err. R.RedisKey -> R.TTLSeconds -> R.Redis -> Om ctx err Boolean
83+expire key ttlVal redis = liftAff $ R.expire key ttlVal redis
84+
85+-- | Om-friendly ttl
86+ttl :: forall ctx err. R.RedisKey -> R.Redis -> Om ctx err Int
87+ttl key redis = liftAff $ R.ttl key redis
88+
89+-- | Om-friendly incr
90+incr :: forall ctx err. R.RedisKey -> R.Redis -> Om ctx err Int
91+incr key redis = liftAff $ R.incr key redis
92+
93+-- | Om-friendly incrBy
94+incrBy :: forall ctx err. R.RedisKey -> Int -> R.Redis -> Om ctx err Int
95+incrBy key increment redis = liftAff $ R.incrBy key increment redis
96+
97+-- | Om-friendly decr
98+decr :: forall ctx err. R.RedisKey -> R.Redis -> Om ctx err Int
99+decr key redis = liftAff $ R.decr key redis
100+
101+-- | Om-friendly decrBy
102+decrBy :: forall ctx err. R.RedisKey -> Int -> R.Redis -> Om ctx err Int
103+decrBy key decrement redis = liftAff $ R.decrBy key decrement redis
104+
105+-- Hash operations
106+
107+-- | Om-friendly hget
108+hget :: forall ctx err. R.RedisKey -> R.RedisField -> R.Redis -> Om ctx err (Maybe R.RedisValue)
109+hget key field redis = liftAff $ R.hget key field redis
110+
111+-- | Om-friendly hset
112+hset :: forall ctx err. R.RedisKey -> Array { field :: R.RedisField, value :: R.RedisValue } -> R.Redis -> Om ctx err Int
113+hset key fieldValues redis = liftAff $ R.hset key fieldValues redis
114+
115+-- | Om-friendly hgetall
116+hgetall :: forall ctx err. R.RedisKey -> R.Redis -> Om ctx err (Array { field :: R.RedisField, value :: R.RedisValue })
117+hgetall key redis = liftAff $ R.hgetall key redis
118+
119+-- | Om-friendly hdel
120+hdel :: forall ctx err. R.RedisKey -> Array R.RedisField -> R.Redis -> Om ctx err Int
121+hdel key fields redis = liftAff $ R.hdel key fields redis
122+
123+-- | Om-friendly hexists
124+hexists :: forall ctx err. R.RedisKey -> R.RedisField -> R.Redis -> Om ctx err Boolean
125+hexists key field redis = liftAff $ R.hexists key field redis
126+
127+-- | Om-friendly hkeys
128+hkeys :: forall ctx err. R.RedisKey -> R.Redis -> Om ctx err (Array R.RedisField)
129+hkeys key redis = liftAff $ R.hkeys key redis
130+
131+-- | Om-friendly hlen
132+hlen :: forall ctx err. R.RedisKey -> R.Redis -> Om ctx err Int
133+hlen key redis = liftAff $ R.hlen key redis
134+
135+-- List operations
136+
137+-- | Om-friendly lpush
138+lpush :: forall ctx err. R.RedisKey -> Array R.RedisValue -> R.Redis -> Om ctx err Int
139+lpush key values redis = liftAff $ R.lpush key values redis
140+
141+-- | Om-friendly rpush
142+rpush :: forall ctx err. R.RedisKey -> Array R.RedisValue -> R.Redis -> Om ctx err Int
143+rpush key values redis = liftAff $ R.rpush key values redis
144+
145+-- | Om-friendly lpop
146+lpop :: forall ctx err. R.RedisKey -> R.Redis -> Om ctx err (Maybe R.RedisValue)
147+lpop key redis = liftAff $ R.lpop key redis
148+
149+-- | Om-friendly rpop
150+rpop :: forall ctx err. R.RedisKey -> R.Redis -> Om ctx err (Maybe R.RedisValue)
151+rpop key redis = liftAff $ R.rpop key redis
152+
153+-- | Om-friendly lrange
154+lrange :: forall ctx err. R.RedisKey -> Int -> Int -> R.Redis -> Om ctx err (Array R.RedisValue)
155+lrange key start stop redis = liftAff $ R.lrange key start stop redis
156+
157+-- | Om-friendly llen
158+llen :: forall ctx err. R.RedisKey -> R.Redis -> Om ctx err Int
159+llen key redis = liftAff $ R.llen key redis
160+
161+-- Set operations
162+
163+-- | Om-friendly sadd
164+sadd :: forall ctx err. R.RedisKey -> Array R.RedisValue -> R.Redis -> Om ctx err Int
165+sadd key members redis = liftAff $ R.sadd key members redis
166+
167+-- | Om-friendly srem
168+srem :: forall ctx err. R.RedisKey -> Array R.RedisValue -> R.Redis -> Om ctx err Int
169+srem key members redis = liftAff $ R.srem key members redis
170+
171+-- | Om-friendly smembers
172+smembers :: forall ctx err. R.RedisKey -> R.Redis -> Om ctx err (Array R.RedisValue)
173+smembers key redis = liftAff $ R.smembers key redis
174+
175+-- | Om-friendly sismember
176+sismember :: forall ctx err. R.RedisKey -> R.RedisValue -> R.Redis -> Om ctx err Boolean
177+sismember key member redis = liftAff $ R.sismember key member redis
178+
179+-- | Om-friendly scard
180+scard :: forall ctx err. R.RedisKey -> R.Redis -> Om ctx err Int
181+scard key redis = liftAff $ R.scard key redis
182+
183+-- Sorted set operations
184+
185+-- | Om-friendly zadd
186+zadd :: forall ctx err opts opts_. Union opts opts_ R.ZAddOptionsImpl => R.RedisKey -> Array R.ZAddMember -> { | opts } -> R.Redis -> Om ctx err Int
187+zadd key members opts redis = liftAff $ R.zadd key members opts redis
188+
189+-- | Om-friendly zrem
190+zrem :: forall ctx err. R.RedisKey -> Array R.RedisValue -> R.Redis -> Om ctx err Int
191+zrem key members redis = liftAff $ R.zrem key members redis
192+
193+-- | Om-friendly zrange
194+zrange :: forall ctx err. R.RedisKey -> Int -> Int -> R.Redis -> Om ctx err (Array R.ZRangeMember)
195+zrange key start stop redis = liftAff $ R.zrange key start stop redis
196+
197+-- | Om-friendly zcard
198+zcard :: forall ctx err. R.RedisKey -> R.Redis -> Om ctx err Int
199+zcard key redis = liftAff $ R.zcard key redis
200+
201+-- | Om-friendly zscore
202+zscore :: forall ctx err. R.RedisKey -> R.RedisValue -> R.Redis -> Om ctx err (Maybe R.RedisScore)
203+zscore key member redis = liftAff $ R.zscore key member redis
204+
205+-- Pub/Sub operations
206+
207+-- | Om-friendly publish
208+publish :: forall ctx err. R.RedisChannel -> R.RedisValue -> R.Redis -> Om ctx err Int
209+publish channel message redis = liftAff $ R.publish channel message redis