mirror of
				https://github.com/fspc/BikeShed-1.git
				synced 2025-10-31 00:45:35 -04:00 
			
		
		
		
	WIP, cleaned up api/time_entries, added TimeEntry
* Added scoped TimeEntry model * Removed setting defaults in TimeEntry controller * Still working on tests…
This commit is contained in:
		
							parent
							
								
									c0a9d8c1e5
								
							
						
					
					
						commit
						1191014471
					
				| @ -1,25 +1,16 @@ | |||||||
| class Api::V1::TimeEntriesController < Api::V1::BaseController | class Api::V1::TimeEntriesController < Api::V1::BaseController | ||||||
|  |   EXPECTED_TIME_ENTRY = "Expected time entry in submitted data" | ||||||
|  | 
 | ||||||
|   def create |   def create | ||||||
|     if params[:time_entries] && time_entry = params[:time_entries].first |     if params[:time_entries] && time_entry = params[:time_entries].first | ||||||
|       puts time_entry.inspect |       time_entry.merge!({ loggable_id: current_user.id, | ||||||
|       time_entry_defaults = { |                           logger_id: current_user.id  }) | ||||||
|         loggable_type: "User", |  | ||||||
|         loggable_id: current_user.id, |  | ||||||
|         log_action_type: "ActsAsLoggable::UserAction"} |  | ||||||
|       time_entry.merge!(time_entry_defaults) |  | ||||||
| 
 | 
 | ||||||
|       if time_entry[:bike_id] >= 0 |       if time_entry[:bike_id] >= 0 | ||||||
|         copy_defaults = { |         time_entry.copy_to_bike_history(time_entry[:bike_id]) | ||||||
|           copy_log: true, |  | ||||||
|           copy_type: 'Bike', |  | ||||||
|           copy_id: time_entry[:bike_id], |  | ||||||
|           copy_action_type: 'ActsAsLoggable::BikeAction', |  | ||||||
|           copy_action_id: 4 |  | ||||||
|         } |  | ||||||
|         time_entry.merge!( copy_defaults ) |  | ||||||
|       end |       end | ||||||
| 
 | 
 | ||||||
|       @time_entry = ::ActsAsLoggable::Log.new(time_entry.except(:bike_id)) |       @time_entry = TimeEntry.new(time_entry.except(:bike_id)) | ||||||
|       if !@time_entry.save |       if !@time_entry.save | ||||||
|         render json: { errors: @time_entry.errors }, status: 422 and return |         render json: { errors: @time_entry.errors }, status: 422 and return | ||||||
|       end |       end | ||||||
|  | |||||||
							
								
								
									
										15
									
								
								app/models/time_entry.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								app/models/time_entry.rb
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,15 @@ | |||||||
|  | class TimeEntry < ActsAsLoggable::Log | ||||||
|  |   default_scope where( loggable_type: "User", | ||||||
|  |                        logger_type: "User", | ||||||
|  |                        log_action_type: "ActsAsLoggable::UserAction") | ||||||
|  | 
 | ||||||
|  |   def copy_to_bike_history(bike_id) | ||||||
|  |     self.assign_attributes({ | ||||||
|  |           copy_log: true, | ||||||
|  |           copy_type: 'Bike', | ||||||
|  |           copy_id: bike_id, | ||||||
|  |           copy_action_type: 'ActsAsLoggable::BikeAction', | ||||||
|  |           copy_action_id: 4 | ||||||
|  |         }) | ||||||
|  |   end | ||||||
|  | end | ||||||
							
								
								
									
										29
									
								
								spec/controllers/api/time_entries_controller_spec.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								spec/controllers/api/time_entries_controller_spec.rb
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,29 @@ | |||||||
|  | require 'spec_helper' | ||||||
|  | 
 | ||||||
|  | describe Api::V1::TimeEntriesController do | ||||||
|  | 
 | ||||||
|  |   describe "#create" do | ||||||
|  | 
 | ||||||
|  |     context "as a user" do | ||||||
|  |       let!(:user){ FactoryGirl.create(:user) } | ||||||
|  | 
 | ||||||
|  |       before(:each) do | ||||||
|  |         sign_in user | ||||||
|  |       end | ||||||
|  | 
 | ||||||
|  |       context "with no time entry in json data" do | ||||||
|  |         it "returns error status" do | ||||||
|  |           post :create | ||||||
|  |           json = JSON.parse(@response.body) | ||||||
|  |           expect(@response.code.to_i).to eql 422 | ||||||
|  |         end | ||||||
|  | 
 | ||||||
|  |         it "returns an error message" do | ||||||
|  |           post :create | ||||||
|  |           json = JSON.parse(@response.body) | ||||||
|  |           expect(json["errors"].first).to eql Api::V1::TimeEntriesController::EXPECTED_TIME_ENTRY | ||||||
|  |         end | ||||||
|  |       end | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | end | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user