Skip to content

Commit 5f6c3fc

Browse files
committed
Add UserDataRequest model and controller
1 parent c290ff9 commit 5f6c3fc

14 files changed

+270
-3
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
class UserDataRequestsController < ApplicationController
2+
3+
def index
4+
if params.empty?
5+
@user_data_requests = UserDataRequest.includes(:country).all
6+
else
7+
@user_data_requests = UserDataRequest.includes(:country)
8+
if params[:country_code]
9+
@user_data_requests = @user_data_requests.where('country_id' => Country.find_by_code(params[:country_code]).id)
10+
end
11+
if params[:after]
12+
@user_data_requests = @user_data_requests.where("period_start >= ?", params[:after])
13+
end
14+
if params[:before]
15+
@user_data_requests = @user_data_requests.where("period_end <= ?", params[:before])
16+
end
17+
end
18+
19+
respond_to do |format|
20+
format.html
21+
format.json { render json:
22+
@user_data_requests.to_json(
23+
:only => [:period_start, :period_end, :requests, :percentage_complied, :accounts],
24+
:include => {:country => {:only => [:code, :name]}}
25+
)
26+
}
27+
end
28+
end
29+
30+
def show
31+
@user_data_request = UserDataRequest.find(params[:id])
32+
end
33+
34+
def new
35+
@user_data_request = UserDataRequest.new
36+
end
37+
38+
def create
39+
@user_data_request = UserDataRequest.new(params[:user_data_request])
40+
if @user_data_request.save
41+
redirect_to @user_data_request, :notice => "Successfully created user data request."
42+
else
43+
render :action => 'new'
44+
end
45+
end
46+
47+
def edit
48+
@user_data_request = UserDataRequest.find(params[:id])
49+
end
50+
51+
def update
52+
@user_data_request = UserDataRequest.find(params[:id])
53+
if @user_data_request.update_attributes(params[:user_data_request])
54+
redirect_to @user_data_request, :notice => "Successfully updated user data request."
55+
else
56+
render :action => 'edit'
57+
end
58+
end
59+
60+
def destroy
61+
@user_data_request = UserDataRequest.find(params[:id])
62+
@user_data_request.destroy
63+
redirect_to user_data_requests_url, :notice => "Successfully destroyed user data request."
64+
end
65+
end
+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
module UserDataRequestsHelper
2+
end

app/models/user_data_request.rb

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
class UserDataRequest < ActiveRecord::Base
2+
belongs_to :country
3+
4+
attr_accessible :period_start, :period_end, :requests, :percentage_complied, :accounts
5+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
= form_for @user_data_request do |f|
2+
= f.error_messages
3+
%p
4+
= f.label :period_start
5+
%br
6+
= f.date_select :period_start
7+
%p
8+
= f.label :period_end
9+
%br
10+
= f.date_select :period_end
11+
%p
12+
= f.label :country_id
13+
%br
14+
= f.number_field :country_id
15+
%p
16+
= f.label :requests
17+
%br
18+
= f.number_field :requests
19+
%p
20+
= f.label :percentage_complied
21+
%br
22+
= f.text_field :percentage_complied
23+
%p
24+
= f.label :accounts
25+
%br
26+
= f.number_field :accounts
27+
%p
28+
= f.submit
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
- title "Edit User Data Request"
2+
3+
= render 'form'
4+
5+
%p
6+
= link_to "Show", @user_data_request
7+
|
8+
= link_to "View All", user_data_requests_path
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
- title "User Data Requests"
2+
3+
%table
4+
%tr
5+
%th Period start
6+
%th Period end
7+
%th Country
8+
%th Requests
9+
%th Percentage complied
10+
%th Accounts
11+
- for user_data_request in @user_data_requests
12+
%tr
13+
%td= user_data_request.period_start
14+
%td= user_data_request.period_end
15+
%td= user_data_request.country_id
16+
%td= user_data_request.requests
17+
%td= user_data_request.percentage_complied
18+
%td= user_data_request.accounts
19+
%td= link_to 'Show', user_data_request
20+
%td= link_to 'Edit', edit_user_data_request_path(user_data_request)
21+
%td= link_to 'Destroy', user_data_request, :confirm => 'Are you sure?', :method => :delete
22+
23+
%p= link_to "New User Data Request", new_user_data_request_path
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
- title "New User Data Request"
2+
3+
= render 'form'
4+
5+
%p= link_to "Back to List", user_data_requests_path
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
- title "User Data Request"
2+
3+
%p
4+
%strong Period Start:
5+
= @user_data_request.period_start
6+
%p
7+
%strong Period End:
8+
= @user_data_request.period_end
9+
%p
10+
%strong Country:
11+
= @user_data_request.country_id
12+
%p
13+
%strong Requests:
14+
= @user_data_request.requests
15+
%p
16+
%strong Percentage Complied:
17+
= @user_data_request.percentage_complied
18+
%p
19+
%strong Accounts:
20+
= @user_data_request.accounts
21+
22+
%p
23+
= link_to "Edit", edit_user_data_request_path(@user_data_request)
24+
|
25+
= link_to "Destroy", @user_data_request, :confirm => 'Are you sure?', :method => :delete
26+
|
27+
= link_to "View All", user_data_requests_path

config/routes.rb

+2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
CppBackend::Application.routes.draw do
2+
resources :user_data_requests
3+
24
resources :content_removal_requests
35

46
resources :countries
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
class CreateUserDataRequests < ActiveRecord::Migration
2+
def self.up
3+
create_table :user_data_requests do |t|
4+
t.date :period_start
5+
t.date :period_end
6+
t.integer :country_id
7+
t.integer :requests
8+
t.float :percentage_complied
9+
t.integer :accounts
10+
t.timestamps
11+
end
12+
end
13+
14+
def self.down
15+
drop_table :user_data_requests
16+
end
17+
end

db/schema.rb

+12-3
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
#
1212
# It's strongly recommended to check this file into your version control system.
1313

14-
ActiveRecord::Schema.define(:version => 20111109012514) do
14+
ActiveRecord::Schema.define(:version => 20111111215915) do
1515

1616
create_table "city_maps", :force => true do |t|
1717
t.string "city"
@@ -24,8 +24,6 @@
2424
end
2525

2626
create_table "city_measurements", :force => true do |t|
27-
t.integer "city_map_id"
28-
t.string "city"
2927
t.date "month"
3028
t.float "DownloadThroughputSplitByClientAndByServer"
3129
t.float "UploadThroughputSplitByClientAndByServer"
@@ -120,6 +118,17 @@
120118
t.datetime "updated_at"
121119
end
122120

121+
create_table "user_data_requests", :force => true do |t|
122+
t.date "period_start"
123+
t.date "period_end"
124+
t.integer "country_id"
125+
t.integer "requests"
126+
t.float "percentage_complied"
127+
t.integer "accounts"
128+
t.datetime "created_at"
129+
t.datetime "updated_at"
130+
end
131+
123132
create_table "world_measurements", :force => true do |t|
124133
t.date "month"
125134
t.float "DownloadThroughputSplitByClientAndByServer"

test/fixtures/user_data_requests.yml

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
one:
2+
period_start: 2011-11-11
3+
period_end: 2011-11-11
4+
country_id: 1
5+
requests: 1
6+
percentage_complied: 1.5
7+
accounts: 1
8+
9+
two:
10+
period_start: 2011-11-11
11+
period_end: 2011-11-11
12+
country_id: 1
13+
requests: 1
14+
percentage_complied: 1.5
15+
accounts: 1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
require 'test_helper'
2+
3+
class UserDataRequestsControllerTest < ActionController::TestCase
4+
def test_index
5+
get :index
6+
assert_template 'index'
7+
end
8+
9+
def test_show
10+
get :show, :id => UserDataRequest.first
11+
assert_template 'show'
12+
end
13+
14+
def test_new
15+
get :new
16+
assert_template 'new'
17+
end
18+
19+
def test_create_invalid
20+
UserDataRequest.any_instance.stubs(:valid?).returns(false)
21+
post :create
22+
assert_template 'new'
23+
end
24+
25+
def test_create_valid
26+
UserDataRequest.any_instance.stubs(:valid?).returns(true)
27+
post :create
28+
assert_redirected_to user_data_request_url(assigns(:user_data_request))
29+
end
30+
31+
def test_edit
32+
get :edit, :id => UserDataRequest.first
33+
assert_template 'edit'
34+
end
35+
36+
def test_update_invalid
37+
UserDataRequest.any_instance.stubs(:valid?).returns(false)
38+
put :update, :id => UserDataRequest.first
39+
assert_template 'edit'
40+
end
41+
42+
def test_update_valid
43+
UserDataRequest.any_instance.stubs(:valid?).returns(true)
44+
put :update, :id => UserDataRequest.first
45+
assert_redirected_to user_data_request_url(assigns(:user_data_request))
46+
end
47+
48+
def test_destroy
49+
user_data_request = UserDataRequest.first
50+
delete :destroy, :id => user_data_request
51+
assert_redirected_to user_data_requests_url
52+
assert !UserDataRequest.exists?(user_data_request.id)
53+
end
54+
end

test/unit/user_data_request_test.rb

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
require 'test_helper'
2+
3+
class UserDataRequestTest < ActiveSupport::TestCase
4+
def test_should_be_valid
5+
assert UserDataRequest.new.valid?
6+
end
7+
end

0 commit comments

Comments
 (0)