* MM-22845: Added support for permalink previews. * MM-22845: Adds license to new file. * MM-22845: Adds endpoint to retrieve multiple posts by id. * MM-22845: Fix for deleted post. * MM-22845: Adds config setting for permalink previews. * MM-22845: Adds API test for new endpoint. * MM-22845: Fix typo. * MM-22845: Tests that post create or updated via App get the previewed_post prop. * MM-22845: Tests for matching permalinks. * MM-22845: Adds PreparePostForClient test for permalink previews. * MM-22845: Embeds entire post in permalink metadata. * MM-22845: Filter WS message payload of created and edited post based on permissions. * MM-22845: Runs app layer generator. * MM-22845: Lint check fix. * MM-22845: Adds feature flag. * MM-22845: Clones WS message. * MM-22845: Removes knowledge of permalink from LinkMetadata table. Removes knowledge of user id from post embedding methods in favour of a 'sanitize' method/step. * MM-22845: Handle nil post metadata. * MM-22845: Switch to cloning post. * MM-22845: Removes unused code. * MM-22845: Refactor. * MM-22845: Reverts whitespace change. * MM-22845: Removes unnecessary code. * MM-22845: Removes unnecessary function. * MM-22845: Warn but don't error if permalinked referenced post or channel is not found. * MM-22845: Fix for clone method. * MM-22845: Fix for clone method. * MM-22845: Updates translations. Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
35 строки
801 B
Go
35 строки
801 B
Go
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
// See LICENSE.txt for license information.
|
|
|
|
package model
|
|
|
|
import "encoding/json"
|
|
|
|
type Permalink struct {
|
|
PreviewPost *PreviewPost `json:"preview_post"`
|
|
}
|
|
|
|
type PreviewPost struct {
|
|
PostID string `json:"post_id"`
|
|
Post *Post `json:"post"`
|
|
TeamName string `json:"team_name"`
|
|
ChannelDisplayName string `json:"channel_display_name"`
|
|
}
|
|
|
|
func NewPreviewPost(post *Post, team *Team, channel *Channel) *PreviewPost {
|
|
if post == nil {
|
|
return nil
|
|
}
|
|
return &PreviewPost{
|
|
PostID: post.Id,
|
|
Post: post,
|
|
TeamName: team.Name,
|
|
ChannelDisplayName: channel.DisplayName,
|
|
}
|
|
}
|
|
|
|
func (o *Permalink) ToJson() string {
|
|
b, _ := json.Marshal(o)
|
|
return string(b)
|
|
}
|