digitaldemocratic/dd-sso/docker/api/src/api/views/AvatarsViews.py

62 lines
1.7 KiB
Python

#
# Copyright © 2021,2022 IsardVDI S.L.
#
# This file is part of DD
#
# DD is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or (at your
# option) any later version.
#
# DD is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
# details.
#
# You should have received a copy of the GNU Affero General Public License
# along with DD. If not, see <https://www.gnu.org/licenses/>.
#
# SPDX-License-Identifier: AGPL-3.0-or-later
import json
import logging as log
import os
import sys
import time
import traceback
from typing import TYPE_CHECKING
from uuid import uuid4
from flask import (
Response,
jsonify,
redirect,
render_template,
request,
send_from_directory,
url_for,
)
if TYPE_CHECKING:
from api.flaskapp import ApiFlaskApp
from ..lib.avatars import Avatars
avatars = Avatars()
def setup_avatar_views(app: "ApiFlaskApp") -> None:
# TODO: check if this is redundant and remove it
@app.route("/avatar/<username>", methods=["GET"])
def avatar(username: str) -> Response:
file = 'dd.jpg'
filepath = '/custom/avatars/'
if username != 'admin':
file = avatars.get_user_avatar(username)
filepath = os.path.join("", "../avatars/master-avatars/")
return send_from_directory(
filepath,
file,
mimetype="image/jpg",
)