Skip to content

Commit d67d884

Browse files
committed
🔊 [#586] Add log events for creation/updating of objects
1 parent 119504f commit d67d884

1 file changed

Lines changed: 22 additions & 1 deletion

File tree

src/objects/api/serializers.py

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
11
from django.db import transaction
22
from django.utils.translation import gettext_lazy as _
33

4+
import structlog
45
from rest_framework import serializers
56
from rest_framework_gis.serializers import GeometryField
67

78
from objects.core.models import Object, ObjectRecord, ObjectType
8-
from objects.token.models import Permission
9+
from objects.token.models import Permission, TokenAuth
910
from objects.utils.serializers import DynamicFieldsMixin
1011

1112
from .fields import ObjectSlugRelatedField, ObjectTypeField, ObjectUrlField
1213
from .utils import merge_patch
1314
from .validators import GeometryValidator, IsImmutableValidator, JsonSchemaValidator
1415

16+
logger = structlog.stdlib.get_logger(__name__)
17+
1518

1619
class ObjectRecordSerializer(serializers.ModelSerializer):
1720
correctionFor = ObjectSlugRelatedField(
@@ -121,6 +124,15 @@ def create(self, validated_data):
121124

122125
validated_data["object"] = object
123126
record = super().create(validated_data)
127+
token_auth: TokenAuth = self.context["request"].auth
128+
logger.info(
129+
"object_created",
130+
object_uuid=str(object.uuid),
131+
objecttype_uuid=str(object.object_type.uuid),
132+
objecttype_version=record.version,
133+
token_identifier=token_auth.identifier,
134+
token_application=token_auth.application,
135+
)
124136
return record
125137

126138
@transaction.atomic
@@ -140,6 +152,15 @@ def update(self, instance, validated_data):
140152
validated_data["data"] = merge_patch(instance.data, validated_data["data"])
141153

142154
record = super().create(validated_data)
155+
token_auth: TokenAuth = self.context["request"].auth
156+
logger.info(
157+
"object_updated",
158+
object_uuid=str(record.object.uuid),
159+
objecttype_uuid=str(record.object.object_type.uuid),
160+
objecttype_version=record.version,
161+
token_identifier=token_auth.identifier,
162+
token_application=token_auth.application,
163+
)
143164
return record
144165

145166

0 commit comments

Comments
 (0)