Fix issue #3
This commit is contained in:
parent
ee63b08bd7
commit
e768ef944c
4 changed files with 16 additions and 4 deletions
3
api.go
3
api.go
|
@ -161,6 +161,9 @@ func (a *Api) getUpdates(limit int, timeout int, marker int64, types []string) (
|
|||
}
|
||||
body, err := a.client.request(http.MethodGet, "updates", values, nil)
|
||||
if err != nil {
|
||||
if err == errLongPollTimeout {
|
||||
return result, nil
|
||||
}
|
||||
return result, err
|
||||
}
|
||||
defer func() {
|
||||
|
|
|
@ -3,6 +3,7 @@ package tamtam
|
|||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"io"
|
||||
"net/http"
|
||||
"net/url"
|
||||
|
@ -10,6 +11,10 @@ import (
|
|||
"github.com/neonxp/tamtam/schemes"
|
||||
)
|
||||
|
||||
var (
|
||||
errLongPollTimeout = errors.New("timeout")
|
||||
)
|
||||
|
||||
type client struct {
|
||||
key string
|
||||
version string
|
||||
|
@ -44,7 +49,7 @@ func (cl *client) requestReader(method, path string, query url.Values, body io.R
|
|||
err, ok := err.(*url.Error)
|
||||
if ok {
|
||||
if err.Timeout() {
|
||||
return nil, nil
|
||||
return nil, errLongPollTimeout
|
||||
}
|
||||
}
|
||||
return nil, err
|
||||
|
|
|
@ -13,6 +13,7 @@ import (
|
|||
"os/signal"
|
||||
|
||||
"github.com/neonxp/tamtam"
|
||||
"github.com/neonxp/tamtam/schemes"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
@ -28,13 +29,15 @@ func main() {
|
|||
for upd := range api.GetUpdates(ctx) {
|
||||
log.Printf("Received: %#v", upd)
|
||||
switch upd := upd.(type) {
|
||||
case *tamtam.MessageCreatedUpdate:
|
||||
case *schemes.MessageCreatedUpdate:
|
||||
err := api.Messages.Send(
|
||||
tamtam.NewMessage().
|
||||
SetUser(upd.Message.Sender.UserId).
|
||||
SetText(fmt.Sprintf("Hello, %s! Your message: %s", upd.Message.Sender.Name, upd.Message.Body.Text)),
|
||||
)
|
||||
log.Printf("Answer: %#v %#v", res, err)
|
||||
if err != nil {
|
||||
log.Printf("Error: %#v", err)
|
||||
}
|
||||
default:
|
||||
log.Printf("Unknown type: %#v", upd)
|
||||
}
|
||||
|
|
|
@ -12,6 +12,7 @@ import (
|
|||
"os"
|
||||
|
||||
"github.com/neonxp/tamtam"
|
||||
"github.com/neonxp/tamtam/schemes"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
@ -38,7 +39,7 @@ func main() {
|
|||
upd := <-ch
|
||||
log.Printf("Received: %#v", upd)
|
||||
switch upd := upd.(type) {
|
||||
case tamtam.MessageCreatedUpdate:
|
||||
case *schemes.MessageCreatedUpdate:
|
||||
err := api.Messages.Send(
|
||||
tamtam.NewMessage().
|
||||
SetUser(upd.Message.Sender.UserId).
|
||||
|
|
Loading…
Reference in a new issue