blog

package
v0.0.0-...-84f9aa2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 19, 2023 License: MIT Imports: 23 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Add

func Add(clients *conn.Clients, b *Blog) (int64, error)

Add creates a new blog post

func AddTag

func AddTag(clients *conn.Clients, idBlog int64, t *Tag) (int64, error)

AddTag inserts a tag into the tag table

func Delete

func Delete(clients *conn.Clients, idBlog int64) error

Delete delete blog post

func DeleteTag

func DeleteTag(clients *conn.Clients, idBlog int64, tag string) error

DeleteTag deletes a tag from the tag table

func DeleteTagsCSV

func DeleteTagsCSV(tx *sql.Tx, idBlog int64) error

DeleteTagsCSV Deletes a record from blog_tags. Only works as part of a transaction since all non-read tag operations are interdependent.

func GetFrequentTags

func GetFrequentTags(clients *conn.Clients) ([]*string, error)

GetFrequentTags gets most frequently used tags

func GetIDAuthor

func GetIDAuthor(clients *conn.Clients, idBlog int64) (int64, error)

GetIDAuthor gets author ID of blog

func GetIDByTag

func GetIDByTag(clients *conn.Clients, tag string) (int64, error)

GetIDByTag gets a tag ID by its tag

func GetTagByID

func GetTagByID(clients *conn.Clients, idTag int64) (string, error)

GetTagByID gets a tag by its tag ID

func GetTagsCSV

func GetTagsCSV(clients *conn.Clients, idBlog int64) (string, error)

GetTagsCSV Get CSV of a blog's tags

func GetViews

func GetViews(clients *conn.Clients, idBlog int64) (int64, error)

GetViews gets blog view count

func IncrViews

func IncrViews(clients *conn.Clients, idBlog int64) (int64, error)

IncrViews increments blog views

func RouteBlog

func RouteBlog(clients *conn.Clients) chi.Router

RouteBlog handles all requests to /blog/

func RouteTag

func RouteTag(clients *conn.Clients) chi.Router

RouteTag handles all requests to /blog/tag

func SetTagsCSV

func SetTagsCSV(tx *sql.Tx, idBlog int64, tagCsv string) error

SetTagsCSV Sets a blog's tag string in CSV. Only works as part of a transaction since all non-read tag operations are interdependent.

func Update

func Update(clients *conn.Clients, b *Blog) error

Update update blog post

func UpdateSettings

func UpdateSettings(clients *conn.Clients, b *Blog) error

UpdateSettings saves blog settings

Types

type Blog

type Blog struct {
	ID               int64    `db:"id_blog,omitempty" json:"idPost,omitempty" validate:"min=0"`
	IDAuthor         int64    `db:"id_author,omitempty" json:"idAuthor,omitempty" validate:"required,min=0"`
	Title            string   `db:"title,omitempty" json:"title,omitempty" validate:"required,max=255"`
	Post             string   `db:"post,omitempty" json:"post,omitempty" validate:"required,max=16777215"`
	WordCount        int      `db:"word_count,omitempty" json:"wordCount,omitempty" validate:"required"`
	Created          string   `db:"created,omitempty" json:"created,omitempty"`
	Modified         string   `db:"modified,omitempty" json:"modified,omitempty"`
	ModifiedDatetime string   `db:"modified,omitempty" json:"modifiedDatetime,omitempty"`
	IsUnlisted       bool     `db:"is_unlisted,omitempty" json:"isUnlisted,omitempty"`
	IsDraft          bool     `db:"is_draft,omitempty" json:"isDraft,omitempty"`
	Tags             []string `db:"tags,omitempty" json:"tags,omitempty"`
}

Blog contains data from the blog tables

func Get

func Get(clients *conn.Clients, idBlog int64) (*Blog, error)

Get gets single blog post and its settings

func GetLatest

func GetLatest(clients *conn.Clients, pageNum int, pageSize int) ([]*Blog, error)

GetLatest gets latest blogs posted

func GetLatestByTag

func GetLatestByTag(clients *conn.Clients, tag string, pageNum int, pageSize int) ([]*Blog, error)

GetLatestByTag gets latest blogs posted by tag

func GetPost

func GetPost(clients *conn.Clients, idBlog int64) (*Blog, error)

GetPost gets single blog post

func GetPostInit

func GetPostInit(clients *conn.Clients, idBlog int64) (*Blog, error)

GetPostInit gets blog settings and credentials used for retrieving details from GetPost.

func GetRecentAuthorBlogs

func GetRecentAuthorBlogs(clients *conn.Clients, idAuthor int64) ([]*Blog, error)

GetRecentAuthorBlogs gets all recent blogs by an author

type Tag

type Tag struct {
	ID        int64  `db:"id_user,omitempty" json:"id,omitempty"`
	Tag       string `db:"tag,omitempty" json:"tag,omitempty"`
	Frequency string `db:"frequency,omitempty" json:"frequency,omitempty"`
}

Tag contains data from tag table

func (*Tag) Validate

func (t *Tag) Validate() error

Validate a tag

type TagCSV

type TagCSV struct {
	Tags sql.NullString `db:"tags,omitempty" json:"tags,omitempty"`
}

TagCSV contains data from blog_tags table

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL