func (m *Message) ToBackend() proto.Message { msg := proto.Message{ UnixTime: proto.Time(m.Posted), Sender: &proto.SessionView{ IdentityView: &proto.IdentityView{ ID: proto.UserID(m.SenderID), Name: m.SenderName, ServerID: m.ServerID, ServerEra: m.ServerEra, }, SessionID: m.SessionID, }, Content: m.Content, } // ignore id parsing errors _ = msg.ID.FromString(m.ID) _ = msg.Parent.FromString(m.Parent) if m.PreviousEditID.Valid { _ = msg.PreviousEditID.FromString(m.PreviousEditID.String) } // other optionals if m.EncryptionKeyID.Valid { msg.EncryptionKeyID = m.EncryptionKeyID.String } if m.Deleted.Valid { msg.Deleted = proto.Time(m.Deleted.Time) } if m.Edited.Valid { msg.Edited = proto.Time(m.Edited.Time) } return msg }