goserv-user 0.0.1.alpha.19 → 0.0.1.alpha.22
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.rb +17 -6
- data/config.ru +10 -4
- data/lib/goserv-user/prehandlers.rb +14 -12
- data/lib/goserv-user/schema/signin.rb +52 -25
- metadata +20 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 581f86525666abff4caa8bf3e0a951f8691618c3
|
4
|
+
data.tar.gz: dae58c5be97f67a710778e09a56c3b9572981cae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bb4d427cf73e8cd01c1fa1af741242855dcfc93b59a7c815449c8ff1acd2fe5d72289ce57927ddce9e2b749a54a07362ba057cb608945516ab12dcd1658a5bbe
|
7
|
+
data.tar.gz: 3dff8dc7da57a342b1ca497b0126eabb80454674f8377efa11f4ea9624b2a4b9dc4f7d3240dbfba7db9ae6fd545687d29e5673df690a79c4bebc86d7efd0aea6
|
data/app.rb
CHANGED
@@ -6,17 +6,28 @@ require 'goserv-util'
|
|
6
6
|
|
7
7
|
# GoServApp: Main controller for the API
|
8
8
|
class GoServApp < Sinatra::Base
|
9
|
+
configure do
|
10
|
+
puts "THE CURRENT RACK ENV IS #{ENV['RACK_ENV']}"
|
11
|
+
set(:raise_errors, true) if ENV['RACK_ENV'] = 'test'
|
12
|
+
set(:dump_errors, true)
|
13
|
+
set(:show_exceptions, false)
|
14
|
+
end
|
15
|
+
|
9
16
|
include GoUtil::Log
|
10
17
|
|
11
18
|
register Sinatra::ActiveRecordExtension
|
12
19
|
|
20
|
+
not_found do
|
21
|
+
status '404 Not Found'
|
22
|
+
end
|
23
|
+
|
13
24
|
before '/*' do
|
14
|
-
|
25
|
+
GoUtil::Log.begin_request(request)
|
15
26
|
end
|
16
27
|
|
17
28
|
post '/login' do
|
18
|
-
body = Prehandlers::Login.prehandle(request)
|
19
|
-
user =
|
29
|
+
body = GoUser::Prehandlers::Login.prehandle(request)
|
30
|
+
user = GoUser.authenticate(body)
|
20
31
|
JSON.pretty_generate(
|
21
32
|
code: 'SUCCESS',
|
22
33
|
token: user.token
|
@@ -24,15 +35,15 @@ class GoServApp < Sinatra::Base
|
|
24
35
|
end
|
25
36
|
|
26
37
|
post '/signup' do
|
27
|
-
body = Prehandlers::Signup.prehandle(request)
|
28
|
-
|
38
|
+
body = GoUser::Prehandlers::Signup.prehandle(request)
|
39
|
+
GoUser.create_user(body)
|
29
40
|
JSON.pretty_generate(code: 'SUCCESS')
|
30
41
|
end
|
31
42
|
|
32
43
|
def self.register_error(*codes, err_status:, err_code:, err_reasons: [])
|
33
44
|
error(*codes) do
|
34
45
|
err = env['sinatra.error']
|
35
|
-
|
46
|
+
GoUtil::Log.request_error err, err_status
|
36
47
|
status err_status
|
37
48
|
|
38
49
|
err_reasons = err.full_messages if err.respond_to? :full_messages
|
data/config.ru
CHANGED
@@ -1,10 +1,16 @@
|
|
1
1
|
require './app'
|
2
|
-
require '
|
2
|
+
require 'goserv-util'
|
3
3
|
|
4
|
-
|
4
|
+
begin
|
5
|
+
config = YAML.load_file('config/environment.yml')
|
6
|
+
rescue Errno::ENOENT
|
7
|
+
config = {}
|
8
|
+
end
|
5
9
|
|
6
|
-
log_dir =
|
10
|
+
log_dir = '.'
|
11
|
+
log_dir = ENV['GOSERV_LOG_DIR'] if ENV.key('GOSERV_LOG_DIR')
|
12
|
+
log_dir = config[:log_dir] if config[:log_dir]
|
7
13
|
|
8
|
-
Log.init(log_dir, 'user')
|
14
|
+
GoUtil::Log.init(log_dir, 'user')
|
9
15
|
|
10
16
|
run GoServApp
|
@@ -1,18 +1,20 @@
|
|
1
1
|
require 'goserv-util'
|
2
2
|
require_relative 'schema'
|
3
3
|
|
4
|
-
module
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
4
|
+
module GoUser
|
5
|
+
module Prehandlers
|
6
|
+
# user creation request prehandling.
|
7
|
+
class Signup
|
8
|
+
include GoUtil::Request::Prehandler
|
9
|
+
has_json_body
|
10
|
+
self.schema = Schema.signin
|
11
|
+
end
|
11
12
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
13
|
+
# user login request prehandling
|
14
|
+
class Login
|
15
|
+
include GoUtil::Request::Prehandler
|
16
|
+
has_json_body
|
17
|
+
self.schema = Schema.login
|
18
|
+
end
|
17
19
|
end
|
18
20
|
end
|
@@ -1,30 +1,57 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
1
|
+
|
2
|
+
module GoUser
|
3
|
+
module Schema
|
4
|
+
def self.signin
|
5
|
+
{
|
6
|
+
type: 'object',
|
7
|
+
required: %w(username password email),
|
8
|
+
properties: {
|
9
|
+
username: {
|
10
|
+
type: 'string',
|
11
|
+
maxLength: 16,
|
12
|
+
minLength: 3
|
13
|
+
},
|
14
|
+
password: {
|
15
|
+
type: 'string',
|
16
|
+
maxLength: 16,
|
17
|
+
minLength: 8
|
18
|
+
},
|
19
|
+
email: {
|
20
|
+
type: 'string',
|
21
|
+
pattern: '\A([\w+\-].?)+@[a-z\d\-]+(\.[a-z]+)*\.[a-z]+\z'
|
22
|
+
}
|
20
23
|
}
|
21
24
|
}
|
22
|
-
|
23
|
-
end
|
25
|
+
end
|
24
26
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
27
|
+
def self.login
|
28
|
+
{
|
29
|
+
type: 'object',
|
30
|
+
oneOf: [
|
31
|
+
{
|
32
|
+
required: %w(username password),
|
33
|
+
properties: {
|
34
|
+
username: {
|
35
|
+
type: 'string'
|
36
|
+
},
|
37
|
+
password: {
|
38
|
+
type: 'string'
|
39
|
+
}
|
40
|
+
}
|
41
|
+
},
|
42
|
+
{
|
43
|
+
required: %w(email password),
|
44
|
+
properties: {
|
45
|
+
email: {
|
46
|
+
type: 'string'
|
47
|
+
},
|
48
|
+
password: {
|
49
|
+
type: 'string'
|
50
|
+
}
|
51
|
+
}
|
52
|
+
}
|
53
|
+
]
|
54
|
+
}
|
55
|
+
end
|
29
56
|
end
|
30
57
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: goserv-user
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.1.alpha.
|
4
|
+
version: 0.0.1.alpha.22
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben C Lewis
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-04-
|
11
|
+
date: 2017-04-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -66,34 +66,48 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '1.5'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rack-test
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.6.3
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.6.3
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: passenger
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
72
86
|
requirements:
|
73
87
|
- - "~>"
|
74
88
|
- !ruby/object:Gem::Version
|
75
|
-
version: 5.0
|
89
|
+
version: '5.0'
|
76
90
|
type: :runtime
|
77
91
|
prerelease: false
|
78
92
|
version_requirements: !ruby/object:Gem::Requirement
|
79
93
|
requirements:
|
80
94
|
- - "~>"
|
81
95
|
- !ruby/object:Gem::Version
|
82
|
-
version: 5.0
|
96
|
+
version: '5.0'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: sinatra
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
86
100
|
requirements:
|
87
101
|
- - "~>"
|
88
102
|
- !ruby/object:Gem::Version
|
89
|
-
version: 1.4
|
103
|
+
version: '1.4'
|
90
104
|
type: :runtime
|
91
105
|
prerelease: false
|
92
106
|
version_requirements: !ruby/object:Gem::Requirement
|
93
107
|
requirements:
|
94
108
|
- - "~>"
|
95
109
|
- !ruby/object:Gem::Version
|
96
|
-
version: 1.4
|
110
|
+
version: '1.4'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: activerecord
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|