def add_app(): app_schema = App.from_json(json.loads(request.data.decode('utf-8'))) if app_schema.errors: return {'errors': app_schema.errors}, 400 user = User.query.filter(User.id == app_schema.data['user_id']).first() if not user: return {'errors': {'user': '******'}}, 400 app = App(**app_schema.data) app.secret = app.generate_auth_token() db.session.add(app) db.session.commit() return app, 201
def edit_app(app_id): app = App.query.get_or_404(app_id) app_schema = App.from_json(json.loads(request.data.decode('utf-8')), partial=True) if app_schema.errors: return {'errors': app_schema.errors}, 400 if 'user_id' in app_schema.data: user = User.query.filter(User.id == app_schema.data['user_id']).first() if not user: return {'errors': {'user': '******'}}, 400 for field, value in app_schema.data.items(): if hasattr(app, field): setattr(app, field, value) db.session.commit() return app, 200