75 lines
1.4 KiB
Go
75 lines
1.4 KiB
Go
package routes
|
|
|
|
import (
|
|
"database/sql"
|
|
"strings"
|
|
)
|
|
|
|
// ############### BLOG ###############
|
|
type Post struct {
|
|
ID string `json:"id"`
|
|
Title string `json:"title"`
|
|
Author string `json:"author"`
|
|
Date string `json:"date"`
|
|
Content string `json:"content"`
|
|
Public int `json:"public"`
|
|
Vote int `json:"vote"`
|
|
}
|
|
|
|
var votelist = []Vote{}
|
|
type Vote struct {
|
|
Post string
|
|
Client string
|
|
Status string
|
|
}
|
|
|
|
func PostFromRow(post *Post, rows *sql.Rows) error{
|
|
err := rows.Scan(&post.ID, &post.Title, &post.Author, &post.Date, &post.Content, &post.Public, &post.Vote)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func GetPostByID(id string) (Post, string) {
|
|
var post Post = Post{}
|
|
post.Title = "NONE"
|
|
|
|
rows, err := DB.Query("SELECT * FROM posts WHERE id = ?", id)
|
|
|
|
if err != nil{
|
|
return post, "Server error"
|
|
}
|
|
|
|
success := rows.Next()
|
|
if !success {
|
|
rows.Close()
|
|
return post, "Post not found"
|
|
}
|
|
|
|
err = PostFromRow(&post, rows)
|
|
if err != nil {
|
|
rows.Close()
|
|
return post, "Server error"
|
|
}
|
|
rows.Close()
|
|
|
|
if post.Title == "NONE" {
|
|
return post, "Post not found"
|
|
}
|
|
|
|
return post, ""
|
|
}
|
|
|
|
func TitleToID(name string) string{
|
|
return strings.ToLower(strings.ReplaceAll(name, " ", ""))
|
|
}
|
|
|
|
// ############### SERVICES ###############
|
|
type Service struct {
|
|
Name string `json:"name"`
|
|
Desc string `json:"desc"`
|
|
Url string `json:"url"`
|
|
}
|