Skip to content

Commit

Permalink
Additional fields for the UI (#1487)
Browse files Browse the repository at this point in the history
  • Loading branch information
Tansito authored Sep 11, 2024
1 parent 792488e commit b9830cb
Show file tree
Hide file tree
Showing 5 changed files with 67 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Generated by Django 5.1 on 2024-09-10 22:19

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
("api", "0030_alter_program_instances"),
]

operations = [
migrations.AddField(
model_name="program",
name="readable_title",
field=models.CharField(blank=True, default=None, max_length=255, null=True),
),
migrations.AddField(
model_name="provider",
name="readable_name",
field=models.CharField(blank=True, default=None, max_length=255, null=True),
),
]
6 changes: 6 additions & 0 deletions gateway/api/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,9 @@ class Provider(models.Model):
updated = models.DateTimeField(auto_now=True, null=True)

name = models.CharField(max_length=255, db_index=True, unique=True)
readable_name = models.CharField(
max_length=255, null=True, blank=True, default=None
)
url = models.TextField(null=True, blank=True, default=None)
icon_url = models.TextField(null=True, blank=True, default=None)
registry = models.CharField(max_length=255, null=True, blank=True, default=None)
Expand All @@ -76,6 +79,9 @@ class Program(ExportModelOperationsMixin("program"), models.Model):
created = models.DateTimeField(auto_now_add=True, editable=False)

title = models.CharField(max_length=255, db_index=True)
readable_title = models.CharField(
max_length=255, null=True, blank=True, default=None
)
type = models.CharField(
max_length=20,
choices=PROGRAM_TYPES,
Expand Down
13 changes: 11 additions & 2 deletions gateway/api/v1/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ class CatalogProviderSerializer(serializers.CatalogProviderSerializer):
"""

class Meta(serializers.CatalogProviderSerializer.Meta):
fields = ["name", "url", "icon_url"]
fields = ["name", "readable_name", "url", "icon_url"]


class ListCatalogSerializer(serializers.ListCatalogSerializer):
Expand All @@ -174,7 +174,15 @@ class ListCatalogSerializer(serializers.ListCatalogSerializer):
provider = CatalogProviderSerializer()

class Meta(serializers.ListCatalogSerializer.Meta):
fields = ["id", "title", "type", "description", "provider", "available"]
fields = [
"id",
"title",
"readable_title",
"type",
"description",
"provider",
"available",
]


class RetrieveCatalogSerializer(serializers.RetrieveCatalogSerializer):
Expand All @@ -188,6 +196,7 @@ class Meta(serializers.RetrieveCatalogSerializer.Meta):
fields = [
"id",
"title",
"readable_title",
"type",
"description",
"documentation_url",
Expand Down
24 changes: 24 additions & 0 deletions gateway/tests/api/test_v1_catalog.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,13 @@ def test_catalog_list_non_auth_user(self):
self.assertEqual(len(response.data), 1)

public_function = response.data[0]
provider = public_function.get("provider")
self.assertEqual(public_function.get("available"), False)
self.assertEqual(public_function.get("title"), "Public-Function")
self.assertEqual(public_function.get("readable_title"), "Public Function")
self.assertEqual(public_function.get("type"), Program.APPLICATION)
self.assertEqual(provider.get("name"), "default")
self.assertEqual(provider.get("readable_name"), "Default")

def test_catalog_list_with_auth_user_without_run_permission(self):
"""Tests catalog list authenticated without run permission."""
Expand All @@ -38,9 +42,13 @@ def test_catalog_list_with_auth_user_without_run_permission(self):
self.assertEqual(len(response.data), 1)

public_function = response.data[0]
provider = public_function.get("provider")
self.assertEqual(public_function.get("available"), False)
self.assertEqual(public_function.get("title"), "Public-Function")
self.assertEqual(public_function.get("readable_title"), "Public Function")
self.assertEqual(public_function.get("type"), Program.APPLICATION)
self.assertEqual(provider.get("name"), "default")
self.assertEqual(provider.get("readable_name"), "Default")

def test_catalog_list_with_auth_user_with_run_permission(self):
"""Tests catalog list authenticated with run permission."""
Expand All @@ -54,9 +62,13 @@ def test_catalog_list_with_auth_user_with_run_permission(self):
self.assertEqual(len(response.data), 1)

public_function = response.data[0]
provider = public_function.get("provider")
self.assertEqual(public_function.get("available"), True)
self.assertEqual(public_function.get("title"), "Public-Function")
self.assertEqual(public_function.get("readable_title"), "Public Function")
self.assertEqual(public_function.get("type"), Program.APPLICATION)
self.assertEqual(provider.get("name"), "default")
self.assertEqual(provider.get("readable_name"), "Default")

def test_catalog_retrieve_non_auth_user(self):
"""Tests catalog retrieve non-authenticated."""
Expand All @@ -69,10 +81,14 @@ def test_catalog_retrieve_non_auth_user(self):
self.assertEqual(response.status_code, status.HTTP_200_OK)

public_function = response.data
provider = public_function.get("provider")
self.assertEqual(public_function.get("available"), False)
self.assertEqual(public_function.get("title"), "Public-Function")
self.assertEqual(public_function.get("readable_title"), "Public Function")
self.assertEqual(public_function.get("type"), Program.APPLICATION)
self.assertTrue(isinstance(public_function.get("additional_info"), dict))
self.assertEqual(provider.get("name"), "default")
self.assertEqual(provider.get("readable_name"), "Default")

def test_catalog_404_retrieve_non_auth_user(self):
"""Tests catalog retrieve a non-existent function as non-authenticated."""
Expand Down Expand Up @@ -111,10 +127,14 @@ def test_catalog_retrieve_with_auth_user_without_run_permission(self):
self.assertEqual(response.status_code, status.HTTP_200_OK)

public_function = response.data
provider = public_function.get("provider")
self.assertEqual(public_function.get("available"), False)
self.assertEqual(public_function.get("title"), "Public-Function")
self.assertEqual(public_function.get("readable_title"), "Public Function")
self.assertEqual(public_function.get("type"), Program.APPLICATION)
self.assertTrue(isinstance(public_function.get("additional_info"), dict))
self.assertEqual(provider.get("name"), "default")
self.assertEqual(provider.get("readable_name"), "Default")

def test_catalog_retrieve_with_auth_user_with_run_permission(self):
"""Tests catalog retrieve as authenticated with run permission."""
Expand All @@ -130,7 +150,11 @@ def test_catalog_retrieve_with_auth_user_with_run_permission(self):
self.assertEqual(response.status_code, status.HTTP_200_OK)

public_function = response.data
provider = public_function.get("provider")
self.assertEqual(public_function.get("available"), True)
self.assertEqual(public_function.get("title"), "Public-Function")
self.assertEqual(public_function.get("readable_title"), "Public Function")
self.assertEqual(public_function.get("type"), Program.APPLICATION)
self.assertTrue(isinstance(public_function.get("additional_info"), dict))
self.assertEqual(provider.get("name"), "default")
self.assertEqual(provider.get("readable_name"), "Default")
3 changes: 3 additions & 0 deletions gateway/tests/fixtures/catalog_fixtures.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
"fields": {
"created": "2023-02-01T15:30:43.281796Z",
"title": "Public-Function",
"readable_title": "Public Function",
"type": "APPLICATION",
"image": "icr.io/awesome-namespace/awesome-title",
"author": 2,
Expand All @@ -48,6 +49,7 @@
"fields": {
"created": "2023-02-01T15:30:43.281796Z",
"title": "Private-Function",
"readable_title": "Private Function",
"image": "icr.io/awesome-namespace/awesome-title",
"author": 2,
"provider": "bfe8aa6a-2127-4123-bf57-5b547293cbea",
Expand Down Expand Up @@ -77,6 +79,7 @@
"pk": "bfe8aa6a-2127-4123-bf57-5b547293cbea",
"fields": {
"name": "default",
"readable_name": "Default",
"url": "https://example",
"icon_url": "https://example",
"created": "2023-02-01T15:30:43.281796Z",
Expand Down

0 comments on commit b9830cb

Please sign in to comment.