Commit 45431250 authored by Mickaël Desfrênes's avatar Mickaël Desfrênes
Browse files

add object_type to serializers

parent d0b521d8
Loading
Loading
Loading
Loading
+21 −2
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ def file_type(ftype: models.FileType) -> dict:

def metadataset(metadataset_instance: models.MetadataSet) -> dict:
    return {
        "object_type": "metadataset",
        "id": metadataset_instance.id,
        "title": metadataset_instance.title,
        "project_id": metadataset_instance.project.id,
@@ -32,6 +33,7 @@ def metadataset(metadataset_instance: models.MetadataSet) -> dict:

def metadata(metadata_instance: models.Metadata) -> dict:
    return {
        "object_type": "metadata",
        "id": metadata_instance.id,
        "title": metadata_instance.title,
        "set_id": metadata_instance.set.id if metadata_instance.set else None,
@@ -45,6 +47,7 @@ def metadata_collection_value(
    metadata_collection_value_instance: models.MetadataCollectionValue,
) -> dict:
    return {
        "object_type": "metadata_collection_value",
        "id": metadata_collection_value_instance.id,
        "meta": metadata(metadata_collection_value_instance.metadata),
        "value": metadata_collection_value_instance.value,
@@ -55,6 +58,7 @@ def metadata_resource_value(
    metadata_resource_value_instance: models.MetadataResourceValue,
) -> dict:
    return {
        "object_type": "metadata_resource_value",
        "id": metadata_resource_value_instance.id,
        "meta": metadata(metadata_resource_value_instance.metadata),
        "value": metadata_resource_value_instance.value,
@@ -70,6 +74,7 @@ def collection(
    for tag_instance in collection_instance.tags.all():
        tags.append(tag(tag_instance))
    payload = {
        "object_type": "collection",
        "id": collection_instance.id,
        "title": collection_instance.title,
        "resources_count": collection_instance.resources.filter(
@@ -123,6 +128,7 @@ def resource(resource_instance: models.Resource, include_metas: bool = True) ->
    for tag_instance in resource_instance.tags.all():
        tags.append(tag(tag_instance))
    return {
        "object_type": "resource",
        "id": resource_instance.id,
        "title": resource_instance.title,
        "tags": tags,
@@ -159,6 +165,7 @@ def file(file_instance: models.File, include_metas: bool = True) -> dict:
        ).order_by("metadata__title"):
            props.append(metadata_resource_value(prop))
    return {
        "object_type": "resource",
        "id": file_instance.id,
        "title": file_instance.title,
        "original_name": file_instance.original_name,
@@ -173,11 +180,16 @@ def file(file_instance: models.File, include_metas: bool = True) -> dict:


def metadatatype(metada_type: models.MetadataType) -> dict:
    return {"id": metada_type.id, "title": metada_type.title}
    return {
        "object_type": "metada_type",
        "id": metada_type.id,
        "title": metada_type.title,
    }


def tag(tag_instance: models.Tag) -> dict:
    return {
        "object_type": "tag",
        "id": tag_instance.id,
        "uid": tag_instance.uid,
        "label": tag_instance.label or tag_instance.uid,
@@ -187,6 +199,7 @@ def tag(tag_instance: models.Tag) -> dict:

def project(project_instance: models.Project) -> dict:
    return {
        "object_type": "project",
        "id": project_instance.pk,
        "label": project_instance.label,
        "description": project_instance.description,
@@ -194,7 +207,11 @@ def project(project_instance: models.Project) -> dict:


def permission(permission_instance: models.Permission) -> dict:
    return {"id": permission_instance.pk, "label": permission_instance.label}
    return {
        "object_type": "permission",
        "id": permission_instance.pk,
        "label": permission_instance.label,
    }


def role(role_instance: models.Role) -> dict:
@@ -202,6 +219,7 @@ def role(role_instance: models.Role) -> dict:
    for permission_instance in role_instance.permissions.all():
        permissions.append(permission(permission_instance))
    return {
        "object_type": "role",
        "id": role_instance.id,
        "label": role_instance.label,
        "permissions": permissions,
@@ -210,6 +228,7 @@ def role(role_instance: models.Role) -> dict:

def project_access(project_access_instance: models.ProjectAccess) -> dict:
    return {
        "object_type": "project_access",
        "project": project(project_access_instance.project),
        "role": role(project_access_instance.role),
        "user": project_access_instance.user.username,