From cfa12717e04278cdf04f32da93cbe28e5ed7f14b Mon Sep 17 00:00:00 2001 From: Tobias Date: Tue, 2 Apr 2019 16:58:59 +0200 Subject: [PATCH] added toJSON func --- api/auth_api.py | 3 ++- models/user_model.py | 16 +++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/api/auth_api.py b/api/auth_api.py index 2247d64..845048a 100644 --- a/api/auth_api.py +++ b/api/auth_api.py @@ -117,7 +117,8 @@ def oidc(): user = create_or_retrieve_user_from_userinfo(flask.session['userinfo']) - return jsonify(user.to_dict()) + #return jsonify(user.to_dict()) + return user.toJSON() if user is None: return "Could not authenticate: could not find or create user.", 401 if current_app.config.get("AUTH_RETURN_EXTERNAL_JWT", False): diff --git a/models/user_model.py b/models/user_model.py index 077b0bd..a564bf4 100644 --- a/models/user_model.py +++ b/models/user_model.py @@ -2,6 +2,8 @@ """ Example user model and related models """ +import json + from sqlalchemy.orm import relation from sqlalchemy import MetaData @@ -347,7 +349,12 @@ class User(UserMixin, db.Model): followers.c.follower_id == self.id).order_by(Post.timestamp.desc()) def to_dict(self): - return dict(id=self.id, email=self.email, groups=self.groups) + #return self.__dict__ + return dict(id=self.id, email=self.email, groups=[g.to_dict() for g in self.groups]) + + def toJSON(self): + return json.dumps(self.to_dict(), default=lambda o: o.__dict__, + sort_keys=True, indent=4) def __repr__(self): return '' % self.nickname @@ -403,3 +410,10 @@ class Group(db.Model): def __str__(self): return self.name + + def to_dict(self): + return dict(id=self.id, name=self.name) + + def toJSON(self): + return json.dumps(self.to_dict(), default=lambda o: o.__dict__, + sort_keys=True, indent=4)