for-client API: Make screenshots a list of objects not URLs

This commit is contained in:
rubenwardy
2024-04-01 17:43:16 +01:00
parent 1be4155ab0
commit 47b2d07e89
2 changed files with 14 additions and 3 deletions

View File

@@ -578,11 +578,16 @@ class Package(db.Model):
return ret
def as_dict(self, base_url, version=None, lang="en"):
def as_dict(self, base_url, version=None, lang="en", screenshots_dict=False):
tnurl = self.get_thumb_url(1, format="png")
release = self.get_download_release(version=version)
meta = self.get_translated(lang)
if screenshots_dict:
screenshots = [ss.as_short_dict(base_url) for ss in self.screenshots]
else:
screenshots = [base_url + ss.url for ss in self.screenshots]
return {
"author": self.author.username,
"maintainers": [x.username for x in self.maintainers],
@@ -613,7 +618,7 @@ class Package(db.Model):
"provides": sorted([x.name for x in self.provides]),
"thumbnail": (base_url + tnurl) if tnurl is not None else None,
"screenshots": [base_url + ss.url for ss in self.screenshots],
"screenshots": screenshots,
"url": base_url + self.get_url("packages.download"),
"release": release and release.id,
@@ -1196,6 +1201,12 @@ class PackageScreenshot(db.Model):
"is_cover_image": self.package.cover_image == self,
}
def as_short_dict(self, base_url=""):
return {
"title": self.title,
"url": base_url + self.url,
}
class PackageUpdateTrigger(enum.Enum):
COMMIT = "New Commit"