[#164] sdk/object: Implement method to reset relation fields

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
Leonard Lyubich 2020-09-30 18:59:31 +03:00 committed by Leonard Lyubich
parent f3bddc2ba5
commit 2a2e4d8577
3 changed files with 21 additions and 0 deletions

View file

@ -143,3 +143,8 @@ func (o *RawObject) CutPayload() *RawObject {
return nil
}
// ResetRelations removes all fields of links with other objects.
func (o *RawObject) ResetRelations() {
o.resetRelations()
}

View file

@ -265,3 +265,13 @@ func TestRawObject_SetParentID(t *testing.T) {
require.Equal(t, id, obj.GetParentID())
}
func TestRawObject_ResetRelations(t *testing.T) {
obj := NewRaw()
obj.SetPreviousID(randID(t))
obj.ResetRelations()
require.Nil(t, obj.GetPreviousID())
}

View file

@ -296,6 +296,12 @@ func (o *rwObject) setParent(v *Object) {
})
}
func (o *rwObject) resetRelations() {
o.setHeaderField(func(h *object.Header) {
h.SetSplit(nil)
})
}
// GetSessionToken returns token of the session
// within which object was created.
func (o *rwObject) GetSessionToken() *token.SessionToken {