gaku_api 0.3.0.pre.4 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/gaku/api/v1/base_controller.rb +4 -4
- data/app/controllers/gaku/api/v1/contact_types_controller.rb +27 -0
- data/app/controllers/gaku/api/v1/contacts_controller.rb +41 -0
- data/app/controllers/gaku/api/v1/students_controller.rb +7 -4
- data/app/serializers/gaku/contact_serializer.rb +14 -0
- data/app/serializers/gaku/contact_type_serializer.rb +5 -0
- data/config/routes.rb +5 -1
- metadata +12 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5ea10622d24546466a1c46120b63f984d893a851573ac7d2ce5e76ea6b469542
|
4
|
+
data.tar.gz: 2ad0cdc8046728259ade520dcb9c1ba0cc5e669b72062df7110c918fc2c7ce1d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f67a80667f4cd233d0a3f38ffed255d552a663de91b01c2988a0d8d7b7c9aaba42f5e14d2ad878564a6065502bd26ea5ce03136464e7da42aff3e14adf562b91
|
7
|
+
data.tar.gz: ea398b05187e36a8ac49b8e7d938b0978a68d7f43ad08b62e06f0a59047bf3e22c60ee4b4ad993e8ce4b4009b519b9ec45ebff905eed30d18b9f139ebd0f3f8d
|
@@ -5,9 +5,9 @@ class Gaku::Api::V1::BaseController < Gaku::Api::ApplicationController
|
|
5
5
|
before_action :set_default_format
|
6
6
|
before_action :authenticate_request
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
rescue_from StandardError do |exception|
|
9
|
+
render respond_format => { error: exception.message }, status: 500
|
10
|
+
end
|
11
11
|
|
12
12
|
# rescue_from ActiveRecord::RecordNotFound, with: :render_not_found_response
|
13
13
|
# rescue_from ActiveRecord::RecordInvalid, with: :render_unprocessable_entity_response
|
@@ -28,7 +28,7 @@ class Gaku::Api::V1::BaseController < Gaku::Api::ApplicationController
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def meta_for(collection)
|
31
|
-
{ count: collection.size
|
31
|
+
{ count: collection.size }
|
32
32
|
end
|
33
33
|
|
34
34
|
def authenticate_request
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Gaku
|
2
|
+
module Api
|
3
|
+
module V1
|
4
|
+
class ContactTypesController < BaseController
|
5
|
+
skip_before_action :authenticate_request
|
6
|
+
|
7
|
+
def index
|
8
|
+
@contact_types = ContactType.all
|
9
|
+
collection_respond_to @contact_types, root: :contact_types
|
10
|
+
end
|
11
|
+
|
12
|
+
def create
|
13
|
+
@contact_types = ContactType.create!(contact_type_params)
|
14
|
+
member_respond_to @contact_types
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def contact_type_params
|
20
|
+
params.require(:name)
|
21
|
+
params.permit(:name)
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Gaku
|
2
|
+
module Api
|
3
|
+
module V1
|
4
|
+
class ContactsController < BaseController
|
5
|
+
skip_before_action :authenticate_request
|
6
|
+
before_action :set_contactable
|
7
|
+
|
8
|
+
|
9
|
+
def index
|
10
|
+
@contacts = @contactable.contacts.all
|
11
|
+
collection_respond_to @contacts, root: :contacts
|
12
|
+
end
|
13
|
+
|
14
|
+
def create
|
15
|
+
@contact = @contactable.contacts.create(contact_params)
|
16
|
+
member_respond_to @contact
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def contact_params
|
22
|
+
params.require(contact_attributes)
|
23
|
+
params.permit(contact_attributes)
|
24
|
+
end
|
25
|
+
|
26
|
+
|
27
|
+
def contact_attributes
|
28
|
+
%i( contact_type_id data )
|
29
|
+
end
|
30
|
+
|
31
|
+
|
32
|
+
def set_contactable
|
33
|
+
model_name = params[:model_name]
|
34
|
+
@contactable = model_name.constantize.find(params[model_name.foreign_key])
|
35
|
+
end
|
36
|
+
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -7,11 +7,14 @@ module Gaku
|
|
7
7
|
before_action :set_student, except: %i( index create )
|
8
8
|
|
9
9
|
def index
|
10
|
-
@
|
11
|
-
@students = @q.result.page(params[:page])
|
10
|
+
@students = Student.includes(:primary_contact, :primary_address).all
|
12
11
|
collection_respond_to @students, root: :students
|
13
12
|
end
|
14
13
|
|
14
|
+
def picture
|
15
|
+
send_file @student.picture.path
|
16
|
+
end
|
17
|
+
|
15
18
|
def show
|
16
19
|
member_respond_to @student
|
17
20
|
end
|
@@ -56,8 +59,8 @@ module Gaku
|
|
56
59
|
|
57
60
|
def student_attributes
|
58
61
|
%i(
|
59
|
-
name surname name_reading surname_reading
|
60
|
-
|
62
|
+
name surname name_reading surname_reading middle_name middle_name_reading
|
63
|
+
birth_date gender enrollment_status_code picture
|
61
64
|
)
|
62
65
|
end
|
63
66
|
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Gaku
|
2
|
+
class ContactSerializer < ActiveModel::Serializer
|
3
|
+
attributes %i( id data contact_type_id )
|
4
|
+
attribute :student_id, if: :student_contact?
|
5
|
+
|
6
|
+
def student_id
|
7
|
+
object.contactable_id
|
8
|
+
end
|
9
|
+
|
10
|
+
def student_contact?
|
11
|
+
object.contactable_type == 'Gaku::Student'
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/config/routes.rb
CHANGED
@@ -6,13 +6,16 @@ Gaku::Core::Engine.routes.draw do
|
|
6
6
|
post 'authenticate', to: 'authentication#authenticate'
|
7
7
|
post 'authenticate/refresh', to: 'authentication#refresh'
|
8
8
|
|
9
|
-
resources :students do
|
9
|
+
resources :students, model_name: 'Gaku::Student' do
|
10
10
|
resources :guardians, controller: 'students/guardians'
|
11
11
|
resources :student_guardians, controller: 'students/student_guardians', only: %i(create destroy)
|
12
12
|
resources :courses, controller: 'students/courses'
|
13
13
|
resources :class_groups, controller: 'students/class_groups'
|
14
14
|
resources :extracurricular_activities, controller: 'students/extracurricular_activities'
|
15
15
|
resources :exam_sessions, controller: 'students/exam_sessions'
|
16
|
+
resources :contacts
|
17
|
+
|
18
|
+
get :picture, on: :member
|
16
19
|
end
|
17
20
|
|
18
21
|
resources :courses do
|
@@ -26,6 +29,7 @@ Gaku::Core::Engine.routes.draw do
|
|
26
29
|
end
|
27
30
|
|
28
31
|
resources :syllabuses
|
32
|
+
resources :contact_types
|
29
33
|
end
|
30
34
|
end
|
31
35
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gaku_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.0
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rei Kagetsuki
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2018-
|
13
|
+
date: 2018-03-17 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: simple_command
|
@@ -88,28 +88,28 @@ dependencies:
|
|
88
88
|
requirements:
|
89
89
|
- - '='
|
90
90
|
- !ruby/object:Gem::Version
|
91
|
-
version: 0.3.0
|
91
|
+
version: 0.3.0
|
92
92
|
type: :runtime
|
93
93
|
prerelease: false
|
94
94
|
version_requirements: !ruby/object:Gem::Requirement
|
95
95
|
requirements:
|
96
96
|
- - '='
|
97
97
|
- !ruby/object:Gem::Version
|
98
|
-
version: 0.3.0
|
98
|
+
version: 0.3.0
|
99
99
|
- !ruby/object:Gem::Dependency
|
100
100
|
name: gaku_testing
|
101
101
|
requirement: !ruby/object:Gem::Requirement
|
102
102
|
requirements:
|
103
103
|
- - '='
|
104
104
|
- !ruby/object:Gem::Version
|
105
|
-
version: 0.3.0
|
105
|
+
version: 0.3.0
|
106
106
|
type: :development
|
107
107
|
prerelease: false
|
108
108
|
version_requirements: !ruby/object:Gem::Requirement
|
109
109
|
requirements:
|
110
110
|
- - '='
|
111
111
|
- !ruby/object:Gem::Version
|
112
|
-
version: 0.3.0
|
112
|
+
version: 0.3.0
|
113
113
|
description: API functionality for GAKU Engine. See https://github.com/GAKUEngine/gaku
|
114
114
|
email: info@gakuengine.com
|
115
115
|
executables: []
|
@@ -122,6 +122,8 @@ files:
|
|
122
122
|
- app/controllers/gaku/api/v1/base_controller.rb
|
123
123
|
- app/controllers/gaku/api/v1/class_groups/enrollments_controller.rb
|
124
124
|
- app/controllers/gaku/api/v1/class_groups/students_controller.rb
|
125
|
+
- app/controllers/gaku/api/v1/contact_types_controller.rb
|
126
|
+
- app/controllers/gaku/api/v1/contacts_controller.rb
|
125
127
|
- app/controllers/gaku/api/v1/courses/enrollments_controller.rb
|
126
128
|
- app/controllers/gaku/api/v1/courses/students_controller.rb
|
127
129
|
- app/controllers/gaku/api/v1/courses_controller.rb
|
@@ -136,6 +138,8 @@ files:
|
|
136
138
|
- app/controllers/gaku/api/v1/students_controller.rb
|
137
139
|
- app/controllers/gaku/api/v1/syllabuses_controller.rb
|
138
140
|
- app/serializers/gaku/class_group_serializer.rb
|
141
|
+
- app/serializers/gaku/contact_serializer.rb
|
142
|
+
- app/serializers/gaku/contact_type_serializer.rb
|
139
143
|
- app/serializers/gaku/course_serializer.rb
|
140
144
|
- app/serializers/gaku/enrollment_serializer.rb
|
141
145
|
- app/serializers/gaku/exam_session_serializer.rb
|
@@ -172,9 +176,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
172
176
|
version: '0'
|
173
177
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
174
178
|
requirements:
|
175
|
-
- - "
|
179
|
+
- - ">="
|
176
180
|
- !ruby/object:Gem::Version
|
177
|
-
version:
|
181
|
+
version: '0'
|
178
182
|
requirements: []
|
179
183
|
rubyforge_project:
|
180
184
|
rubygems_version: 2.7.3
|