2019-06-16 23:54:10 -05:00
|
|
|
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
|
|
|
|
|
2019-06-22 02:21:23 -05:00
|
|
|
request = Request('post', url, entity)
|
2019-06-16 23:54:10 -05:00
|
|
|
try:
|
|
|
|
return request.send()
|
|
|
|
except Exception as e:
|
|
|
|
logger.error(e)
|
|
|
|
raise e
|