ctws 0.1.13.alpha → 0.1.14.beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/controllers/concerns/ctws/exception_handler.rb +2 -0
- data/app/controllers/ctws/authentication_controller.rb +6 -7
- data/app/controllers/ctws/min_app_versions_controller.rb +2 -2
- data/app/lib/ctws/json_web_token.rb +8 -4
- data/app/lib/ctws/message.rb +14 -6
- data/app/models/ctws/min_app_version.rb +5 -7
- data/config/locales/ctws_messages_ca.yml +5 -4
- data/config/locales/ctws_messages_en.yml +5 -4
- data/config/locales/ctws_messages_es.yml +4 -3
- data/lib/ctws/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 42cf1778d44f1e0fc1b9c0be34387d7746070979
|
4
|
+
data.tar.gz: d5948630771004880418c9164559198bfc0a937a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '08c94533c262016260efd779fae227de4a2eb5adf1a3d8cc8cca412106d31a768eb9bb152d2a6655da7aa995328a603221c6bd2d63d7ff491af38cd42eef4eb7'
|
7
|
+
data.tar.gz: 05d48c75a9ea212fb9bb583ded70685bda1e87c00ecac427bfccf34ddb811414725e97a2af43db67e42bba55b0ef8b417c32cf9555325c958097c212766b1ebd
|
@@ -16,6 +16,7 @@ module Ctws
|
|
16
16
|
class UnprocessableEntity < StandardError; end
|
17
17
|
class RoutingError < StandardError; end
|
18
18
|
class NotConfirmed < StandardError; end
|
19
|
+
class VerificationError < StandardError; end
|
19
20
|
|
20
21
|
included do
|
21
22
|
# Define custom handlers
|
@@ -29,6 +30,7 @@ module Ctws
|
|
29
30
|
rescue_from ActiveRecord::RecordNotFound, with: :not_found
|
30
31
|
rescue_from ActionController::RoutingError, with: :not_found
|
31
32
|
rescue_from ExceptionHandler::NotConfirmed, with: :not_confirmed
|
33
|
+
rescue_from ExceptionHandler::VerificationError, with: :four_ninety_eight
|
32
34
|
end
|
33
35
|
|
34
36
|
# JSON response with message; Status code 401 - Unauthorized
|
@@ -1,26 +1,25 @@
|
|
1
1
|
module Ctws
|
2
2
|
class AuthenticationController < CtwsController
|
3
3
|
skip_before_action :authorize_request, only: :authenticate
|
4
|
-
|
4
|
+
|
5
5
|
# return auth token once user is authenticated
|
6
6
|
def authenticate
|
7
7
|
auth_token = Ctws::AuthenticateUser.new(auth_params[:email], auth_params[:password]).call
|
8
8
|
json_response auth_as_jsonapi(auth_token)
|
9
|
-
|
10
9
|
end
|
11
|
-
|
10
|
+
|
12
11
|
private
|
13
|
-
|
12
|
+
|
14
13
|
def auth_as_jsonapi auth_token
|
15
14
|
[{
|
16
15
|
type: controller_name,
|
17
16
|
attributes: {
|
18
|
-
message: Ctws::Message.authenticated_user_success,
|
19
|
-
auth_token: auth_token
|
17
|
+
message: Ctws::Message.authenticated_user_success,
|
18
|
+
auth_token: auth_token
|
20
19
|
}
|
21
20
|
}]
|
22
21
|
end
|
23
|
-
|
22
|
+
|
24
23
|
def auth_params
|
25
24
|
params.permit(:email, :password)
|
26
25
|
end
|
@@ -8,12 +8,12 @@ module Ctws
|
|
8
8
|
min_app_versions = []
|
9
9
|
MinAppVersion.all.order(updated_at: :desc).group_by(&:platform).each do |platforms|
|
10
10
|
platforms[1].each_with_index do |platform, index|
|
11
|
-
min_app_versions
|
11
|
+
min_app_versions.push(platform.as_jsonapi) if index == 0
|
12
12
|
end
|
13
13
|
end
|
14
14
|
json_response min_app_versions
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
# GET /min_app_versions
|
18
18
|
def index
|
19
19
|
json_response MinAppVersion.all
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Ctws
|
2
2
|
class JsonWebToken
|
3
3
|
require 'jwt'
|
4
|
-
|
4
|
+
|
5
5
|
# secret to encode and decode token
|
6
6
|
HMAC_SECRET = Rails.application.secrets.secret_key_base
|
7
7
|
|
@@ -17,9 +17,13 @@ module Ctws
|
|
17
17
|
body = JWT.decode(token, HMAC_SECRET)[0]
|
18
18
|
HashWithIndifferentAccess.new body
|
19
19
|
# rescue from expiry exception
|
20
|
-
|
21
|
-
|
22
|
-
|
20
|
+
rescue JWT::ExpiredSignature => e
|
21
|
+
# raise custom error to be handled by custom handler
|
22
|
+
raise Ctws::ExceptionHandler::ExpiredSignature, e.message
|
23
|
+
rescue JWT::VerificationError => e
|
24
|
+
# raise custom error to be handled by custom handler
|
25
|
+
raise Ctws::ExceptionHandler::VerificationError, Ctws::Message.invalid_token
|
26
|
+
|
23
27
|
end
|
24
28
|
end
|
25
29
|
end
|
data/app/lib/ctws/message.rb
CHANGED
@@ -24,16 +24,20 @@ module Ctws
|
|
24
24
|
I18n.t('ctws.unauthorized')
|
25
25
|
end
|
26
26
|
|
27
|
-
def self.
|
28
|
-
I18n.t('ctws.
|
27
|
+
def self.resource_created(resource)
|
28
|
+
I18n.t('ctws.resource_created', resource: resource)
|
29
29
|
end
|
30
30
|
|
31
|
-
def self.
|
32
|
-
I18n.t('ctws.
|
31
|
+
def self.resource_updated(resource: resource)
|
32
|
+
I18n.t('ctws.resource_updated', resource: resource)
|
33
33
|
end
|
34
34
|
|
35
|
-
def self.
|
36
|
-
I18n.t('ctws.
|
35
|
+
def self.resource_not_created(resource: resource)
|
36
|
+
I18n.t('ctws.resource_not_created', resource: resource)
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.resource_doesnt_exist(resource: resource)
|
40
|
+
I18n.t('ctws.resource_doesnt_exist', resource: resource)
|
37
41
|
end
|
38
42
|
|
39
43
|
def self.authenticated_user_success
|
@@ -47,5 +51,9 @@ module Ctws
|
|
47
51
|
def self.record_not_confirmed(record = 'record')
|
48
52
|
I18n.t('ctws.record_not_confirmed', record: record)
|
49
53
|
end
|
54
|
+
|
55
|
+
def self.signature_verification_raised
|
56
|
+
I18n.t('ctws.signature_verification_raised')
|
57
|
+
end
|
50
58
|
end
|
51
59
|
end
|
@@ -1,22 +1,20 @@
|
|
1
1
|
module Ctws
|
2
2
|
class MinAppVersion < ApplicationRecord
|
3
3
|
validates_presence_of :codename, :description, :platform, :min_version, :store_uri
|
4
|
-
|
4
|
+
|
5
5
|
def as_jsonapi(options={})
|
6
6
|
{
|
7
7
|
type: ActiveModel::Naming.param_key(self),
|
8
8
|
id: self.id,
|
9
9
|
attributes: {
|
10
|
-
codename: self.codename,
|
11
|
-
description: self.description,
|
12
|
-
min_version: self.min_version,
|
13
|
-
platform: self.platform,
|
10
|
+
codename: self.codename,
|
11
|
+
description: self.description,
|
12
|
+
min_version: self.min_version,
|
13
|
+
platform: self.platform,
|
14
14
|
store_uri: self.store_uri,
|
15
15
|
updated_at: self.updated_at
|
16
16
|
}
|
17
17
|
}
|
18
18
|
end
|
19
19
|
end
|
20
|
-
|
21
|
-
|
22
20
|
end
|
@@ -1,14 +1,15 @@
|
|
1
1
|
ca:
|
2
2
|
ctws:
|
3
|
-
|
4
|
-
account_doesnt_exist: "El compte no existeix."
|
5
|
-
account_not_created: "No s'ha pogut crear el compte."
|
6
|
-
authenticated_user_success: "Usuari autenticat amb èxit."
|
3
|
+
authenticated_user_success: "usuari autenticat amb èxit."
|
7
4
|
expired_token: "Ho sentim, el vostre token ha caducat. Inicieu sessió per continuar."
|
8
5
|
invalid_credentials: "Credencials no vàlides."
|
9
6
|
invalid_token: "Token invàlid."
|
10
7
|
missing_token: "Falta token."
|
11
8
|
not_found: "No s'ha trobat %{record}."
|
12
9
|
record_not_confirmed: "%{record} no confirmat."
|
10
|
+
resource_created: "S'ha creat el %{resource} amb èxit."
|
11
|
+
resource_doesnt_exist: "El %{resource} no existeix."
|
12
|
+
resource_not_created: "No s'ha pogut crear el %{resource}."
|
13
|
+
resource_updated: "S'ha actualitzat el %{resource} amb èxit."
|
13
14
|
unauthorized: "Sol·licitud no autoritzada."
|
14
15
|
unmatched_route: "Cap ruta coincideix amb %{route}."
|
@@ -1,14 +1,15 @@
|
|
1
1
|
en:
|
2
2
|
ctws:
|
3
|
-
|
4
|
-
account_doesnt_exist: "Account doesn't exist."
|
5
|
-
account_not_created: "Account could not be created."
|
6
|
-
authenticated_user_success: "Authenticated user successfully."
|
3
|
+
authenticated_user_success: "Authenticated %{resource} successfully."
|
7
4
|
expired_token: "Sorry, your token has expired. Please login to continue."
|
8
5
|
invalid_credentials: "Invalid credentials."
|
9
6
|
invalid_token: "Invalid token."
|
10
7
|
missing_token: "Missing token."
|
11
8
|
not_found: "Sorry, %{record} not found."
|
12
9
|
record_not_confirmed: "%{record} not confirmed."
|
10
|
+
resource_created: "%{resource} created successfully."
|
11
|
+
resource_doesnt_exist: "%{resource} doesn't exist."
|
12
|
+
resource_not_created: "%{resource} could not be created."
|
13
|
+
resource_updated: "%{resource} created successfully."
|
13
14
|
unauthorized: "Unauthorized request."
|
14
15
|
unmatched_route: "No route matches %{route}."
|
@@ -1,8 +1,5 @@
|
|
1
1
|
es:
|
2
2
|
ctws:
|
3
|
-
account_created: "Cuenta creada con éxito."
|
4
|
-
account_doesnt_exist: "La cuenta no existe."
|
5
|
-
account_not_created: "La cuenta no pudo ser creada."
|
6
3
|
authenticated_user_success: "Usuario autenticado con éxito."
|
7
4
|
expired_token: "Tu token ha expirado, por favor inicie sesión para continuar."
|
8
5
|
invalid_credentials: "Credenciales no válidas."
|
@@ -10,5 +7,9 @@ es:
|
|
10
7
|
missing_token: "Falta token."
|
11
8
|
not_found: "Lo sentimos, %{record} no encontrado."
|
12
9
|
record_not_confirmed: "%{record} not confirmado."
|
10
|
+
resource_created: "%{resource} creado con éxito."
|
11
|
+
resource_doesnt_exist: "%{resource} no existe."
|
12
|
+
resource_not_created: "%{resource} no pudo ser creada."
|
13
|
+
resource_updated: "%{resource} actualizado con éxito."
|
13
14
|
unauthorized: "Solicitud no autorizada."
|
14
15
|
unmatched_route: "Ninguna ruta coincide con %{route}."
|
data/lib/ctws/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ctws
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.14.beta
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Agustí B.R.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-02-19 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: '1
|
47
|
+
version: '2.1'
|
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: '1
|
54
|
+
version: '2.1'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: http_accept_language
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -307,7 +307,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
307
307
|
version: 1.3.1
|
308
308
|
requirements: []
|
309
309
|
rubyforge_project:
|
310
|
-
rubygems_version: 2.
|
310
|
+
rubygems_version: 2.6.13
|
311
311
|
signing_key:
|
312
312
|
specification_version: 4
|
313
313
|
summary: Rails gem to be used as Webservice base.
|