Browse Source

Restructured Users Service files.

Billy Lynch 13 years ago
parent
commit
7767fa6db7
4 changed files with 135 additions and 115 deletions
  1. +0
    -44
      github/users.go
  2. +50
    -0
      github/users_emails.go
  3. +85
    -0
      github/users_emails_test.go
  4. +0
    -71
      github/users_test.go

+ 0
- 44
github/users.go View File

@ -106,47 +106,3 @@ func (s *UsersService) ListAll(opt *UserListOptions) ([]User, error) {
_, err = s.client.Do(req, users)
return *users, err
}
// ListEmails lists all authenticated user email addresses
//
// GitHub API docs: http://developer.github.com/v3/users/emails/#list-email-addresses-for-a-user
func (s *UsersService) ListEmails() ([]UserEmail, error) {
u := "user/emails"
req, err := s.client.NewRequest("GET", u, nil)
if err != nil {
return nil, err
}
emails := new([]UserEmail)
_, err = s.client.Do(req, emails)
return *emails, err
}
// AddEmails adds email addresses of authenticated user
//
// GitHub API docs: http://developer.github.com/v3/users/emails/#add-email-addresses
func (s *UsersService) AddEmails(emails []UserEmail) ([]UserEmail, error) {
u := "user/emails"
req, err := s.client.NewRequest("POST", u, emails)
if err != nil {
return nil, err
}
e := new([]UserEmail)
_, err = s.client.Do(req, e)
return *e, err
}
// DeleteEmails deletes email addresses from authenticated user
//
// GitHub API docs: http://developer.github.com/v3/users/emails/#delete-email-addresses
func (s *UsersService) DeleteEmails(emails []UserEmail) error {
u := "user/emails"
req, err := s.client.NewRequest("DELETE", u, emails)
if err != nil {
return err
}
_, err = s.client.Do(req, nil)
return err
}

+ 50
- 0
github/users_emails.go View File

@ -0,0 +1,50 @@
// Copyright 2013 The go-github AUTHORS. All rights reserved.
//
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package github
// ListEmails lists all authenticated user email addresses
//
// GitHub API docs: http://developer.github.com/v3/users/emails/#list-email-addresses-for-a-user
func (s *UsersService) ListEmails() ([]UserEmail, error) {
u := "user/emails"
req, err := s.client.NewRequest("GET", u, nil)
if err != nil {
return nil, err
}
emails := new([]UserEmail)
_, err = s.client.Do(req, emails)
return *emails, err
}
// AddEmails adds email addresses of authenticated user
//
// GitHub API docs: http://developer.github.com/v3/users/emails/#add-email-addresses
func (s *UsersService) AddEmails(emails []UserEmail) ([]UserEmail, error) {
u := "user/emails"
req, err := s.client.NewRequest("POST", u, emails)
if err != nil {
return nil, err
}
e := new([]UserEmail)
_, err = s.client.Do(req, e)
return *e, err
}
// DeleteEmails deletes email addresses from authenticated user
//
// GitHub API docs: http://developer.github.com/v3/users/emails/#delete-email-addresses
func (s *UsersService) DeleteEmails(emails []UserEmail) error {
u := "user/emails"
req, err := s.client.NewRequest("DELETE", u, emails)
if err != nil {
return err
}
_, err = s.client.Do(req, nil)
return err
}

+ 85
- 0
github/users_emails_test.go View File

@ -0,0 +1,85 @@
// Copyright 2013 The go-github AUTHORS. All rights reserved.
//
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package github
import (
"encoding/json"
"fmt"
"net/http"
"reflect"
"testing"
)
func TestUsersService_ListEmails(t *testing.T) {
setup()
defer teardown()
mux.HandleFunc("/user/emails", func(w http.ResponseWriter, r *http.Request) {
testMethod(t, r, "GET")
fmt.Fprint(w, `["user@example.com"]`)
})
emails, err := client.Users.ListEmails()
if err != nil {
t.Errorf("Users.ListEmails returned error: %v", err)
}
want := []UserEmail{"user@example.com"}
if !reflect.DeepEqual(emails, want) {
t.Errorf("Users.ListEmails returned %+v, want %+v", emails, want)
}
}
func TestUsersService_AddEmails(t *testing.T) {
setup()
defer teardown()
input := []UserEmail{"new@example.com"}
mux.HandleFunc("/user/emails", func(w http.ResponseWriter, r *http.Request) {
v := new([]UserEmail)
json.NewDecoder(r.Body).Decode(v)
testMethod(t, r, "POST")
if !reflect.DeepEqual(*v, input) {
t.Errorf("Request body = %+v, want %+v", *v, input)
}
fmt.Fprint(w, `["old@example.com", "new@example.com"]`)
})
emails, err := client.Users.AddEmails(input)
if err != nil {
t.Errorf("Users.AddEmails returned error: %v", err)
}
want := []UserEmail{"old@example.com", "new@example.com"}
if !reflect.DeepEqual(emails, want) {
t.Errorf("Users.AddEmails returned %+v, want %+v", emails, want)
}
}
func TestUsersService_DeleteEmails(t *testing.T) {
setup()
defer teardown()
input := []UserEmail{"user@example.com"}
mux.HandleFunc("/user/emails", func(w http.ResponseWriter, r *http.Request) {
v := new([]UserEmail)
json.NewDecoder(r.Body).Decode(v)
testMethod(t, r, "DELETE")
if !reflect.DeepEqual(*v, input) {
t.Errorf("Request body = %+v, want %+v", *v, input)
}
})
err := client.Users.DeleteEmails(input)
if err != nil {
t.Errorf("Users.DeleteEmails returned error: %v", err)
}
}

+ 0
- 71
github/users_test.go View File

@ -108,74 +108,3 @@ func TestUsersService_ListAll(t *testing.T) {
t.Errorf("Users.ListAll returned %+v, want %+v", users, want)
}
}
func TestUsersService_ListEmails(t *testing.T) {
setup()
defer teardown()
mux.HandleFunc("/user/emails", func(w http.ResponseWriter, r *http.Request) {
testMethod(t, r, "GET")
fmt.Fprint(w, `["user@example.com"]`)
})
emails, err := client.Users.ListEmails()
if err != nil {
t.Errorf("Users.ListEmails returned error: %v", err)
}
want := []UserEmail{"user@example.com"}
if !reflect.DeepEqual(emails, want) {
t.Errorf("Users.ListEmails returned %+v, want %+v", emails, want)
}
}
func TestUsersService_AddEmails(t *testing.T) {
setup()
defer teardown()
input := []UserEmail{"new@example.com"}
mux.HandleFunc("/user/emails", func(w http.ResponseWriter, r *http.Request) {
v := new([]UserEmail)
json.NewDecoder(r.Body).Decode(v)
testMethod(t, r, "POST")
if !reflect.DeepEqual(*v, input) {
t.Errorf("Request body = %+v, want %+v", *v, input)
}
fmt.Fprint(w, `["old@example.com", "new@example.com"]`)
})
emails, err := client.Users.AddEmails(input)
if err != nil {
t.Errorf("Users.AddEmails returned error: %v", err)
}
want := []UserEmail{"old@example.com", "new@example.com"}
if !reflect.DeepEqual(emails, want) {
t.Errorf("Users.AddEmails returned %+v, want %+v", emails, want)
}
}
func TestUsersService_DeleteEmails(t *testing.T) {
setup()
defer teardown()
input := []UserEmail{"user@example.com"}
mux.HandleFunc("/user/emails", func(w http.ResponseWriter, r *http.Request) {
v := new([]UserEmail)
json.NewDecoder(r.Body).Decode(v)
testMethod(t, r, "DELETE")
if !reflect.DeepEqual(*v, input) {
t.Errorf("Request body = %+v, want %+v", *v, input)
}
})
err := client.Users.DeleteEmails(input)
if err != nil {
t.Errorf("Users.DeleteEmails returned error: %v", err)
}
}

Loading…
Cancel
Save