mirror of
https://github.com/pds-nest/nest.git
synced 2024-11-22 04:54:18 +00:00
Repository filtering
Now the API can be asked to give only active repos or closed ones (or both).
This commit is contained in:
parent
6d512c3abe
commit
5d45d0904c
2 changed files with 16 additions and 3 deletions
|
@ -22,4 +22,5 @@ class Repository(Base.Model):
|
|||
uses = Base.relationship("Uses", back_populates="repository")
|
||||
|
||||
def to_json(self):
|
||||
return {"id": self.id, "name": self.name, "start": self.start.isoformat(), "owner": self.owner.to_json()}
|
||||
return {"id": self.id, "name": self.name, "start": self.start.isoformat(), "isActive":self.isActive,
|
||||
"end":self.end.isoformat(),"owner": self.owner.to_json()}
|
||||
|
|
|
@ -10,9 +10,21 @@ from flask_cors import cross_origin
|
|||
def page_repository_list():
|
||||
"""
|
||||
API call that returns the list of repositories.
|
||||
:parameter onlyActive: if present, only active repos are provided
|
||||
:parameter onlyDead: if present, only dead repos are provided
|
||||
:returns: a JSON-formatted string that contains under the "content" field the list of repositories that belong to
|
||||
the user ("owner") and a list of repositories that he can spectate ("spectator").
|
||||
"""
|
||||
user = find_user(get_jwt_identity())
|
||||
return json_success({"owner": [r.to_json() for r in user.owner_of],
|
||||
"spectator": [r.repository.to_json() for r in user.authorizations]})
|
||||
owner = Repository.query.filter_by(owner_id=user.email)
|
||||
spectator = Authorization.query.filter_by(email=user.email).join(Repository)
|
||||
if request.json.get("onlyActive"):
|
||||
owner = owner.filter_by(isActive=True)
|
||||
spectator = spectator.filter(Repository.isActive == True)
|
||||
elif request.json.get("onlyDead"):
|
||||
owner = owner.filter_by(isActive=False)
|
||||
spectator = spectator.filter(Repository.isActive == False)
|
||||
owner = owner.all()
|
||||
spectator = spectator.all()
|
||||
return json_success({"owner": [r.to_json() for r in owner],
|
||||
"spectator": [r.repository.to_json() for r in spectator]})
|
||||
|
|
Loading…
Reference in a new issue