Advertisement
Guest User

Controller Address

a guest
Aug 21st, 2014
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 2.49 KB | None | 0 0
  1. class Api::V1::AddressesController < Api::V1Controller
  2.   before_action :authenticate_user_with_token!, :set_header
  3.   before_action :address_params, only: [:update]
  4.  
  5.   resource_description do
  6.     resource_id "address"
  7.     formats ['json']
  8.     meta :author => {:name => 'Rodrigo', :surname => 'Lopes'}
  9.   end
  10.  
  11.   api :PUT, "/api/v1/address", "Update user address"
  12.   param :address, Hash, required: true do
  13.     # param :diagnosis, String, desc: "Diagnosis, one of: #{::Patient::Profile::DIAGNOSES.inspect}"
  14.     param :type_of_property, String, desc: "Type of property, one of: #{::User::Address::OPT_TYPE_OF_PROPERTY.inspect}"
  15.     param :size_of_outdoor_area, String, desc: "Size of outdoor area, one of: #{::User::Address::OPT_SIZE_OF_OUTDOOR_AREA.inspect}"
  16.     param :kids_under_eighteen, String, desc: "kinds under eighteen, one of: #{::User::Address::OPT_YES_NO.inspect}"
  17.     param :primary_income, String, desc: "Primary income, one of: #{::User::Address::OPT_YES_NO.inspect}"
  18.     param :supervision_alltime, String, desc: "Supervision alltime, one of: #{::User::Address::OPT_YES_NO.inspect}"
  19.     param :emergency_transportation, String, desc: "Emergency transportation, one of: #{::User::Address::OPT_YES_NO.inspect}"
  20.     param :street_one, String, desc: "Street name one", required: true
  21.     param :street_two, String, desc: "Street name two", required: false
  22.     param :city, String, desc: "City name", required: true
  23.     param :country, String, desc: "Country name", required: true
  24.     param :house_number, Integer, desc: "House's number", required: true
  25.   end
  26.  
  27.   def update
  28.     if current_user.address.nil?
  29.       @address = current_user.build_address
  30.     else
  31.       @address = current_user.address
  32.     end
  33.  
  34.     render json: {result: true}
  35.      
  36.     # if @address.update_attributes(address_params)
  37.     #   render 'update_success'
  38.     # else
  39.     #   render 'update_failure'
  40.     # end
  41.   end
  42.  
  43.   api :GET, "/api/v1/address", "Get user address"
  44.   def show
  45.     @address = current_user.address
  46.   end
  47.  
  48.   private
  49.     def set_header
  50.       response.headers['X-Resource'] = 'address'
  51.     end
  52.  
  53.     def address_params
  54.       params.require(:address).permit(
  55.         :type_of_property,
  56.         :size_of_outdoor_area,
  57.         :kids_under_eighteen,
  58.         :primary_income,
  59.         :supervision_alltime,
  60.         :emergency_transportation,
  61.         :street_one,
  62.         :street_two,
  63.         :post_code,
  64.         :city,
  65.         :country,
  66.         :house_number
  67.       )
  68.     end
  69.  
  70. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement