Browse Source

Added ListEventsRecievedByUser

Added functionality for ListEventsRecievedByUser. Api reference: http://developer.github.com/v3/activity/events/#list-events-that-a-user-has-received
Arıl Bozoluk 13 years ago
committed by Will Norris
parent
commit
719fe70855
2 changed files with 73 additions and 0 deletions
  1. +29
    -0
      github/activity_events.go
  2. +44
    -0
      github/activity_events_test.go

+ 29
- 0
github/activity_events.go View File

@ -86,3 +86,32 @@ func (s *ActivityService) ListEventsPerformedByUser(user string, publicOnly bool
resp, err := s.client.Do(req, events)
return *events, resp, err
}
// ListEventsRecievedByUser lists the events recieved by a user. If publicOnly is
// true, only public events will be returned.
//
// GitHub API docs: http://developer.github.com/v3/activity/events/#list-events-that-a-user-has-received
func (s *ActivityService) ListEventsRecievedByUser(user string, publicOnly bool, opt *ListOptions) ([]Event, *Response, error) {
var u string
if publicOnly {
u = fmt.Sprintf("users/%v/received_events/public", user)
} else {
u = fmt.Sprintf("users/%v/received_events", user)
}
if opt != nil {
params := url.Values{
"page": []string{strconv.Itoa(opt.Page)},
}
u += "?" + params.Encode()
}
req, err := s.client.NewRequest("GET", u, nil)
if err != nil {
return nil, nil, err
}
events := new([]Event)
resp, err := s.client.Do(req, events)
return *events, resp, err
}

+ 44
- 0
github/activity_events_test.go View File

@ -57,6 +57,50 @@ func TestActivityService_ListEventsPerformedByUser_publicOnly(t *testing.T) {
}
}
func TestActivityService_ListEventsRecievedByUser_all(t *testing.T) {
setup()
defer teardown()
mux.HandleFunc("/users/u/received_events", func(w http.ResponseWriter, r *http.Request) {
testMethod(t, r, "GET")
testFormValues(t, r, values{
"page": "2",
})
fmt.Fprint(w, `[{"id":"1"},{"id":"2"}]`)
})
opt := &ListOptions{Page: 2}
events, _, err := client.Activity.ListEventsRecievedByUser("u", false, opt)
if err != nil {
t.Errorf("Events.ListRecievedByUser returned error: %v", err)
}
want := []Event{Event{ID: "1"}, Event{ID: "2"}}
if !reflect.DeepEqual(events, want) {
t.Errorf("Events.ListRecievedUser returned %+v, want %+v", events, want)
}
}
func TestActivityService_ListEventsRecievedByUser_publicOnly(t *testing.T) {
setup()
defer teardown()
mux.HandleFunc("/users/u/received_events/public", func(w http.ResponseWriter, r *http.Request) {
testMethod(t, r, "GET")
fmt.Fprint(w, `[{"id":"1"},{"id":"2"}]`)
})
events, _, err := client.Activity.ListEventsRecievedByUser("u", true, nil)
if err != nil {
t.Errorf("Events.ListRecievedByUser returned error: %v", err)
}
want := []Event{Event{ID: "1"}, Event{ID: "2"}}
if !reflect.DeepEqual(events, want) {
t.Errorf("Events.ListRecievedByUser returned %+v, want %+v", events, want)
}
}
func TestActivity_EventPayload_typed(t *testing.T) {
raw := []byte(`{"type": "PushEvent","payload":{"push_id": 1}}`)
var event *Event


Loading…
Cancel
Save