Rename persprops to AboutMe
This commit is contained in:
parent
c1ba99bb77
commit
a921646f4c
@ -1,29 +1,31 @@
|
||||
package personalprops
|
||||
package aboutme
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"net/http"
|
||||
"path"
|
||||
"personalwebsite/apps/appCtx"
|
||||
"personalwebsite/errormessage"
|
||||
"personalwebsite/webfilesystem"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||
)
|
||||
|
||||
//TODO Rename to AboutMe
|
||||
type PersonalPropertiesApp struct {
|
||||
type AboutMeApp struct {
|
||||
fs *webfilesystem.WebFileSystem
|
||||
appID string
|
||||
}
|
||||
|
||||
func NewPersPropsApp(webFs *webfilesystem.WebFileSystem) *PersonalPropertiesApp {
|
||||
newApp := PersonalPropertiesApp{
|
||||
func NewAboutMeApp(webFs *webfilesystem.WebFileSystem) *AboutMeApp {
|
||||
newApp := AboutMeApp{
|
||||
fs: webFs,
|
||||
appID: "AboutMe",
|
||||
}
|
||||
return &newApp
|
||||
}
|
||||
|
||||
func (p *PersonalPropertiesApp) PublicRoutes(route *gin.RouterGroup) {
|
||||
func (p *AboutMeApp) PublicRoutes(route *gin.RouterGroup) {
|
||||
route.POST("render", func(ctx *gin.Context) {
|
||||
filePath := ctx.Query("path")
|
||||
if filePath == "" {
|
||||
@ -50,7 +52,7 @@ func (p *PersonalPropertiesApp) PublicRoutes(route *gin.RouterGroup) {
|
||||
})
|
||||
}
|
||||
|
||||
func (p *PersonalPropertiesApp) PrivateRoutes(router *gin.RouterGroup) {
|
||||
func (p *AboutMeApp) PrivateRoutes(router *gin.RouterGroup) {
|
||||
p.PublicRoutes(router)
|
||||
router.GET("writeMock", func(ctx *gin.Context) {
|
||||
err := p.WriteMock()
|
||||
@ -60,13 +62,58 @@ func (p *PersonalPropertiesApp) PrivateRoutes(router *gin.RouterGroup) {
|
||||
ctx.Status(http.StatusOK)
|
||||
})
|
||||
|
||||
router.GET("read", func(ctx *gin.Context) {
|
||||
filePath := ctx.Query("path")
|
||||
if filePath == "" {
|
||||
ctx.JSON(http.StatusBadRequest, errormessage.ErrorMessage{
|
||||
Message: "File path is empty",
|
||||
})
|
||||
return
|
||||
}
|
||||
propData, err := p.Read(filePath)
|
||||
if err != nil {
|
||||
ctx.JSON(http.StatusInternalServerError, errormessage.ErrorMessage{
|
||||
Message: err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
ctx.JSON(http.StatusOK, propData)
|
||||
})
|
||||
|
||||
router.POST("edit", func(ctx *gin.Context) {
|
||||
filePath := ctx.Query("path")
|
||||
if filePath == "" {
|
||||
ctx.JSON(http.StatusBadRequest, errormessage.ErrorMessage{
|
||||
Message: "File path is empty",
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
propsData := PropertiesFileData{}
|
||||
err := ctx.BindJSON(&propsData)
|
||||
if err != nil {
|
||||
ctx.Status(http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
|
||||
err = p.Edit(filePath, propsData)
|
||||
if err != nil {
|
||||
ctx.JSON(http.StatusInternalServerError, errormessage.ErrorMessage{
|
||||
Message: err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
ctx.Status(http.StatusOK)
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
func (p *PersonalPropertiesApp) GetAppID() string {
|
||||
func (p *AboutMeApp) GetAppID() string {
|
||||
return p.appID
|
||||
}
|
||||
|
||||
func (p *PersonalPropertiesApp) WriteMock() error {
|
||||
func (p *AboutMeApp) WriteMock() error {
|
||||
fileHeader := webfilesystem.FileHeader{
|
||||
MongoId: primitive.NewObjectID(),
|
||||
Name: "aboutme.props",
|
||||
@ -107,7 +154,41 @@ func (p *PersonalPropertiesApp) WriteMock() error {
|
||||
return err
|
||||
}
|
||||
|
||||
func (p *PersonalPropertiesApp) Render(appCtx appCtx.AppContext, filePath string) (gin.H, error) {
|
||||
func (p *AboutMeApp) Read(filePath string) (*PropertiesFileData, error) {
|
||||
propData := PropertiesFileData{}
|
||||
fileHeader, err := p.fs.Read(path.Join(filePath, "aboutme.props"), &propData)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if fileHeader.Type != "personal-properties" {
|
||||
return nil, errors.New("wrong file type")
|
||||
}
|
||||
return &propData, nil
|
||||
}
|
||||
|
||||
func (p *AboutMeApp) Edit(filePath string, blogData PropertiesFileData) error {
|
||||
propsPath := path.Join(filePath, "aboutme.props")
|
||||
fileHeader, err := p.fs.Read(propsPath, nil)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if fileHeader.Type != "personal-properties" {
|
||||
return errors.New("wrong file type")
|
||||
}
|
||||
|
||||
err = p.fs.Remove(propsPath)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
fileHeader.MongoId = primitive.NewObjectID()
|
||||
_, _, err = p.fs.Write(propsPath, fileHeader, blogData)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (p *AboutMeApp) Render(appCtx appCtx.AppContext, filePath string) (gin.H, error) {
|
||||
propsData := PropertiesFileData{}
|
||||
filePath = p.fs.RelativeToAbsolute(appCtx, filePath)
|
||||
_, err := p.fs.Read(filePath, &propsData)
|
4
main.go
4
main.go
@ -8,10 +8,10 @@ import (
|
||||
|
||||
"personalwebsite/apps"
|
||||
blogwriter "personalwebsite/apps/BlogWriter"
|
||||
"personalwebsite/apps/aboutme"
|
||||
"personalwebsite/apps/blogviewer"
|
||||
"personalwebsite/apps/finder"
|
||||
imgviewer "personalwebsite/apps/img-viewer"
|
||||
"personalwebsite/apps/personalprops"
|
||||
"personalwebsite/routes"
|
||||
"personalwebsite/wde"
|
||||
"personalwebsite/webfilesystem"
|
||||
@ -67,7 +67,7 @@ func main() {
|
||||
webde := wde.NewWDE(webfs)
|
||||
|
||||
//TODO Split to different apps init for private and public?
|
||||
persPropsApp := personalprops.NewPersPropsApp(webfs)
|
||||
persPropsApp := aboutme.NewAboutMeApp(webfs)
|
||||
finderApp := finder.NewFinderApplication(webfs)
|
||||
imgViewerApp := imgviewer.NewImgViewerApp(webfs)
|
||||
blogViewerApp := blogviewer.NewBlogViewerApp(webfs)
|
||||
|
Loading…
Reference in New Issue
Block a user