kebab_remote_api 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/Gemfile.lock +5 -7
- data/app/controllers/kebab_remote_api/api/v1/server_info_controller.rb +6 -6
- data/app/controllers/kebab_remote_api/api/v1/sessions_controller.rb +49 -49
- data/app/controllers/kebab_remote_api/api/v1/users_controller.rb +10 -10
- data/app/controllers/kebab_remote_api/application_controller.rb +16 -16
- data/kebab_remote_api.gemspec +1 -1
- data/lib/generators/kebab_remote_api/install/templates/models/admin.rb +2 -2
- data/lib/generators/kebab_remote_api/install/templates/models/server_info.rb +2 -3
- data/lib/kebab_remote_api/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1ec600e6c5d221f52cfb5af4504baf7fd7945bfc
|
4
|
+
data.tar.gz: ed7ed9773b78c7a1e5e5441dca3afbac85ea1a44
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e9f9838ae9c1de6350ae9d68f8d3b172d9f183ca73223777b1a1ba0a26b2614bacc85d919b0d24cc2b40e6dbd04ccde71aadc5956c3fd3162b4b58ab2e22cfbc
|
7
|
+
data.tar.gz: fac299c37753cba07c808cb64aca4f7b7499392f25071bb05479630c8d46443294ed52bbef9904b5666bd8440f74ff6f3cb1134dec92c597cf53fb0790f49b1e
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
|
2
2
|
#### [Current]
|
3
|
+
* [deaa841](../../commit/deaa841) - __(Ahmet Sezgin Duran)__ Reduce complexity of server info init method
|
4
|
+
* [569cccd](../../commit/569cccd) - __(Ahmet Sezgin Duran)__ Fix tab-spaces
|
5
|
+
|
6
|
+
#### 1.0.0
|
7
|
+
* [b7935db](../../commit/b7935db) - __(Ahmet Sezgin Duran)__ [#8](../../issues/8) Get ready for gem publish
|
3
8
|
* [18facb0](../../commit/18facb0) - __(Ahmet Sezgin Duran)__ Clean up application controller
|
4
9
|
* [8316731](../../commit/8316731) - __(Ahmet Sezgin Duran)__ Remove unnecessary gems
|
5
10
|
* [4d7db82](../../commit/4d7db82) - __(Ahmet Sezgin Duran)__ Fix CybeleInstallation tutorial
|
data/Gemfile.lock
CHANGED
@@ -1,11 +1,10 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
kebab_remote_api (0.
|
4
|
+
kebab_remote_api (1.0.0)
|
5
5
|
enumerize (~> 0.7.0)
|
6
|
-
pg (~> 0.16.0)
|
7
6
|
rails (~> 4.0.0)
|
8
|
-
vmstat (~> 2.
|
7
|
+
vmstat (~> 2.1.0)
|
9
8
|
|
10
9
|
GEM
|
11
10
|
remote: https://rubygems.org/
|
@@ -45,10 +44,9 @@ GEM
|
|
45
44
|
mail (2.5.4)
|
46
45
|
mime-types (~> 1.16)
|
47
46
|
treetop (~> 1.4.8)
|
48
|
-
mime-types (1.25)
|
47
|
+
mime-types (1.25.1)
|
49
48
|
minitest (4.7.5)
|
50
49
|
multi_json (1.8.2)
|
51
|
-
pg (0.16.0)
|
52
50
|
polyglot (0.3.3)
|
53
51
|
rack (1.5.2)
|
54
52
|
rack-test (0.6.2)
|
@@ -67,7 +65,7 @@ GEM
|
|
67
65
|
rake (>= 0.8.7)
|
68
66
|
thor (>= 0.18.1, < 2.0)
|
69
67
|
rake (10.1.0)
|
70
|
-
sprockets (2.10.
|
68
|
+
sprockets (2.10.1)
|
71
69
|
hike (~> 1.2)
|
72
70
|
multi_json (~> 1.0)
|
73
71
|
rack (~> 1.0)
|
@@ -85,7 +83,7 @@ GEM
|
|
85
83
|
polyglot
|
86
84
|
polyglot (>= 0.3.1)
|
87
85
|
tzinfo (0.3.38)
|
88
|
-
vmstat (2.
|
86
|
+
vmstat (2.1.0)
|
89
87
|
|
90
88
|
PLATFORMS
|
91
89
|
ruby
|
@@ -1,8 +1,8 @@
|
|
1
1
|
module KebabRemoteApi
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
2
|
+
class Api::V1::ServerInfoController < KebabRemoteApi::ApplicationController
|
3
|
+
def get_server_info
|
4
|
+
@info = ServerInfo.new
|
5
|
+
render status: 200, json: @info.as_json
|
6
|
+
end
|
7
|
+
end
|
8
8
|
end
|
@@ -1,52 +1,52 @@
|
|
1
1
|
module KebabRemoteApi
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
3
|
+
class Api::V1::SessionsController < KebabRemoteApi::ApplicationController
|
4
|
+
skip_before_filter :verify_authenticity_token, :authenticate_request, :restrict_access
|
5
|
+
respond_to :json
|
6
|
+
|
7
|
+
def create
|
8
|
+
email = params[:email]
|
9
|
+
password = params[:password]
|
10
|
+
|
11
|
+
# Checking whether format is json or not
|
12
|
+
if request.format != :json
|
13
|
+
render status: 406, json: { message: I18n.t('kebab_remote_api.not_json') }
|
14
|
+
return
|
15
|
+
end
|
16
|
+
|
17
|
+
# Checking for empty email or password
|
18
|
+
if email.nil? or password.nil?
|
19
|
+
render status: 400, json: { message: I18n.t('kebab_remote_api.empty_input') }
|
20
|
+
return
|
21
|
+
end
|
22
|
+
|
23
|
+
@admin = Admin.where(email: email.downcase).first
|
24
|
+
|
25
|
+
# Checking whether user exists
|
26
|
+
if @admin.nil?
|
27
|
+
render status: 401, json: { message: I18n.t('kebab_remote_api.invalid_field') }
|
28
|
+
return
|
29
|
+
end
|
30
|
+
|
31
|
+
@admin.ensure_authentication_token!
|
32
|
+
|
33
|
+
# Finally, checking for password
|
34
|
+
unless @admin.valid_password?(password)
|
35
|
+
render status: 401, json: { message: I18n.t('kebab_remote_api.invalid_field') }
|
36
|
+
else
|
37
|
+
render status: 200, json: @admin.as_json.merge(success: true)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def destroy
|
42
|
+
@admin = Admin.find_by_authentication_token(params[:id])
|
43
|
+
|
44
|
+
if @admin.nil?
|
45
|
+
render status: 404, json: { message: I18n.t('kebab_remote_api.invalid_token') }
|
46
|
+
else
|
47
|
+
@admin.reset_authentication_token!
|
48
|
+
render status: 200, json: { token: params[:id] }
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
52
|
end
|
@@ -1,14 +1,14 @@
|
|
1
1
|
module KebabRemoteApi
|
2
|
-
|
3
|
-
|
2
|
+
class Api::V1::UsersController < KebabRemoteApi::ApplicationController
|
3
|
+
respond_to :json
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
5
|
+
def index
|
6
|
+
render status: 200, json: {
|
7
|
+
'active_user' => User.with_block_status(:active).count,
|
8
|
+
'total_user' => User.all.count,
|
9
|
+
'total_user_by_role' => User.role.values.map { |role| { "role_name" => role.to_s,
|
10
10
|
"count" => User.with_role(role).count } }
|
11
|
-
|
12
|
-
|
13
|
-
|
11
|
+
}.to_json
|
12
|
+
end
|
13
|
+
end
|
14
14
|
end
|
@@ -1,22 +1,22 @@
|
|
1
1
|
module KebabRemoteApi
|
2
|
-
|
3
|
-
|
2
|
+
class ApplicationController < ActionController::Base
|
3
|
+
before_filter :authenticate_request, :restrict_access
|
4
4
|
|
5
|
-
|
5
|
+
respond_to :json
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
7
|
+
# Prevent CSRF attacks by raising an exception.
|
8
|
+
# For APIs, you may want to use :null_session instead.
|
9
|
+
protect_from_forgery with: :exception
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
11
|
+
protected
|
12
|
+
def authenticate_request
|
13
|
+
admin = Admin.find_by_authentication_token(params[:secret_token])
|
14
|
+
head :unauthorized unless admin
|
15
|
+
end
|
16
16
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
17
|
+
def restrict_access
|
18
|
+
api_key = ApiKey.first
|
19
|
+
head :unauthorized unless api_key
|
20
|
+
end
|
21
|
+
end
|
22
22
|
end
|
data/kebab_remote_api.gemspec
CHANGED
@@ -2,10 +2,10 @@ class Admin < ActiveRecord::Base
|
|
2
2
|
# Include default devise modules. Others available are:
|
3
3
|
# :token_authenticatable, :confirmable,
|
4
4
|
# :lockable, :timeoutable and :omniauthable
|
5
|
-
devise :database_authenticatable,
|
5
|
+
devise :database_authenticatable,
|
6
6
|
:recoverable, :rememberable, :trackable, :validatable,
|
7
7
|
:token_authenticatable
|
8
|
-
|
8
|
+
|
9
9
|
def as_json
|
10
10
|
{ id: id,
|
11
11
|
auth_token: authentication_token,
|
@@ -6,7 +6,6 @@ class ServerInfo < ActiveRecord::Base
|
|
6
6
|
|
7
7
|
def init
|
8
8
|
mem = Vmstat.memory
|
9
|
-
total_mem = mem.active_bytes + mem.inactive_bytes + mem.free_bytes + mem.wired_bytes
|
10
9
|
# Getting disk info for main partition is, temprorarily, for only
|
11
10
|
# UN*X-like systems, such as GNU/Linux, BSD, Mac OS X etc.
|
12
11
|
# Windows implementation will be added in future
|
@@ -14,8 +13,8 @@ class ServerInfo < ActiveRecord::Base
|
|
14
13
|
# CPU load data => Float typed
|
15
14
|
self.cpu_load = Vmstat.load_average.five_minutes
|
16
15
|
# All size data => Megabytes (MB)
|
17
|
-
self.mem_total =
|
18
|
-
self.mem_used =
|
16
|
+
self.mem_total = mem.total_bytes / 1024**2
|
17
|
+
self.mem_used = (mem.total_bytes - mem.free_bytes) / 1024**2
|
19
18
|
self.disk_total = disk.total_bytes / 1024**2
|
20
19
|
self.disk_used = (disk.total_bytes - disk.free_bytes) / 1024**2
|
21
20
|
# Uptime data => Minutes
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kebab_remote_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- lab2023
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-12-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 2.
|
47
|
+
version: 2.1.0
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 2.
|
54
|
+
version: 2.1.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: sqlite3
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|