summaryrefslogtreecommitdiff
path: root/admin.go
diff options
context:
space:
mode:
Diffstat (limited to 'admin.go')
-rw-r--r--admin.go14
1 files changed, 14 insertions, 0 deletions
diff --git a/admin.go b/admin.go
index fcbb62e..570d94c 100644
--- a/admin.go
+++ b/admin.go
@@ -734,6 +734,20 @@ traverseLoop:
return nil
}
+// RemoveMetaFields removes meta fields like "@id" from a JSON message.
+func RemoveMetaFields(rawJSON []byte) []byte {
+ return idRegexp.ReplaceAllFunc(rawJSON, func(in []byte) []byte {
+ // matches with a comma on both sides (when "@id" property is
+ // not the first or last in the object) need to keep exactly
+ // one comma for correct JSON syntax
+ comma := []byte{','}
+ if bytes.HasPrefix(in, comma) && bytes.HasSuffix(in, comma) {
+ return comma
+ }
+ return []byte{}
+ })
+}
+
// AdminHandler is like http.Handler except ServeHTTP may return an error.
//
// If any handler encounters an error, it should be returned for proper