From 74f38d4dc0dc0f0aaa4a797aac4e6cfce9511e46 Mon Sep 17 00:00:00 2001 From: DaniloBarros Date: Sep 12 2017 19:47:34 +0000 Subject: Added Upstream URL to /packages - Changed Relationship between Packages and Fetchers t o support bidirectional - Changed PackageSchema to support target Signed-off-by: Vitor Borges Signed-off-by: Gabrielsclimaco --- diff --git a/kiskadee/api/app.py b/kiskadee/api/app.py index 0b3758c..d612190 100644 --- a/kiskadee/api/app.py +++ b/kiskadee/api/app.py @@ -19,9 +19,8 @@ def index(): if request.method == 'GET': db_session = kiskadee_db_session() fetchers = db_session.query(Fetcher).all() - fetcher_schema = FetcherSchema(many=True) - result = fetcher_schema.dump(fetchers) - return jsonify({'fetchers': result.data}) + fetchers_res = FetcherSchema(many=True).dump(fetchers) + return jsonify({'fetchers': fetchers_res.data}) @kiskadee.route('/packages') diff --git a/kiskadee/api/serializers.py b/kiskadee/api/serializers.py index 5b19b8c..73f18b8 100644 --- a/kiskadee/api/serializers.py +++ b/kiskadee/api/serializers.py @@ -53,6 +53,7 @@ class PackageSchema(Schema): name = fields.Str() fetcher_id = fields.Int() versions = fields.Nested(VersionSchema, many=True) + target = fields.Nested(FetcherSchema, only='target') def make_object(self, data): """Serialize a Package object.""" diff --git a/kiskadee/model.py b/kiskadee/model.py index e449726..ed005ed 100644 --- a/kiskadee/model.py +++ b/kiskadee/model.py @@ -22,6 +22,7 @@ class Package(Base): Sequence('packages_id_seq', optional=True), primary_key=True) name = Column(Unicode(255), nullable=False) fetcher_id = Column(Integer, ForeignKey('fetchers.id'), nullable=False) + target = orm.relationship('Fetcher', back_populates='packages') versions = orm.relationship('Version', backref='packages') __table_args__ = ( UniqueConstraint('name', 'fetcher_id'), @@ -37,7 +38,7 @@ class Fetcher(Base): name = Column(Unicode(255), nullable=False, unique=True) target = Column(Unicode(255), nullable=True) description = Column(UnicodeText) - packages = orm.relationship('Package', backref='fetchers') + packages = orm.relationship('Package', back_populates='target') class Version(Base):