2021-03-06 21:56:42 +01:00
|
|
|
from flask import g
|
|
|
|
from flask import jsonify
|
|
|
|
|
|
|
|
from app.api.base import api_bp, require_api_auth
|
|
|
|
from app.models import Alias, Client, CustomDomain
|
2022-11-23 13:51:08 +01:00
|
|
|
from app.alias_utils import alias_export_csv
|
2021-03-06 21:56:42 +01:00
|
|
|
|
|
|
|
|
|
|
|
@api_bp.route("/export/data", methods=["GET"])
|
|
|
|
@require_api_auth
|
|
|
|
def export_data():
|
|
|
|
"""
|
|
|
|
Get user data
|
|
|
|
Output:
|
|
|
|
Alias, custom domain and app info
|
|
|
|
|
|
|
|
"""
|
|
|
|
user = g.user
|
|
|
|
|
|
|
|
data = {
|
|
|
|
"email": user.email,
|
|
|
|
"name": user.name,
|
|
|
|
"aliases": [],
|
|
|
|
"apps": [],
|
|
|
|
"custom_domains": [],
|
|
|
|
}
|
|
|
|
|
|
|
|
for alias in Alias.filter_by(user_id=user.id).all(): # type: Alias
|
|
|
|
data["aliases"].append(dict(email=alias.email, enabled=alias.enabled))
|
|
|
|
|
|
|
|
for custom_domain in CustomDomain.filter_by(user_id=user.id).all():
|
|
|
|
data["custom_domains"].append(custom_domain.domain)
|
|
|
|
|
|
|
|
for app in Client.filter_by(user_id=user.id): # type: Client
|
2021-04-06 19:46:21 +02:00
|
|
|
data["apps"].append(dict(name=app.name, home_url=app.home_url))
|
2021-03-06 21:56:42 +01:00
|
|
|
|
|
|
|
return jsonify(data)
|
|
|
|
|
|
|
|
|
|
|
|
@api_bp.route("/export/aliases", methods=["GET"])
|
|
|
|
@require_api_auth
|
|
|
|
def export_aliases():
|
|
|
|
"""
|
|
|
|
Get user aliases as importable CSV file
|
|
|
|
Output:
|
|
|
|
Importable CSV file
|
|
|
|
|
|
|
|
"""
|
2022-11-23 13:51:08 +01:00
|
|
|
return alias_export_csv(g.user)
|