✨ Publish until
This commit is contained in:
		@@ -19,15 +19,16 @@ func createArticle(c *fiber.Ctx) error {
 | 
			
		||||
	user := c.Locals("user").(models.Account)
 | 
			
		||||
 | 
			
		||||
	var data struct {
 | 
			
		||||
		Title       string            `json:"title" validate:"required,max=1024"`
 | 
			
		||||
		Description *string           `json:"description" validate:"max=2048"`
 | 
			
		||||
		Content     string            `json:"content" validate:"required"`
 | 
			
		||||
		Attachments []uint            `json:"attachments"`
 | 
			
		||||
		PublishedAt *time.Time        `json:"published_at"`
 | 
			
		||||
		IsDraft     bool              `json:"is_draft"`
 | 
			
		||||
		RealmAlias  *string           `json:"realm"`
 | 
			
		||||
		Tags        []models.Tag      `json:"tags"`
 | 
			
		||||
		Categories  []models.Category `json:"categories"`
 | 
			
		||||
		Title          string            `json:"title" validate:"required,max=1024"`
 | 
			
		||||
		Description    *string           `json:"description" validate:"max=2048"`
 | 
			
		||||
		Content        string            `json:"content" validate:"required"`
 | 
			
		||||
		Attachments    []uint            `json:"attachments"`
 | 
			
		||||
		Tags           []models.Tag      `json:"tags"`
 | 
			
		||||
		Categories     []models.Category `json:"categories"`
 | 
			
		||||
		PublishedAt    *time.Time        `json:"published_at"`
 | 
			
		||||
		PublishedUntil *time.Time        `json:"published_until"`
 | 
			
		||||
		IsDraft        bool              `json:"is_draft"`
 | 
			
		||||
		RealmAlias     *string           `json:"realm"`
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if err := exts.BindAndValidate(c, &data); err != nil {
 | 
			
		||||
@@ -46,13 +47,14 @@ func createArticle(c *fiber.Ctx) error {
 | 
			
		||||
	_ = jsoniter.Unmarshal(rawBody, &bodyMapping)
 | 
			
		||||
 | 
			
		||||
	item := models.Post{
 | 
			
		||||
		Type:        models.PostTypeArticle,
 | 
			
		||||
		Body:        bodyMapping,
 | 
			
		||||
		Tags:        data.Tags,
 | 
			
		||||
		Categories:  data.Categories,
 | 
			
		||||
		IsDraft:     data.IsDraft,
 | 
			
		||||
		PublishedAt: data.PublishedAt,
 | 
			
		||||
		AuthorID:    user.ID,
 | 
			
		||||
		Type:           models.PostTypeArticle,
 | 
			
		||||
		Body:           bodyMapping,
 | 
			
		||||
		Tags:           data.Tags,
 | 
			
		||||
		Categories:     data.Categories,
 | 
			
		||||
		IsDraft:        data.IsDraft,
 | 
			
		||||
		PublishedAt:    data.PublishedAt,
 | 
			
		||||
		PublishedUntil: data.PublishedUntil,
 | 
			
		||||
		AuthorID:       user.ID,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if data.RealmAlias != nil {
 | 
			
		||||
@@ -81,14 +83,15 @@ func editArticle(c *fiber.Ctx) error {
 | 
			
		||||
	user := c.Locals("user").(models.Account)
 | 
			
		||||
 | 
			
		||||
	var data struct {
 | 
			
		||||
		Title       string            `json:"title" validate:"required,max=1024"`
 | 
			
		||||
		Description *string           `json:"description" validate:"max=2048"`
 | 
			
		||||
		Content     string            `json:"content" validate:"required"`
 | 
			
		||||
		Attachments []uint            `json:"attachments"`
 | 
			
		||||
		IsDraft     bool              `json:"is_draft"`
 | 
			
		||||
		PublishedAt *time.Time        `json:"published_at"`
 | 
			
		||||
		Tags        []models.Tag      `json:"tags"`
 | 
			
		||||
		Categories  []models.Category `json:"categories"`
 | 
			
		||||
		Title          string            `json:"title" validate:"required,max=1024"`
 | 
			
		||||
		Description    *string           `json:"description" validate:"max=2048"`
 | 
			
		||||
		Content        string            `json:"content" validate:"required"`
 | 
			
		||||
		Attachments    []uint            `json:"attachments"`
 | 
			
		||||
		Tags           []models.Tag      `json:"tags"`
 | 
			
		||||
		Categories     []models.Category `json:"categories"`
 | 
			
		||||
		IsDraft        bool              `json:"is_draft"`
 | 
			
		||||
		PublishedAt    *time.Time        `json:"published_at"`
 | 
			
		||||
		PublishedUntil *time.Time        `json:"published_until"`
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if err := exts.BindAndValidate(c, &data); err != nil {
 | 
			
		||||
@@ -114,10 +117,11 @@ func editArticle(c *fiber.Ctx) error {
 | 
			
		||||
	_ = jsoniter.Unmarshal(rawBody, &bodyMapping)
 | 
			
		||||
 | 
			
		||||
	item.Body = bodyMapping
 | 
			
		||||
	item.IsDraft = data.IsDraft
 | 
			
		||||
	item.PublishedAt = data.PublishedAt
 | 
			
		||||
	item.Tags = data.Tags
 | 
			
		||||
	item.Categories = data.Categories
 | 
			
		||||
	item.IsDraft = data.IsDraft
 | 
			
		||||
	item.PublishedAt = data.PublishedAt
 | 
			
		||||
	item.PublishedUntil = data.PublishedUntil
 | 
			
		||||
 | 
			
		||||
	if item, err := services.EditPost(item); err != nil {
 | 
			
		||||
		return fiber.NewError(fiber.StatusBadRequest, err.Error())
 | 
			
		||||
 
 | 
			
		||||
@@ -19,17 +19,18 @@ func createStory(c *fiber.Ctx) error {
 | 
			
		||||
	user := c.Locals("user").(models.Account)
 | 
			
		||||
 | 
			
		||||
	var data struct {
 | 
			
		||||
		Title       *string           `json:"title" validate:"max=1024"`
 | 
			
		||||
		Content     string            `json:"content" validate:"required,max=4096"`
 | 
			
		||||
		Location    *string           `json:"location" validate:"max=2048"`
 | 
			
		||||
		Attachments []uint            `json:"attachments"`
 | 
			
		||||
		Tags        []models.Tag      `json:"tags"`
 | 
			
		||||
		Categories  []models.Category `json:"categories"`
 | 
			
		||||
		PublishedAt *time.Time        `json:"published_at"`
 | 
			
		||||
		IsDraft     bool              `json:"is_draft"`
 | 
			
		||||
		RealmAlias  *string           `json:"realm"`
 | 
			
		||||
		ReplyTo     *uint             `json:"reply_to"`
 | 
			
		||||
		RepostTo    *uint             `json:"repost_to"`
 | 
			
		||||
		Title          *string           `json:"title" validate:"max=1024"`
 | 
			
		||||
		Content        string            `json:"content" validate:"required,max=4096"`
 | 
			
		||||
		Location       *string           `json:"location" validate:"max=2048"`
 | 
			
		||||
		Attachments    []uint            `json:"attachments"`
 | 
			
		||||
		Tags           []models.Tag      `json:"tags"`
 | 
			
		||||
		Categories     []models.Category `json:"categories"`
 | 
			
		||||
		PublishedAt    *time.Time        `json:"published_at"`
 | 
			
		||||
		PublishedUntil *time.Time        `json:"published_until"`
 | 
			
		||||
		IsDraft        bool              `json:"is_draft"`
 | 
			
		||||
		RealmAlias     *string           `json:"realm"`
 | 
			
		||||
		ReplyTo        *uint             `json:"reply_to"`
 | 
			
		||||
		RepostTo       *uint             `json:"repost_to"`
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if err := exts.BindAndValidate(c, &data); err != nil {
 | 
			
		||||
@@ -48,13 +49,14 @@ func createStory(c *fiber.Ctx) error {
 | 
			
		||||
	_ = jsoniter.Unmarshal(rawBody, &bodyMapping)
 | 
			
		||||
 | 
			
		||||
	item := models.Post{
 | 
			
		||||
		Type:        models.PostTypeStory,
 | 
			
		||||
		Body:        bodyMapping,
 | 
			
		||||
		Tags:        data.Tags,
 | 
			
		||||
		Categories:  data.Categories,
 | 
			
		||||
		IsDraft:     data.IsDraft,
 | 
			
		||||
		PublishedAt: data.PublishedAt,
 | 
			
		||||
		AuthorID:    user.ID,
 | 
			
		||||
		Type:           models.PostTypeStory,
 | 
			
		||||
		Body:           bodyMapping,
 | 
			
		||||
		Tags:           data.Tags,
 | 
			
		||||
		Categories:     data.Categories,
 | 
			
		||||
		PublishedAt:    data.PublishedAt,
 | 
			
		||||
		PublishedUntil: data.PublishedUntil,
 | 
			
		||||
		IsDraft:        data.IsDraft,
 | 
			
		||||
		AuthorID:       user.ID,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if data.ReplyTo != nil {
 | 
			
		||||
@@ -100,14 +102,15 @@ func editStory(c *fiber.Ctx) error {
 | 
			
		||||
	user := c.Locals("user").(models.Account)
 | 
			
		||||
 | 
			
		||||
	var data struct {
 | 
			
		||||
		Title       *string           `json:"title" validate:"max=1024"`
 | 
			
		||||
		Content     string            `json:"content" validate:"required,max=4096"`
 | 
			
		||||
		Location    *string           `json:"location" validate:"max=2048"`
 | 
			
		||||
		Attachments []uint            `json:"attachments"`
 | 
			
		||||
		IsDraft     bool              `json:"is_draft"`
 | 
			
		||||
		PublishedAt *time.Time        `json:"published_at"`
 | 
			
		||||
		Tags        []models.Tag      `json:"tags"`
 | 
			
		||||
		Categories  []models.Category `json:"categories"`
 | 
			
		||||
		Title          *string           `json:"title" validate:"max=1024"`
 | 
			
		||||
		Content        string            `json:"content" validate:"required,max=4096"`
 | 
			
		||||
		Location       *string           `json:"location" validate:"max=2048"`
 | 
			
		||||
		Attachments    []uint            `json:"attachments"`
 | 
			
		||||
		Tags           []models.Tag      `json:"tags"`
 | 
			
		||||
		Categories     []models.Category `json:"categories"`
 | 
			
		||||
		PublishedAt    *time.Time        `json:"published_at"`
 | 
			
		||||
		PublishedUntil *time.Time        `json:"published_until"`
 | 
			
		||||
		IsDraft        bool              `json:"is_draft"`
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if err := exts.BindAndValidate(c, &data); err != nil {
 | 
			
		||||
@@ -134,10 +137,11 @@ func editStory(c *fiber.Ctx) error {
 | 
			
		||||
	_ = jsoniter.Unmarshal(rawBody, &bodyMapping)
 | 
			
		||||
 | 
			
		||||
	item.Body = bodyMapping
 | 
			
		||||
	item.IsDraft = data.IsDraft
 | 
			
		||||
	item.PublishedAt = data.PublishedAt
 | 
			
		||||
	item.Tags = data.Tags
 | 
			
		||||
	item.Categories = data.Categories
 | 
			
		||||
	item.PublishedAt = data.PublishedAt
 | 
			
		||||
	item.PublishedUntil = data.PublishedUntil
 | 
			
		||||
	item.IsDraft = data.IsDraft
 | 
			
		||||
 | 
			
		||||
	if item, err := services.EditPost(item); err != nil {
 | 
			
		||||
		return fiber.NewError(fiber.StatusBadRequest, err.Error())
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user