import base64
from flask import Blueprint, Response, request
from web.controllers import IconController
from web.lib.view_utils import etag_match

icon_bp = Blueprint('icon', __name__, url_prefix='/icon')


@icon_bp.route('/', methods=['GET'])
@etag_match
def icon():
    icon = IconController().get(url=request.args['url'])
    headers = {'Cache-Control': 'max-age=86400',
               'Content-Type': icon.mimetype}
    return Response(base64.b64decode(icon.content), headers=headers)