from grocy.request import Request from grocy.conf import Configuration import logging class Entity(object): RESOURCE_URL_TEMPLATE = '{api}/objects/{entity}/{objectId}' COLLECTION_URL_TEMPLATE = '{api}/objects/{entity}' def __init__(self, name, **props): self.conf = Configuration() self.conf.load() self.name = name self.__dict__.update(**props) def get(self, id=None): logger = logging.getLogger('entity.get') if id: url = self.RESOURCE_URL_TEMPLATE.format(api=self.conf.api, entity=self.name, objectId=id) else: url = self.COLLECTION_URL_TEMPLATE.format(api=self.conf.api, entity=self.name) request = Request('get', url) try: return request.send() except Exception as e: logger.error(e) raise e def create(self, entity): logger = logging.getLogger('entity.add') url = self.RESOURCE_URL_TEMPLATE request = Request('post', url, entity) try: return request.send() except Exception as e: logger.error(e) raise e