oncall-engine/engine/apps/public_api/serializers/alerts.py
Joey Orlando 3b274f45f4
add several new database columns + emit two new Django signals (#1522)
# What this PR does

- add new columns `gcom_org_contract_type`,
`gcom_org_irm_sku_subscription_start_date`, and
`gcom_org_oldest_admin_with_billing_privileges_user_id` to
`user_management_organization` table + `is_restricted` column to
`alerts_alertgroup` table
- emit two new Django signals
- `org_sync_signal` at the end of the
`engine/apps/user_management/sync.py::sync_organization` method
  - `alert_group_created_signal` when a new Alert Group is created

## Checklist

- [ ] Tests updated (N/A)
- [ ] Documentation added (N/A)
- [x] `CHANGELOG.md` updated

---------

Co-authored-by: Rares Mardare <rares.mardare@grafana.com>
2023-04-14 09:15:57 +02:00

24 lines
741 B
Python

from rest_framework import serializers
from apps.alerts.models import Alert
from common.api_helpers.mixins import EagerLoadingMixin
class AlertSerializer(EagerLoadingMixin, serializers.ModelSerializer):
id = serializers.CharField(read_only=True, source="public_primary_key")
alert_group_id = serializers.CharField(read_only=True, source="group.public_primary_key")
payload = serializers.SerializerMethodField(read_only=True)
SELECT_RELATED = ["group"]
class Meta:
model = Alert
fields = [
"id",
"alert_group_id",
"created_at",
"payload",
]
def get_payload(self, obj):
return {} if obj.group.is_restricted else obj.raw_request_data