wavelabs_client_api 0.3.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +10 -0
- data/.travis.yml +8 -0
- data/CODE_OF_CONDUCT.md +13 -0
- data/Gemfile +6 -0
- data/LICENSE.txt +21 -0
- data/README.md +140 -0
- data/Rakefile +12 -0
- data/bin/console +14 -0
- data/bin/setup +7 -0
- data/lib/generators/templates/wavelabs_client_api_initializer.rb +13 -0
- data/lib/generators/wavelabs_client_api/install_generator.rb +17 -0
- data/lib/wavelabs_client_api.rb +34 -0
- data/lib/wavelabs_client_api/client/api/core/auth_api.rb +179 -0
- data/lib/wavelabs_client_api/client/api/core/base_api.rb +92 -0
- data/lib/wavelabs_client_api/client/api/core/media_api.rb +48 -0
- data/lib/wavelabs_client_api/client/api/core/social_api.rb +78 -0
- data/lib/wavelabs_client_api/client/api/core/users_api.rb +90 -0
- data/lib/wavelabs_client_api/client/api/data_models/base_api_model.rb +40 -0
- data/lib/wavelabs_client_api/client/api/data_models/login_api_model.rb +41 -0
- data/lib/wavelabs_client_api/client/api/data_models/media_api_model.rb +26 -0
- data/lib/wavelabs_client_api/client/api/data_models/member_api_model.rb +55 -0
- data/lib/wavelabs_client_api/client/api/data_models/message_api_model.rb +19 -0
- data/lib/wavelabs_client_api/client/api/data_models/social_accounts_api_model.rb +41 -0
- data/lib/wavelabs_client_api/client/api/data_models/token_api_model.rb +37 -0
- data/lib/wavelabs_client_api/client/api/data_models/token_details_api_model.rb +51 -0
- data/lib/wavelabs_client_api/version.rb +3 -0
- data/spec/core_api_specs/auth_api_spec.rb +90 -0
- data/spec/core_api_specs/media_api_spec.rb +38 -0
- data/spec/core_api_specs/social_api_spec.rb +32 -0
- data/spec/core_api_specs/users_api_spec.rb +65 -0
- data/spec/data_model_specs/login_api_model_spec.rb +27 -0
- data/spec/data_model_specs/media_api_model_spec.rb +21 -0
- data/spec/data_model_specs/member_api_model_spec.rb +38 -0
- data/spec/data_model_specs/message_api_model_spec.rb +19 -0
- data/spec/data_model_specs/social_accounts_api_model_spec.rb +25 -0
- data/spec/data_model_specs/token_api_model_spec.rb +21 -0
- data/spec/spec_helper.rb +28 -0
- data/spec/support/temp_user.doc +0 -0
- data/spec/support/temp_user.png +0 -0
- data/spec/support/user_sign_up.rb +20 -0
- data/wavelabs_client_api.gemspec +41 -0
- metadata +183 -0
@@ -0,0 +1,92 @@
|
|
1
|
+
require 'httmultiparty'
|
2
|
+
|
3
|
+
module WavelabsClientApi
|
4
|
+
module Client
|
5
|
+
module Api
|
6
|
+
module Core
|
7
|
+
class BaseApi
|
8
|
+
|
9
|
+
include HTTMultiParty
|
10
|
+
|
11
|
+
#debug_output $stdout
|
12
|
+
|
13
|
+
headers 'Accept' => 'application/json', 'Content-Type' => 'application/json'
|
14
|
+
|
15
|
+
def base_api_url(uri)
|
16
|
+
site_url + uri
|
17
|
+
end
|
18
|
+
|
19
|
+
def site_url
|
20
|
+
WavelabsClientApi.configuration.api_host_url
|
21
|
+
end
|
22
|
+
|
23
|
+
def client_id
|
24
|
+
WavelabsClientApi.configuration.client_key
|
25
|
+
end
|
26
|
+
|
27
|
+
def client_secret
|
28
|
+
WavelabsClientApi.configuration.client_secret
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.check_connection?
|
32
|
+
begin
|
33
|
+
res = self.get(WavelabsClientApi.configuration.api_host_url)
|
34
|
+
if res.code == 200
|
35
|
+
true
|
36
|
+
end
|
37
|
+
rescue StandardError
|
38
|
+
false
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def send_request_with_token(method, url, access_token, body = nil, query = nil)
|
43
|
+
|
44
|
+
begin
|
45
|
+
self.class.send(method, url, :body => body, :query => query, :headers => {"Authorization" => "Bearer " + access_token})
|
46
|
+
rescue StandardError
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
def send_request(method, url, body = nil, query_params = nil)
|
52
|
+
begin
|
53
|
+
self.class.send(method, url, :body => body.to_json, :query => query_params)
|
54
|
+
rescue StandardError
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
|
59
|
+
def create_login_model(login_params)
|
60
|
+
WavelabsClientApi::Client::Api::DataModels::LoginApiModel.new(login_params)
|
61
|
+
end
|
62
|
+
|
63
|
+
def create_member_model(json_response, except_token)
|
64
|
+
WavelabsClientApi::Client::Api::DataModels::MemberApiModel.new(json_response, except_token)
|
65
|
+
end
|
66
|
+
|
67
|
+
def create_token_model(json_response)
|
68
|
+
WavelabsClientApi::Client::Api::DataModels::TokenApiModel.new(json_response)
|
69
|
+
end
|
70
|
+
|
71
|
+
def create_media_model(json_response)
|
72
|
+
WavelabsClientApi::Client::Api::DataModels::MediaApiModel.new(json_response)
|
73
|
+
end
|
74
|
+
|
75
|
+
def create_message_model(json_response)
|
76
|
+
WavelabsClientApi::Client::Api::DataModels::MessageApiModel.new(json_response)
|
77
|
+
end
|
78
|
+
|
79
|
+
def create_social_model(json_response)
|
80
|
+
WavelabsClientApi::Client::Api::DataModels::SocialAccountsApiModel.new(json_response)
|
81
|
+
end
|
82
|
+
|
83
|
+
def create_token_details_model(json_response)
|
84
|
+
WavelabsClientApi::Client::Api::DataModels::TokenDetailsApiModel.new(json_response)
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# This class is responsible for handling
|
2
|
+
# Requests from Com::Nbos::Core::MediaController.
|
3
|
+
# It will create the request based on Controller request params and
|
4
|
+
# send that request to Wavelabs API server and return the response back.
|
5
|
+
# While sending respose back to receiver it will create the virtual models
|
6
|
+
# from Com::Nbos::Api::DataModels
|
7
|
+
|
8
|
+
class WavelabsClientApi::Client::Api::Core::MediaApi < WavelabsClientApi::Client::Api::Core::BaseApi
|
9
|
+
|
10
|
+
MEDIA_URI = "/api/media/v0/media"
|
11
|
+
|
12
|
+
def get_media(user_id, media_for, access_token)
|
13
|
+
url_path = base_api_url(MEDIA_URI)
|
14
|
+
query_params = { :id => user_id, :mediafor => media_for}
|
15
|
+
api_response = send_request_with_token("get", url_path, access_token, nil, query_params)
|
16
|
+
|
17
|
+
build_media_response(api_response)
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
def upload_media(file_path, media_for, access_token, user_id)
|
22
|
+
url_path = base_api_url(MEDIA_URI)
|
23
|
+
query_params = { :id => user_id,
|
24
|
+
:mediafor => media_for
|
25
|
+
}
|
26
|
+
|
27
|
+
body = {:file => File.new(file_path)}
|
28
|
+
|
29
|
+
api_response = send_request_with_token("post", url_path, access_token, body, query_params)
|
30
|
+
File.delete(file_path) if !file_path.include?("/spec/support/")
|
31
|
+
build_media_response(api_response)
|
32
|
+
end
|
33
|
+
|
34
|
+
def build_media_response(api_response)
|
35
|
+
begin
|
36
|
+
if api_response.code == 200
|
37
|
+
media_model = create_media_model(api_response.parsed_response)
|
38
|
+
{status: 200, media: media_model}
|
39
|
+
end
|
40
|
+
rescue StandardError
|
41
|
+
message_model = create_message_model(nil)
|
42
|
+
message_model.message = "Internal Server Error Please Try After Some Time."
|
43
|
+
{ status: 500, message: message_model}
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
|
48
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
# This class is responsible for handling
|
2
|
+
# Requests from Com::Nbos::Core::SocialController.
|
3
|
+
# It will create the request based on Controller request params and
|
4
|
+
# send that request to Wavelabs API server and return the response back.
|
5
|
+
# While sending respose back to receiver it will create the virtual models
|
6
|
+
# from Com::Nbos::Api::DataModels
|
7
|
+
|
8
|
+
class WavelabsClientApi::Client::Api::Core::SocialApi < WavelabsClientApi::Client::Api::Core::BaseApi
|
9
|
+
|
10
|
+
# Api Server Social Authentication End Point URIs
|
11
|
+
FACEBOOK_LOGIN_URI = "/api/identity/v0/auth/social/facebook/connect"
|
12
|
+
GOOGLE_LOGIN_URI = "/api/identity/v0/auth/social/googlePlus/connect"
|
13
|
+
TWITER_LOGIN_URI = "/api/identity/v0/auth/social/twitter/connect"
|
14
|
+
GITHUB_LOGIN_URI = "/api/identity/v0/auth/social/gitHub/connect"
|
15
|
+
LINKEDIN_LOGIN_URI = "/api/identity/v0/auth/social/linkedIn/connect"
|
16
|
+
INSTAGRAM_LOGIN_URI = "/api/identity/v0/auth/social/instagram/connect"
|
17
|
+
INVALID_SOCIAL_URI = "/api/identity/v0/auth/social/invalid/connect"
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
def login(social_params, provider, access_token)
|
22
|
+
social_uri = get_scoial_login_uri(provider)
|
23
|
+
url_path = base_api_url(social_uri)
|
24
|
+
|
25
|
+
connection_options = { :clientId => client_id,
|
26
|
+
:accessToken => social_params[:credentials][:token],
|
27
|
+
:expiresIn => "#{social_params[:credentials][:expires_at]}"
|
28
|
+
}
|
29
|
+
api_response = send_request_with_token('post', url_path, access_token, connection_options.to_json)
|
30
|
+
|
31
|
+
|
32
|
+
if api_response.parsed_response["message"].present?
|
33
|
+
social_member_model = create_member_model(nil, true)
|
34
|
+
social_member_model.add_messages(api_response.parsed_response)
|
35
|
+
else
|
36
|
+
social_member_model = create_member_model(api_response.parsed_response, false)
|
37
|
+
end
|
38
|
+
|
39
|
+
begin
|
40
|
+
if api_response.code == 200
|
41
|
+
{ status: 200, login: social_member_model}
|
42
|
+
elsif api_response.code == 400
|
43
|
+
social_member_model.add_errors(api_response.parsed_response)
|
44
|
+
{ status: 400, login: social_member_model}
|
45
|
+
else
|
46
|
+
social_member_model.add_messages(api_response.parsed_response)
|
47
|
+
{ status: api_response.code, login: social_member_model}
|
48
|
+
end
|
49
|
+
rescue StandardError
|
50
|
+
social_member_model.message = "Internal Server Error Please Try After Some Time."
|
51
|
+
{ status: 500, login: social_member_model}
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
|
57
|
+
# Method to return end point URI for specific social login
|
58
|
+
def get_scoial_login_uri(provider)
|
59
|
+
case provider
|
60
|
+
when "facebook"
|
61
|
+
FACEBOOK_LOGIN_URI
|
62
|
+
when "google_oauth2"
|
63
|
+
GOOGLE_LOGIN_URI
|
64
|
+
when "twitter"
|
65
|
+
TWITER_LOGIN_URI
|
66
|
+
when "github"
|
67
|
+
GITHUB_LOGIN_URI
|
68
|
+
when "linkedin"
|
69
|
+
LINKEDIN_LOGIN_URI
|
70
|
+
when "instagram"
|
71
|
+
INSTAGRAM_LOGIN_URI
|
72
|
+
else
|
73
|
+
INVALID_SOCIAL_URI
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
|
78
|
+
end
|
@@ -0,0 +1,90 @@
|
|
1
|
+
# This class is responsible for handling
|
2
|
+
# Requests from Com::Nbos::Core::UsersController.
|
3
|
+
# It will create the request based on Controller request params and
|
4
|
+
# send that request to Wavelabs API server and return the response back.
|
5
|
+
# While sending respose back to receiver it will create the virtual models
|
6
|
+
# from Com::Nbos::Api::DataModels
|
7
|
+
|
8
|
+
class WavelabsClientApi::Client::Api::Core::UsersApi < WavelabsClientApi::Client::Api::Core::BaseApi
|
9
|
+
|
10
|
+
SIGNUP_URI = "/api/identity/v0/users/signup"
|
11
|
+
USER_URI = "/api/identity/v0/users"
|
12
|
+
|
13
|
+
def sign_up(sign_up_params, access_token)
|
14
|
+
url_path = base_api_url(SIGNUP_URI)
|
15
|
+
connection_options = { :clientId => client_id,
|
16
|
+
:username => sign_up_params[:username],
|
17
|
+
:password => sign_up_params[:password],
|
18
|
+
:email => sign_up_params[:email],
|
19
|
+
:firstName => sign_up_params[:firstName],
|
20
|
+
:lastName => sign_up_params[:lastName]
|
21
|
+
}
|
22
|
+
api_response = send_request_with_token('post', url_path, access_token, connection_options.to_json)
|
23
|
+
|
24
|
+
new_member_model = create_login_model(sign_up_params)
|
25
|
+
|
26
|
+
begin
|
27
|
+
if api_response.code == 200
|
28
|
+
member_api_model = create_member_model(api_response.parsed_response, false)
|
29
|
+
{status: 200, member: member_api_model}
|
30
|
+
elsif api_response.code == 400
|
31
|
+
new_member_model.add_errors(api_response.parsed_response)
|
32
|
+
{status: api_response.code, member: new_member_model}
|
33
|
+
else
|
34
|
+
new_member_model.add_messages(api_response.parsed_response)
|
35
|
+
{status: api_response.code, member: new_member_model}
|
36
|
+
end
|
37
|
+
rescue StandardError
|
38
|
+
new_member_model.message = "Internal Server Error Please Try After Some Time."
|
39
|
+
{ status: 500, member: new_member_model}
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
def show(user_params, access_token)
|
45
|
+
url_path = base_api_url(USER_URI + "/#{user_params[:id]}")
|
46
|
+
api_response = send_request_with_token('get', url_path, access_token)
|
47
|
+
begin
|
48
|
+
if api_response.code == 200
|
49
|
+
normalized_res = {"member" => api_response.parsed_response}
|
50
|
+
{status: 200, member: create_member_model(normalized_res, true)}
|
51
|
+
else
|
52
|
+
login_model = create_login_model(nil)
|
53
|
+
login_model.add_messages(api_response.parsed_response)
|
54
|
+
{ status: api_response.code, member: login_model}
|
55
|
+
end
|
56
|
+
rescue StandardError
|
57
|
+
login_model = create_login_model(nil)
|
58
|
+
login_model.message = "Internal Server Error Please Try After Some Time."
|
59
|
+
{ status: 500, member: login_model}
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def update(user_params, access_token)
|
64
|
+
url_path = base_api_url(USER_URI + "/#{user_params[:id]}")
|
65
|
+
connection_options = {
|
66
|
+
:email => user_params[:email],
|
67
|
+
:firstName => user_params[:firstName],
|
68
|
+
:lastName => user_params[:lastName],
|
69
|
+
:description => user_params[:description],
|
70
|
+
:phone => user_params[:phone]
|
71
|
+
}
|
72
|
+
api_response = send_request_with_token('put', url_path, access_token, connection_options.to_json)
|
73
|
+
|
74
|
+
begin
|
75
|
+
if api_response.code == 200
|
76
|
+
normalized_res = {"member" => api_response.parsed_response}
|
77
|
+
{status: 200, member: create_member_model(normalized_res, true)}
|
78
|
+
elsif api_response.code == 400
|
79
|
+
member_model = create_member_model({"member" => user_params}, true)
|
80
|
+
member_model.add_errors(api_response.parsed_response)
|
81
|
+
{status: 400, member: member_model}
|
82
|
+
end
|
83
|
+
rescue StandardError
|
84
|
+
member_model = create_member_model(nil, true)
|
85
|
+
member_model.message = "Internal Server Error Please Try After Some Time."
|
86
|
+
{ status: 500, member: member_model}
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module WavelabsClientApi
|
2
|
+
module Client
|
3
|
+
module Api
|
4
|
+
module DataModels
|
5
|
+
class BaseApiModel
|
6
|
+
|
7
|
+
include ActiveModel::Validations
|
8
|
+
include ActiveModel::Conversion
|
9
|
+
extend ActiveModel::Naming
|
10
|
+
|
11
|
+
def create_login_model(login_params)
|
12
|
+
WavelabsClientApi::Client::Api::DataModels::LoginApiModel.new(login_params)
|
13
|
+
end
|
14
|
+
|
15
|
+
def create_member_model(json_response, except_token)
|
16
|
+
WavelabsClientApi::Client::Api::DataModels::MemberApiModel.new(json_response, except_token)
|
17
|
+
end
|
18
|
+
|
19
|
+
def create_token_model(json_response)
|
20
|
+
WavelabsClientApi::Client::Api::DataModels::TokenApiModel.new(json_response)
|
21
|
+
end
|
22
|
+
|
23
|
+
def create_media_model(json_response)
|
24
|
+
WavelabsClientApi::Client::Api::DataModels::MediaApiModel.new(json_response)
|
25
|
+
end
|
26
|
+
|
27
|
+
def create_message_model(json_response)
|
28
|
+
WavelabsClientApi::Client::Api::DataModels::MessageApiModel.new(json_response)
|
29
|
+
end
|
30
|
+
|
31
|
+
def create_social_model(json_response)
|
32
|
+
WavelabsClientApi::Client::Api::DataModels::SocialAccountsApiModel.new(json_response)
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# This class is a virtual Model for LoginApiModel.
|
2
|
+
# It have required attributes to create the LoginApiModel object.
|
3
|
+
# And also it included the Rails ActiveModel::Validations to
|
4
|
+
# add errors which will populate on views. Based on the response from
|
5
|
+
# Wavelabs API server 'add_errors' or 'add_messages' methods add appropriate
|
6
|
+
# messages to LoginApi model object.
|
7
|
+
|
8
|
+
class WavelabsClientApi::Client::Api::DataModels::LoginApiModel < WavelabsClientApi::Client::Api::DataModels::BaseApiModel
|
9
|
+
|
10
|
+
attr_accessor :username, :password, :email, :firstName, :lastName, :phone, :newPassword, :message
|
11
|
+
|
12
|
+
def initialize(login_params = nil)
|
13
|
+
if login_params.present?
|
14
|
+
@username = login_params["username"]
|
15
|
+
@password = login_params["password"]
|
16
|
+
@email = login_params["email"]
|
17
|
+
@firstName = login_params["firstName"]
|
18
|
+
@lastName = login_params["lastName"]
|
19
|
+
@phone = login_params["phone"]
|
20
|
+
@newPassword = login_params["newPassword"]
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def add_errors(json_response)
|
25
|
+
json_response["errors"].each do |e|
|
26
|
+
property_name = e['propertyName']
|
27
|
+
msg = e['message']
|
28
|
+
self.errors[property_name] << msg
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def add_messages(json_response)
|
33
|
+
if json_response["message"].present?
|
34
|
+
@message = json_response["message"]
|
35
|
+
elsif json_response["error"].present?
|
36
|
+
@message = json_response["error"]
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# This class is a virtual Model for MediaApi model.
|
2
|
+
# It have required attributes to create the MediaApi model.
|
3
|
+
# And also it included the Rails ActiveModel::Validations to
|
4
|
+
# add errors which will populate on views. Based on the response from
|
5
|
+
# Wavelabs API server aading appropriate
|
6
|
+
# message to MediaApi model object w hile initialize.
|
7
|
+
|
8
|
+
|
9
|
+
# To-Do
|
10
|
+
# Right now we are getting 200 status code for invalid file formates
|
11
|
+
# Need to Cahnge the logic based on API server.
|
12
|
+
class WavelabsClientApi::Client::Api::DataModels::MediaApiModel < WavelabsClientApi::Client::Api::DataModels::BaseApiModel
|
13
|
+
|
14
|
+
attr_accessor :extension, :mediaFileDetailsList, :supportedsizes, :newMedia, :message
|
15
|
+
|
16
|
+
def initialize(media_params = nil)
|
17
|
+
if media_params.present? && media_params["extension"].present?
|
18
|
+
@extension = media_params["extension"]
|
19
|
+
@mediaFileDetailsList = media_params["mediaFileDetailsList"]
|
20
|
+
@supportedsizes = media_params["supportedsizes"]
|
21
|
+
elsif media_params.present? && media_params["message"].present?
|
22
|
+
@message = media_params["message"]
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# This class is a virtual Model for MemberApi model.
|
2
|
+
# It have required attributes to create the MemberApi model.
|
3
|
+
# It will create associated TokenApi & SocialAccountsApi model objects based on Response.
|
4
|
+
# And also it included the Rails ActiveModel::Validations to
|
5
|
+
# add errors which will populate on views. Based on the response from
|
6
|
+
# Wavelabs API server 'add_errors' or 'add_messages' methods add appropriate
|
7
|
+
# messages to MemberAPi model object.
|
8
|
+
|
9
|
+
class WavelabsClientApi::Client::Api::DataModels::MemberApiModel < WavelabsClientApi::Client::Api::DataModels::BaseApiModel
|
10
|
+
|
11
|
+
attr_accessor :id, :uuid, :username, :description, :email, :firstName, :lastName, :phone, :social_accounts, :token, :message
|
12
|
+
|
13
|
+
def initialize(option_params, except_token = false)
|
14
|
+
if option_params.present?
|
15
|
+
@id = option_params["member"]["id"]
|
16
|
+
@uuid = option_params["member"]["uuid"]
|
17
|
+
@description = option_params["member"]["description"]
|
18
|
+
@email = option_params["member"]["email"]
|
19
|
+
@firstName = option_params["member"]["firstName"]
|
20
|
+
@lastName = option_params["member"]["lastName"]
|
21
|
+
@phone = option_params["member"]["phone"]
|
22
|
+
build_associated_models(option_params["token"], option_params["member"]["socialAccounts"], except_token)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def build_associated_models(token_params, social_params, except_token)
|
27
|
+
@token = create_token_model(token_params) if !except_token
|
28
|
+
@social_accounts = []
|
29
|
+
if social_params.presence && social_params.size > 0
|
30
|
+
social_params.each do |sp|
|
31
|
+
@social_accounts << create_social_model(sp)
|
32
|
+
end
|
33
|
+
else
|
34
|
+
@social_accounts << create_social_model(nil)
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
def add_errors(json_response)
|
40
|
+
json_response["errors"].each do |e|
|
41
|
+
property_name = e['propertyName']
|
42
|
+
msg = e['message']
|
43
|
+
self.errors[property_name] << msg
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def add_messages(json_response)
|
48
|
+
if json_response["message"].present?
|
49
|
+
@message = json_response["message"]
|
50
|
+
elsif json_response["error"].present?
|
51
|
+
@message = json_response["error"]
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|