package controllers
import (
"github.com/astaxie/beego"
"strconv"
"beeblog/models"
"beeblog/service"
)
type NoteController struct {
beego . Controller
}
func ( this * NoteController ) Save ( ) {
noteService := service . NoteService { }
pid , _ := this . GetInt64 ( "pid" )
title := this . GetString ( "title" )
uid := this . GetSession ( "userid" )
if uid == nil {
this . Data [ "json" ] = models . ReurnError ( 401 , "保存失败" )
this . ServeJSON ( )
return
}
note := & models . Note { Title : title , Pid : pid , UserId : uid . ( int64 ) }
err := noteService . SaveNote ( note )
if err == nil {
this . Data [ "json" ] = note
} else {
this . Data [ "json" ] = models . ReurnError ( 500 , "保存失败" )
}
this . ServeJSON ( )
return
}
func ( this * NoteController ) Edit ( ) {
noteService := service . NoteService { }
idStr := this . Ctx . Input . Param ( ":id" )
noteHtml := this . GetString ( "noteHtml" )
id , _ := strconv . ParseInt ( idStr , 10 , 64 )
uid := this . GetSession ( "userid" )
if uid == nil {
this . Data [ "json" ] = models . ReurnError ( 401 , "" )
this . ServeJSON ( )
return
}
note := & models . Note { Id : id }
err1 := noteService . GetNote ( note )
if err1 != nil {
this . Data [ "json" ] = models . ReurnError ( 500 , "保存失败" )
this . ServeJSON ( )
return
}
if uid != note . UserId {
this . Data [ "json" ] = models . ReurnError ( 403 , "" )
this . ServeJSON ( )
return
}
note . NoteHtml = noteHtml
err := noteService . EditNote ( note )
if err == nil {
this . Data [ "json" ] = models . ReurnSuccess ( "" )
} else {
this . Data [ "json" ] = models . ReurnError ( 500 , "保存失败" )
}
this . ServeJSON ( )
return
}
func ( this * NoteController ) SaveNoteColl ( ) {
noteService := service . NoteService { }
title := this . GetString ( "title" )
uid := this . GetSession ( "userid" )
if uid == nil {
this . Data [ "json" ] = models . ReurnError ( 401 , "" )
this . ServeJSON ( )
return
}
note := & models . NoteColl { Title : title , UserId : uid . ( int64 ) }
err := noteService . SaveNoteColl ( note )
if err == nil {
this . Data [ "json" ] = models . ReurnData ( "" , note )
} else {
this . Data [ "json" ] = models . ReurnError ( 500 , "保存失败" )
}
this . ServeJSON ( )
return
}
func ( this * NoteController ) EditNoteColl ( ) {
noteService := service . NoteService { }
title := this . GetString ( "title" )
id , _ := this . GetInt64 ( "id" )
uid := this . GetSession ( "userid" )
if uid == nil {
this . Data [ "json" ] = models . ReurnError ( 401 , "" )
this . ServeJSON ( )
return
}
err := noteService . EditNoteColl ( title , id , uid . ( int64 ) )
if err == nil {
this . Data [ "json" ] = models . ReurnSuccess ( "" )
} else {
this . Data [ "json" ] = models . ReurnError ( 500 , "保存失败" )
}
this . ServeJSON ( )
return
}
func ( this * NoteController ) Get ( ) {
noteService := service . NoteService { }
uid := this . GetSession ( "userid" )
if uid == nil {
this . Data [ "json" ] = models . ReurnError ( 401 , "" )
this . ServeJSON ( )
return
}
idStr := this . Ctx . Input . Param ( ":id" )
id , _ := strconv . ParseInt ( idStr , 10 , 64 )
note := & models . Note { Id : id }
err := noteService . GetNote ( note )
if err == nil {
this . Data [ "json" ] = note
}
if note . UserId != uid . ( int64 ) {
this . Data [ "json" ] = models . ReurnError ( 403 , "" )
this . ServeJSON ( )
return
}
this . ServeJSON ( )
return
}
func ( this * NoteController ) DelNoteColl ( ) {
noteService := service . NoteService { }
uid := this . GetSession ( "userid" )
if uid == nil {
this . Data [ "json" ] = models . ReurnError ( 401 , "" )
this . ServeJSON ( )
return
}
idStr := this . Ctx . Input . Param ( ":id" )
id , _ := strconv . ParseInt ( idStr , 10 , 64 )
err := noteService . DelNoteColl ( id , uid . ( int64 ) )
if err != nil {
this . Data [ "json" ] = models . ReurnError ( 500 , "" )
} else {
this . Data [ "json" ] = models . ReurnSuccess ( "" )
}
this . ServeJSON ( )
return
}
func ( this * NoteController ) Delete ( ) {
noteService := service . NoteService { }
uid := this . GetSession ( "userid" )
if uid == nil {
this . Data [ "json" ] = models . ReurnError ( 401 , "" )
this . ServeJSON ( )
return
}
idStr := this . Ctx . Input . Param ( ":id" )
id , _ := strconv . ParseInt ( idStr , 10 , 64 )
note := & models . Note { Id : id }
err := noteService . GetNote ( note )
if err != nil {
this . Data [ "json" ] = models . ReurnError ( 500 , "" )
this . ServeJSON ( )
return
}
if note . UserId != uid . ( int64 ) {
this . Data [ "json" ] = models . ReurnError ( 403 , "" )
this . ServeJSON ( )
return
}
err = noteService . DelNote ( note )
if err != nil {
this . Data [ "json" ] = models . ReurnError ( 500 , "" )
this . ServeJSON ( )
return
}
this . Data [ "json" ] = models . ReurnSuccess ( "" )
this . ServeJSON ( )
return
}
func ( this * NoteController ) Note ( ) {
noteService := service . NoteService { }
uid := this . GetSession ( "userid" )
if uid == nil {
this . Redirect ( "/login" , 302 )
}
noteColls , err := noteService . GetNoteColl ( uid . ( int64 ) )
if err == nil {
if len ( noteColls ) > 0 {
for i := 0 ; i < len ( noteColls ) ; i ++ {
notes , err1 := noteService . GetNoteByPid ( noteColls [ i ] . Id )
if err1 == nil {
noteColls [ i ] . Notes = notes
}
}
}
} else {
noteColls = make ( [ ] * models . NoteColl , 0 )
}
this . Data [ "HeadImg" ] = this . GetSession ( "headimg" )
this . Data [ "NickName" ] = this . GetSession ( "nickname" )
this . Data [ "NoteColls" ] = noteColls
this . TplName = "note.html"
}