GraphQL API and utilities for the rpdata project
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
package chapters
import ( "time"
"git.aiterp.net/rpdata/api/models" "github.com/globalsign/mgo/bson" )
// Add adds a new chapter.
func Add(story models.Story, title, author, source string, createdDate time.Time, finctionalDate *time.Time, commentMode models.ChapterCommentMode) (models.Chapter, error) { chapter := models.Chapter{ ID: makeChapterID(), StoryID: story.ID, Title: title, Author: author, Source: source, CreatedDate: createdDate, EditedDate: createdDate, CommentMode: commentMode, CommentsLocked: false, }
if finctionalDate != nil { chapter.FictionalDate = *finctionalDate }
err := collection.Insert(chapter) if err != nil { return models.Chapter{}, err }
if createdDate.After(story.UpdatedDate) { if err := storyCollection.UpdateId(story.ID, bson.M{"$set": bson.M{"updatedDate": createdDate}}); err == nil { story.UpdatedDate = createdDate } }
return chapter, nil }
|