Commit c89d93a4e112713fe02a8fcc366b3fcc0a9134c7
1 parent
d6081ef0
Exists in
theme-brasil-digital-from-staging
and in
9 other branches
creating person endpoint
Showing
2 changed files
with
24 additions
and
0 deletions
Show diff stats
lib/noosfero/api/v1/people.rb
| @@ -48,6 +48,13 @@ module Noosfero | @@ -48,6 +48,13 @@ module Noosfero | ||
| 48 | present person, :with => Entities::Person | 48 | present person, :with => Entities::Person |
| 49 | end | 49 | end |
| 50 | 50 | ||
| 51 | + desc "Update person information" | ||
| 52 | + post ':id' do | ||
| 53 | + return forbidden! if current_person.id.to_s != params[:id] | ||
| 54 | + current_person.update_attributes!(params[:person]) | ||
| 55 | + present current_person, :with => Entities::Person | ||
| 56 | + end | ||
| 57 | + | ||
| 51 | # Example Request: | 58 | # Example Request: |
| 52 | # POST api/v1/people?person[login]=some_login&person[password]=some_password&person[name]=Jack | 59 | # POST api/v1/people?person[login]=some_login&person[password]=some_password&person[name]=Jack |
| 53 | desc "Create person" | 60 | desc "Create person" |
test/unit/api/people_test.rb
| @@ -148,4 +148,21 @@ class PeopleTest < ActiveSupport::TestCase | @@ -148,4 +148,21 @@ class PeopleTest < ActiveSupport::TestCase | ||
| 148 | get "/api/v1/people/#{some_person.id}/permissions?#{params.to_query}" | 148 | get "/api/v1/people/#{some_person.id}/permissions?#{params.to_query}" |
| 149 | assert_equal 403, last_response.status | 149 | assert_equal 403, last_response.status |
| 150 | end | 150 | end |
| 151 | + | ||
| 152 | + should 'not update another person' do | ||
| 153 | + person = fast_create(Person, :environment_id => environment.id) | ||
| 154 | + post "/api/v1/people/#{person.id}?#{params.to_query}" | ||
| 155 | + assert_equal 403, last_response.status | ||
| 156 | + end | ||
| 157 | + | ||
| 158 | + should 'update yourself' do | ||
| 159 | + another_name = 'Another Name' | ||
| 160 | + params[:person] = {} | ||
| 161 | + params[:person][:name] = another_name | ||
| 162 | + assert_not_equal another_name, person.name | ||
| 163 | + post "/api/v1/people/#{person.id}?#{params.to_query}" | ||
| 164 | + person.reload | ||
| 165 | + assert_equal another_name, person.name | ||
| 166 | + end | ||
| 167 | + | ||
| 151 | end | 168 | end |