Add tracker labels endpoint
This commit is contained in:
parent
0b27d4285c
commit
0b70b847be
|
@ -35,7 +35,7 @@ class MailHandler:
|
|||
# u.username.tracker.1234@todo.sr.ht
|
||||
address = address[:address.rfind("@")]
|
||||
# TODO: Subscribe to trackers & tickets via email
|
||||
ticket_id = None, None
|
||||
ticket_id = None
|
||||
if address.startswith("~"):
|
||||
# TODO: user groups
|
||||
parts = address.split("/")
|
||||
|
|
|
@ -5,7 +5,7 @@ from srht.oauth import oauth, current_token
|
|||
from srht.validation import Validation
|
||||
from todosrht.access import get_tracker
|
||||
from todosrht.blueprints.api import get_user
|
||||
from todosrht.types import Tracker, TicketAccess
|
||||
from todosrht.types import Label, Tracker, TicketAccess
|
||||
|
||||
trackers = Blueprint("api.trackers", __name__)
|
||||
|
||||
|
@ -76,3 +76,16 @@ def user_tracker_by_name_DELETE(username, tracker_name):
|
|||
db.session.delete(tracker)
|
||||
db.session.commit()
|
||||
return {}, 204
|
||||
|
||||
@trackers.route("/api/user/<username>/trackers/<tracker_name>/labels")
|
||||
@trackers.route("/api/trackers/<tracker_name>/labels", defaults={"username": None})
|
||||
@oauth("trackers:read")
|
||||
def trakcer_labels_GET(username, tracker_name):
|
||||
user = get_user(username)
|
||||
tracker, access = get_tracker(user, tracker_name, user=current_token.user)
|
||||
if not tracker:
|
||||
abort(404)
|
||||
if not TicketAccess.browse in access:
|
||||
abort(401)
|
||||
labels = Label.query.filter(Label.tracker_id == tracker.id)
|
||||
return paginated_response(Label.id, labels)
|
||||
|
|
|
@ -28,6 +28,19 @@ class Label(Base):
|
|||
def __repr__(self):
|
||||
return '<Label {} {}>'.format(self.id, self.name)
|
||||
|
||||
def to_dict(self, short=False):
|
||||
return {
|
||||
"name": self.name,
|
||||
"colors": {
|
||||
"background": self.color,
|
||||
"text": self.text_color,
|
||||
},
|
||||
**({
|
||||
"created": self.created,
|
||||
"tracker": self.tracker.to_dict(short=True),
|
||||
} if not short else {})
|
||||
}
|
||||
|
||||
class TicketLabel(Base):
|
||||
__tablename__ = 'ticket_label'
|
||||
ticket_id = sa.Column(sa.Integer,
|
||||
|
|
Loading…
Reference in New Issue