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

     1  package apis
     2  
     3  import (
     4  	"github.com/insionng/makross"
     5  
     6  	"time"
     7  	"github.com/insionng/yougam/models"
     8  )
     9  
    10  func GetMessagesHandler(self *makross.Context) error {
    11  
    12  	_usr_, okay := self.Session.Get("SignedUser").(*models.User)
    13  	if !okay {
    14  		return self.NoContent(401)
    15  	}
    16  
    17  	ticker := time.NewTicker(30 * time.Second)
    18  	for {
    19  		select {
    20  		case <-ticker.C:
    21  			return self.JSON(nil, 204)
    22  		default:
    23  			if messages, e := models.GetMessagesViaReceiver(0, 0, _usr_.Username, "created"); (!(e != nil)) && (len(*messages) > 0) {
    24  				return self.JSON(messages)
    25  
    26  			} else {
    27  				time.Sleep(time.Second * 3)
    28  			}
    29  		}
    30  	}
    31  
    32  }