github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/routers/ViewHandler.go (about)

     1  package routers
     2  
     3  import (
     4  	"fmt"
     5  	"github.com/insionng/makross"
     6  	"github.com/insionng/yougam/helper"
     7  	"github.com/insionng/yougam/models"
     8  )
     9  
    10  func GetTouchViewHandler(self *makross.Context) error {
    11  
    12  	name := self.Param("name").String()
    13  	id := self.Param("id").MustInt64()
    14  
    15  	if (len(name) > 0) && (id > 0) && (!helper.IsSpider(self.UserAgent())) {
    16  		if name == "topic" {
    17  
    18  			if tp, err := models.GetTopic(id); tp != nil && err == nil {
    19  				tp.Views = tp.Views + 1
    20  				if row, e := models.PutViews2TopicViaVersion(id, tp); (e == nil) && (row > 0) {
    21  					return self.String(fmt.Sprintf("%v", tp.Views))
    22  				} else {
    23  					return self.String(fmt.Sprintf("%v", tp.Views-1))
    24  				}
    25  			}
    26  		}
    27  
    28  	}
    29  	return self.NoContent(makross.StatusOK)
    30  }