An atproto PDS written in Go

fix putRecord updates

Changed files
+5
server
+5
server/repo.go
···
for i, op := range writes {
if op.Type != OpTypeCreate && op.Rkey == nil {
return nil, fmt.Errorf("invalid rkey")
+
} else if op.Type == OpTypeCreate && op.Rkey != nil {
+
_, _, err := r.GetRecord(context.TODO(), op.Collection+"/"+*op.Rkey)
+
if err == nil {
+
op.Type = OpTypeUpdate
+
}
} else if op.Rkey == nil {
op.Rkey = to.StringPtr(rm.clock.Next().String())
writes[i].Rkey = op.Rkey