From b2618e9404b84cc62d4becb02436233a0d53b375 Mon Sep 17 00:00:00 2001 From: Cédric Bonhomme Date: Wed, 25 Nov 2015 22:45:43 +0100 Subject: Rfactorization. Just a start... --- web/controllers/icon.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 web/controllers/icon.py (limited to 'web/controllers/icon.py') diff --git a/web/controllers/icon.py b/web/controllers/icon.py new file mode 100644 index 00000000..07c4a4ef --- /dev/null +++ b/web/controllers/icon.py @@ -0,0 +1,23 @@ +import base64 +import requests +from web.models import Icon +from .abstract import AbstractController + + +class IconController(AbstractController): + _db_cls = Icon + _user_id_key = None + + def _build_from_url(self, attrs): + if 'url' in attrs and 'content' not in attrs: + resp = requests.get(attrs['url'], verify=False) + attrs.update({'url': resp.url, + 'mimetype': resp.headers.get('content-type', None), + 'content': base64.b64encode(resp.content).decode('utf8')}) + return attrs + + def create(self, **attrs): + return super().create(**self._build_from_url(attrs)) + + def update(self, filters, attrs): + return super().update(filters, self._build_from_url(attrs)) -- cgit