grocy-cli/grocy/entity.py

40 lines
1.1 KiB
Python

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