func (tl *transactionEventLogger) logEvent(eventType string, resource *schema.Resource, version int64) error { schemaManager := schema.GetManager() eventSchema, ok := schemaManager.Schema("event") if !ok { return fmt.Errorf("event schema not found") } if resource.Schema().Metadata["nosync"] == true { log.Debug("skipping event logging for schema: %s", resource.Schema().ID) return nil } body, err := resource.JSONString() if err != nil { return fmt.Errorf("Error during event resource deserialisation: %s", err.Error()) } eventResource, err := schema.NewResource(eventSchema, map[string]interface{}{ "type": eventType, "path": resource.Path(), "version": version, "body": body, "timestamp": int64(time.Now().Unix()), }) tl.eventLogged = true return tl.Transaction.Create(eventResource) }