textualize/core/Document/UserMarkdown.go
2023-02-10 22:58:00 -06:00

52 lines
1.2 KiB
Go

package document
type UserMarkdown struct {
Id string
DocumentId string
Value string
}
type UserMarkdownCollection struct {
Values []UserMarkdown
}
var userMarkdownCollection *UserMarkdownCollection
func GetUserMarkdownCollection() *UserMarkdownCollection {
if userMarkdownCollection == nil {
userMarkdownCollection = &UserMarkdownCollection{}
}
return userMarkdownCollection
}
func (collection *UserMarkdownCollection) GetUserMarkdownByDocumentId(documentId string) *UserMarkdown {
var foundUserMarkdown *UserMarkdown
for index, m := range collection.Values {
if m.DocumentId == documentId {
foundUserMarkdown = &collection.Values[index]
break
}
}
return foundUserMarkdown
}
func (collection *UserMarkdownCollection) AddUserMarkdown(userMarkdown UserMarkdown) UserMarkdown {
collection.Values = append(collection.Values, userMarkdown)
return userMarkdown
}
func (collection *UserMarkdownCollection) UpdateUserMarkdown(userMarkdown UserMarkdown) UserMarkdown {
currentUserMarkdown := collection.GetUserMarkdownByDocumentId(userMarkdown.DocumentId)
if currentUserMarkdown != nil {
currentUserMarkdown.Value = userMarkdown.Value
} else {
collection.AddUserMarkdown(userMarkdown)
}
return userMarkdown
}