goserv-user 0.0.1.alpha.19 → 0.0.1.alpha.22
Sign up to get free protection for your applications and to get access to all the features.
- 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
|