Files
2017-11-07 09:23:57 +01:00

42 lines
1.3 KiB
Python

import json
one_day_in_seconds = 60 * 60 * 24
class Store(object):
def __init__(self, raw_store, unique_id):
self.raw_store = raw_store
self.id = unique_id
def exists(self, key):
return self.raw_store.exists(self.key(key))
def set(self, key, value):
self.raw_store.set(self.key(key), value)
self.raw_store.expire(self.key(key), one_day_in_seconds)
def delete(self, key):
self.raw_store.delete(self.key(key))
def get(self, key):
self.raw_store.expire(self.key(key), one_day_in_seconds)
return self.raw_store.get(self.key(key))
def append_map_to_list(self, list_id, data):
self.raw_store.rpush(self.key(list_id), json.dumps(data))
def replace_map_in_list(self, list_id, data, index):
self.raw_store.lset(self.key(list_id), index, json.dumps(data))
def get_list_of_maps(self, list_id):
key = self.key(list_id)
result_list = self.raw_store.lrange(key, 0, self.raw_store.llen(key))
return list(map(lambda x: json.loads(x.decode('utf-8')), result_list))
def remove_map_from_list(self, list_id, index):
data_to_remove = self.raw_store.lindex(self.key(list_id), index)
self.raw_store.lrem(self.key(list_id), data_to_remove)
def key(self, tag):
return self.id + ':' + tag