ishapi 0.1.8.112 → 0.1.8.113

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8cfba9842d285f46f58468cdadfe514a9e77531682fed68d123cafb0e8eb472b
4
- data.tar.gz: 701523107e15d0d3e4fe42cb4b925b91c42d9ce1266d603836b5d58484d319aa
3
+ metadata.gz: d4637596e6a37543fa475080036de6cf6608819bdec649a8f532dbfd41d2cef9
4
+ data.tar.gz: cd7efda397b67a7aca5c8367aa5bd99868d9a125667ed00ad3bdaa6e341ece89
5
5
  SHA512:
6
- metadata.gz: 88aeba09b1c07608e32d4ca772f750deea93313a646130dada9593d603a52685b647761dce4fd298952c3498b08cae1c223be4bf56ff0084b433364f31c30619
7
- data.tar.gz: 9cfe824121c501a2f54baf591084b559767ac4319868573f8d9315672e2a4562a3ea92e591db001be23b74e174817307185f4e0d5618a2801124d62c133df3f3
6
+ metadata.gz: 0e09846934b8b8ef8e8313a8901eab92ffc3bb4e02c355da51c575f9b61a6118e28a2b6babf8e4963658988161ac33ab167b02bcad02014c71b9ba182e2ba55c
7
+ data.tar.gz: 2acd4ace8859d8a1b787f45fc58596330287e8d50391c766afd528fad03cc25243da82dcf0e7cb7d084aa9f439662261393d79e868ae3262c355abfaa933417c
@@ -1,5 +1,7 @@
1
1
  module Ishapi
2
2
  class ApplicationController < ActionController::Base
3
+ after_action :append_long_term_token, except: [ :long_term_token, :test ]
4
+
3
5
  protect_from_forgery :prepend => true, :with => :exception
4
6
  layout :false
5
7
 
@@ -12,11 +14,36 @@ module Ishapi
12
14
  def test
13
15
  end
14
16
 
17
+ def long_term_token
18
+ authorize! :long_term_token, ::Ishapi
19
+
20
+ accessToken = request.headers[:accessToken]
21
+ accessToken ||= params[:accessToken]
22
+
23
+ params['domain'] = 'tgm.piousbox.com'
24
+
25
+ response = HTTParty.get "https://graph.facebook.com/v5.0/oauth/access_token?grant_type=fb_exchange_token&" +
26
+ "client_id=#{FB[params['domain']][:app]}&client_secret=#{FB[params['domain']][:secret]}&" +
27
+ "fb_exchange_token=#{accessToken}"
28
+ j = JSON.parse response.body
29
+ @long_term_token = j['access_token']
30
+
31
+ render json: { long_term_token: @long_term_token }
32
+ end
33
+
15
34
  #
16
35
  # private
17
36
  #
18
37
  private
19
38
 
39
+ def append_long_term_token
40
+ puts! 'after action!', @long_term_token
41
+
42
+ if @long_term_token
43
+ response.body = JSON.parse(response.body).merge({ long_term_token: @long_term_token }).to_json
44
+ end
45
+ end
46
+
20
47
  def check_multiprofile provider = 'google'
21
48
  if 'google' == provider
22
49
  # client_secrets = ::Google::APIClient::ClientSecrets.load
@@ -30,25 +57,50 @@ module Ishapi
30
57
  @current_user = User.find_by email: decoded_token[0]['email']
31
58
 
32
59
  elsif 'facebook' == provider
60
+ # accessToken ||= params[:fb_long_access_token]
61
+
33
62
  accessToken = request.headers[:accessToken]
34
- accessToken ||= params[:fb_long_access_token]
35
63
  accessToken ||= params[:accessToken]
36
64
  if accessToken
65
+
66
+ #
67
+ # long-term token
68
+ #
69
+ params['domain'] = 'tgm.piousbox.com'
70
+ puts! accessToken, 'accessToken'
71
+ response = HTTParty.get "https://graph.facebook.com/v5.0/oauth/access_token?grant_type=fb_exchange_token&" +
72
+ "client_id=#{FB[params['domain']][:app]}&client_secret=#{FB[params['domain']][:secret]}&" +
73
+ "fb_exchange_token=#{accessToken}"
74
+ j = JSON.parse response.body
75
+ @long_term_token = j['access_token']
76
+
77
+
37
78
  @graph = Koala::Facebook::API.new( accessToken )
38
79
  @me = @graph.get_object( 'me', :fields => 'email' )
39
80
  @current_user = User.where( :email => @me['email'] ).first
40
81
  @current_user ||= User.create! email: @me['email'], password: SecureRandom.urlsafe_base64
41
-
82
+
42
83
  @current_profile = @current_user.profile
43
84
  if !@current_profile
85
+ begin
86
+ g = Gallery.find '5e1495e2d697f768ad0779eb'
87
+ rescue Mongoid::Errors::DocumentNotFound => e
88
+ g = Gallery.create id: '5e1495e2d697f768ad0779eb'
89
+ end
44
90
  @current_profile = IshModels::UserProfile.create user: @current_user, name: @me['email'], email: @me['email']
45
91
  test_newsitem = Newsitem.new gallery_id: '5e1495e2d697f768ad0779eb'
46
92
  @current_profile.newsitems << test_newsitem
47
93
  @current_profile.save
48
94
  end
95
+ @current_profile.update fb_long_access_token: @long_term_token
49
96
  else
50
97
  @current_user = current_user if Rails.env.test?
51
98
  end
99
+
100
+ puts! @current_user, 'current_user'
101
+ puts! @current_profile, 'current_profile'
102
+ # byebug
103
+
52
104
  end
53
105
 
54
106
  sign_in @current_user, scope: :user
@@ -51,7 +51,7 @@ class Ishapi::Ability
51
51
  report.is_public
52
52
  end
53
53
 
54
- can [ :welcome_home, :fb_sign_in, :open_permission ], Ishapi
54
+ can [ :fb_sign_in, :long_term_token, :open_permission, :welcome_home ], Ishapi
55
55
 
56
56
  can [ :index, :show ], Site
57
57
 
@@ -55,10 +55,11 @@ Ishapi::Engine.routes.draw do
55
55
  namespace :tgm do
56
56
  end
57
57
 
58
- post 'users/fb_sign_in', :to => 'users#fb_sign_in'
59
- post 'users/profile', :to => 'users#show'
60
- post 'users/profile/update', :to => 'users#update'
61
- get 'users/profile', :to => 'users#show' # @TODO: only for testing! accessToken must be hidden
58
+ post 'users/fb_sign_in', :to => 'users#fb_sign_in'
59
+ post 'users/profile', :to => 'users#show'
60
+ post 'users/profile/update', :to => 'users#update'
61
+ get 'users/profile', :to => 'users#show' # @TODO: only for testing! accessToken must be hidden
62
+ match 'users/long_term_token', to: 'application#long_term_token', via: [ :get, :post ]
62
63
 
63
64
  get 'venues', :to => 'venues#index'
64
65
  get 'venues/view/:venuename', :to => 'venues#show'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ishapi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8.112
4
+ version: 0.1.8.113
5
5
  platform: ruby
6
6
  authors:
7
7
  - piousbox
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-24 00:00:00.000000000 Z
11
+ date: 2020-01-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails