ishapi 0.1.8.162 → 0.1.8.167

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7fa09912746d1a54e92a52ed51546cc456494013bbf086422b59245283d8d1d9
4
- data.tar.gz: 6a6c0fed814e96ecf013ac7166c884d4bad34d674ef0fe7f8fb4c7d19a26905b
3
+ metadata.gz: 6e49663b1aa867161c3b7142934d9ff52cebbfd08e144667a89b3bc729266836
4
+ data.tar.gz: c648fdda0b0c325fee88d8f3dfd509e950de62bf3e23be287e60c7a45af98d77
5
5
  SHA512:
6
- metadata.gz: 923863eddd777cdbd6f01509fd59ac5de72544cd88277f6c6247052bc2da9975ece2a62a56b3debe6ce804adcda1c546fec8c3b75215731a66ce3a05f31fa9b7
7
- data.tar.gz: e4cf17ccc87fc3bfaade2e5b3c90f0ea526acc16ab3079231f04f8783b5364896d7d68fa73d3d5cc28d5a7590827768dce66e764f94b3b5cd2db7a390d3b7fd7
6
+ metadata.gz: 4a833d2656fb03cd94e40f660f5baa80fc12fdcd65a61fdbc48491b30f8275ae1788993b25abd8b9e009098eaf68aa15eb9b7b893b95b0a12cc96bccabaa3af8
7
+ data.tar.gz: d8e8676f306debb28d9c19945c10173c18ddd604623e0d45f9f0d5f52994203d2a5dbd01ad65c494eb84d3c818cce1d7e23bbeed70c900ad249bd63d937d5aea
@@ -1,73 +1,73 @@
1
- module Ishapi
2
- class ApplicationController < ActionController::Base
3
1
 
4
- ## POST /api/users/long_term_token , a FB login flow
5
- def long_term_token
6
- accessToken = request.headers[:accessToken]
7
- accessToken ||= params[:accessToken]
2
+ class Ishapi::ApplicationController < ActionController::Base
8
3
 
9
- params['domain'] = 'tgm.piousbox.com'
4
+ ## POST /api/users/long_term_token , a FB login flow
5
+ def long_term_token
6
+ accessToken = request.headers[:accessToken]
7
+ accessToken ||= params[:accessToken]
10
8
 
11
- response = ::HTTParty.get "https://graph.facebook.com/v5.0/oauth/access_token?grant_type=fb_exchange_token&" +
12
- "client_id=#{::FB[params['domain']][:app]}&client_secret=#{::FB[params['domain']][:secret]}&" +
13
- "fb_exchange_token=#{accessToken}"
14
- j = JSON.parse response.body
15
- @long_term_token = j['access_token']
16
- @graph = Koala::Facebook::API.new( accessToken )
17
- @me = @graph.get_object( 'me', :fields => 'email' )
18
- @current_user = User.where( :email => @me['email'] ).first
9
+ params['domain'] = 'tgm.piousbox.com'
19
10
 
20
- # send the jwt to client
21
- @jwt_token = encode(user_id: @current_user.id.to_s)
11
+ response = ::HTTParty.get "https://graph.facebook.com/v5.0/oauth/access_token?grant_type=fb_exchange_token&" +
12
+ "client_id=#{::FB[params['domain']][:app]}&client_secret=#{::FB[params['domain']][:secret]}&" +
13
+ "fb_exchange_token=#{accessToken}"
14
+ j = JSON.parse response.body
15
+ @long_term_token = j['access_token']
16
+ @graph = Koala::Facebook::API.new( accessToken )
17
+ @me = @graph.get_object( 'me', :fields => 'email' )
18
+ @current_user = User.where( :email => @me['email'] ).first
22
19
 
23
- render json: {
24
- email: @current_user.email,
25
- jwt_token: @jwt_token,
26
- long_term_token: @long_term_token,
27
- n_unlocks: @current_user.profile.n_unlocks,
28
- }
29
- end
20
+ # send the jwt to client
21
+ @jwt_token = encode(user_id: @current_user.id.to_s)
30
22
 
31
- private
23
+ render json: {
24
+ email: @current_user.email,
25
+ jwt_token: @jwt_token,
26
+ long_term_token: @long_term_token,
27
+ n_unlocks: @current_user.profile.n_unlocks,
28
+ }
29
+ end
32
30
 
33
- def check_profile
34
- begin
35
- decoded = decode(params[:jwt_token])
36
- @current_user = User.find decoded['user_id']
37
- rescue JWT::ExpiredSignature, JWT::DecodeError => e
38
- flash[:notice] = 'You arent logged in, or you have been logged out.'
39
- # @current_user = User.new
40
- end
41
- end
31
+ private
42
32
 
43
- # jwt
44
- def check_jwt
45
- begin
46
- decoded = decode(params[:jwt_token])
47
- @current_user = User.find decoded['user_id']
48
- rescue JWT::ExpiredSignature
49
- Rails.logger.info("JWT::ExpiredSignature")
50
- rescue JWT::DecodeError
51
- Rails.logger.info("JWT::DecodeError")
52
- end
53
- current_ability
33
+ def check_profile
34
+ begin
35
+ decoded = decode(params[:jwt_token])
36
+ @current_user = User.find decoded['user_id']
37
+ rescue JWT::ExpiredSignature, JWT::DecodeError => e
38
+ flash[:notice] = 'You are not logged in, or you have been logged out.'
39
+ # puts! 'You are not logged in, or you have been logged out.'
54
40
  end
41
+ end
55
42
 
56
- # jwt
57
- def decode(token)
58
- decoded = JWT.decode(token, Rails.application.secrets.secret_key_base.to_s)[0]
59
- HashWithIndifferentAccess.new decoded
43
+ # jwt
44
+ def check_jwt
45
+ begin
46
+ decoded = decode(params[:jwt_token])
47
+ @current_user = User.find decoded['user_id']
48
+ rescue JWT::ExpiredSignature
49
+ Rails.logger.info("JWT::ExpiredSignature")
50
+ rescue JWT::DecodeError
51
+ Rails.logger.info("JWT::DecodeError")
60
52
  end
53
+ current_ability
54
+ end
61
55
 
62
- # jwt
63
- def encode(payload, exp = 48.hours.from_now) # @TODO: definitely change, right now I expire once in 2 days.
64
- payload[:exp] = exp.to_i
65
- JWT.encode(payload, Rails.application.secrets.secret_key_base.to_s)
66
- end
56
+ # jwt
57
+ def decode(token)
58
+ decoded = JWT.decode(token, Rails.application.secrets.secret_key_base.to_s)[0]
59
+ HashWithIndifferentAccess.new decoded
60
+ end
67
61
 
68
- def current_ability
69
- @current_ability ||= Ishapi::Ability.new( current_user )
70
- end
62
+ # jwt
63
+ def encode(payload, exp = 48.hours.from_now) # @TODO: definitely change, right now I expire once in 2 days.
64
+ payload[:exp] = exp.to_i
65
+ JWT.encode(payload, Rails.application.secrets.secret_key_base.to_s)
66
+ end
71
67
 
68
+ def current_ability
69
+ @current_ability ||= Ishapi::Ability.new( @current_user )
72
70
  end
71
+
73
72
  end
73
+
@@ -1,36 +1,47 @@
1
+
1
2
  require_dependency "ishapi/application_controller"
2
- module Ishapi
3
- class MapsController < ApplicationController
4
- before_action :check_profile, only: [ :show ]
5
-
6
- def show
7
- @map = ::Gameui::Map.find_by slug: params[:slug]
8
- @markers = @map.markers.where( is_active: true )
9
- @newsitems = @map.newsitems
10
-
11
- case @map.ordering_type
12
- when ::Gameui::Map::ORDERING_TYPE_ALPHABETIC
13
- @markers = @markers.order_by( name: :asc )
14
- when ::Gameui::Map::ORDERING_TYPE_CUSTOM
15
- @markers = @markers.order_by( ordering: :asc )
16
- end
17
-
18
- ## @TODO: figure this out eventually
19
- if city = City.where( cityname: @map.slug ).first
20
- # @newsitems = city.newsitems
21
- @galleries = city.galleries
22
- @reports = city.reports
23
- @videos = city.videos
24
- end
25
-
26
- authorize! :show, @map
27
- end
28
3
 
29
- def show_marker
30
- @marker = ::Gameui::Marker.find_by slug: params[:slug]
31
- authorize! :show, @marker
32
- render json: @marker
4
+ class Ishapi::MapsController < Ishapi::ApplicationController
5
+ before_action :check_profile, only: [ :show ]
6
+
7
+ def show
8
+ @location = ::Gameui::Map.unscoped.find_by slug: params[:slug]
9
+ @map = @location.map || @location
10
+ authorize! :show, @map
11
+ @newsitems = @location.newsitems
12
+
13
+ ##
14
+ ## @TODO: absolutely change this!
15
+ ##
16
+
17
+ @markers = @map.markers.where( is_active: true )
18
+ if @current_user
19
+ a = @current_user.profile.shared_markers.unscoped.where( is_active: true, map_id: @map.id ).to_a
20
+ @markers = @markers + a
33
21
  end
34
22
 
23
+ # case @map.ordering_type
24
+ # when ::Gameui::Map::ORDERING_TYPE_ALPHABETIC
25
+ # @markers = @markers.order_by( name: :asc )
26
+ # when ::Gameui::Map::ORDERING_TYPE_CUSTOM
27
+ # @markers = @markers.order_by( ordering: :asc )
28
+ # end
29
+
30
+ # ## @TODO: figure this out eventually
31
+ # if city = City.where( cityname: @map.slug ).first
32
+ # # @newsitems = city.newsitems
33
+ # @galleries = city.galleries
34
+ # @reports = city.reports
35
+ # @videos = city.videos
36
+ # end
37
+
38
+ end
39
+
40
+ def show_marker
41
+ @marker = ::Gameui::Marker.find_by slug: params[:slug]
42
+ authorize! :show, @marker
43
+ render json: @marker
35
44
  end
45
+
36
46
  end
47
+
@@ -8,14 +8,9 @@ class Ishapi::Ability
8
8
  #
9
9
  unless user.blank?
10
10
 
11
- if user.profile && user.profile.sudoer?
12
- can :manage, :all
13
- end
14
-
15
- can [ :update ], ::CoTailors::Address do |address|
16
- puts [ user.inspect, address.inspect ], '+++ user in cancancan'
17
- true
18
- end
11
+ # if user.profile && user.profile.sudoer?
12
+ # can :manage, :all
13
+ # end
19
14
 
20
15
  can [ :my_index ], Gallery
21
16
  can [ :show ], Gallery do |gallery|
@@ -25,7 +20,7 @@ class Ishapi::Ability
25
20
 
26
21
  can [ :create, :unlock ], ::Ish::Payment
27
22
 
28
- can [ :buy_stars ], ::IshModels::UserProfile
23
+ can [ :buy_stars ], ::Ish::UserProfile
29
24
 
30
25
  end
31
26
  #
@@ -33,22 +28,12 @@ class Ishapi::Ability
33
28
  #
34
29
  user ||= User.new
35
30
 
36
- can [ :show ], IshModels::UserProfile
31
+ can [ :show ], Ish::UserProfile
37
32
 
38
33
  can [ :index, :show ], City
39
34
 
40
- can [ :update ], ::CoTailors::Address
41
- can [ :add ], ::CoTailors::OrderItem
42
- can [ :create, :update_measurements ], ::CoTailors::Order
43
- can [ :show ], ::CoTailors::Product
44
-
45
35
  can [ :index, :show ], Event
46
36
 
47
- #
48
- # Ish::P
49
- #
50
-
51
-
52
37
  #
53
38
  # G
54
39
  #
@@ -56,18 +41,39 @@ class Ishapi::Ability
56
41
  can [ :show ], Gallery do |gallery|
57
42
  gallery.is_public && !gallery.is_trash
58
43
  end
59
- can [ :index, :show ], ::Gameui::Map
60
- can [ :show ], ::Gameui::Marker
61
44
 
45
+ #
46
+ # I
47
+ #
48
+ can [ :fb_sign_in, :long_term_token, :open_permission, :welcome_home ], Ishapi
49
+
50
+ #
51
+ # M
52
+ #
53
+ can [ :index ], ::Gameui::Map
54
+ can [ :show ], ::Gameui::Map do |map|
55
+ map.is_public || map.shared_profiles.include?( user.profile )
56
+ end
57
+ can [ :show ], ::Gameui::Marker do |m|
58
+ m.is_public
59
+ end
60
+
61
+ #
62
+ # R
63
+ #
62
64
  can [ :index ], Report
63
65
  can [ :my_index, :show ], Report do |report|
64
66
  report.is_public
65
67
  end
66
68
 
67
- can [ :fb_sign_in, :long_term_token, :open_permission, :welcome_home ], Ishapi
68
-
69
+ #
70
+ # S
71
+ #
69
72
  can [ :index, :show ], Site
70
73
 
74
+ #
75
+ # T
76
+ #
71
77
  can [ :index ], Tag
72
78
  can [ :show ], Tag do |tag|
73
79
  tag.is_public
@@ -84,5 +90,6 @@ class Ishapi::Ability
84
90
  can [ :show ], Video do |video|
85
91
  video.is_public
86
92
  end
93
+
87
94
  end
88
95
  end
@@ -3,7 +3,7 @@
3
3
  # ishapi / cities / features
4
4
  #
5
5
 
6
- key = [ ::IshModels::CacheKey.one.feature_cities ]
6
+ key = [ ::Ish::CacheKey.one.feature_cities ]
7
7
  json.cache! key do
8
8
  json.partial! 'index', :cities => @cities
9
9
  end
@@ -3,7 +3,7 @@
3
3
  # ishapi / cities / index
4
4
  #
5
5
 
6
- key = [ ::IshModels::CacheKey.one.cities ]
6
+ key = [ ::Ish::CacheKey.one.cities ]
7
7
  json.cache! key do
8
8
  json.partial! 'index', :cities => @cities
9
9
  end
@@ -15,6 +15,7 @@ json.cache! this_key do
15
15
  json.h map.h
16
16
  json.img_path map.image.image.url(:original)
17
17
  json.updated_at map.updated_at
18
+ json.rated map.rated
18
19
 
19
20
  json.partial! 'ishapi/markers/index', map: map
20
21
 
@@ -2,7 +2,11 @@
2
2
  # ishapi / maps / show
3
3
  #
4
4
 
5
- this_key = [ @map, params.permit! ]
5
+ this_key = [
6
+ @map.id, @map.updated_at,
7
+ current_user&.profile&.updated_at,
8
+ params.permit!
9
+ ]
6
10
  json.cache! this_key do
7
11
  json.map do
8
12
  json.id @map.id.to_s
@@ -13,18 +17,25 @@ json.cache! this_key do
13
17
  json.h @map.h
14
18
  json.img_path @map.image.image.url(:original)
15
19
  json.updated_at @map.updated_at
20
+ json.rated @map.rated
21
+
22
+ if @map.is_premium
23
+ json.premium_tier @map.premium_tier
24
+ json.is_premium @map.premium_tier > 0
25
+ json.is_purchased current_user&.profile&.has_premium_purchase( @map )
26
+ end
16
27
 
17
28
  if @map.map
18
29
  json.partial! 'ishapi/maps/show', map: @map.map
19
30
  json.config JSON.parse @map.parent.config
20
31
  json.labels JSON.parse @map.parent.labels
21
- json.partial! 'ishapi/markers/index', map: @map.map
32
+ json.partial! 'ishapi/markers/index', markers: @markers
22
33
  else
23
34
  ## I removed json parsing from here! _vp_ 2021-10-14
24
35
  ## I added json parsing here! _vo_ 2021-10-19
25
36
  json.config JSON.parse @map.config
26
37
  json.labels JSON.parse @map.labels
27
- json.partial! 'ishapi/markers/index', map: @map
38
+ json.partial! 'ishapi/markers/index', markers: @markers
28
39
  end
29
40
 
30
41
  json.breadcrumbs do
@@ -3,7 +3,7 @@
3
3
  #
4
4
 
5
5
  json.markers do
6
- json.array! map.markers do |marker|
6
+ json.array! markers do |marker|
7
7
  json.name marker.name
8
8
  json.slug marker.slug
9
9
  json.x marker.x
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.162
4
+ version: 0.1.8.167
5
5
  platform: ruby
6
6
  authors:
7
7
  - piousbox
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-09 00:00:00.000000000 Z
11
+ date: 2022-01-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -206,7 +206,6 @@ files:
206
206
  - app/controllers/ishapi/maps_controller.rb
207
207
  - app/controllers/ishapi/measurements_controller.rb
208
208
  - app/controllers/ishapi/my/galleries_controller.rb
209
- - app/controllers/ishapi/my/my_controller.rb-trash
210
209
  - app/controllers/ishapi/my/reports_controller.rb
211
210
  - app/controllers/ishapi/my/videos_controller.rb
212
211
  - app/controllers/ishapi/newsitems_controller.rb
@@ -303,7 +302,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
303
302
  - !ruby/object:Gem::Version
304
303
  version: '0'
305
304
  requirements: []
306
- rubygems_version: 3.2.25
305
+ rubygems_version: 3.1.6
307
306
  signing_key:
308
307
  specification_version: 4
309
308
  summary: Summary of Ishapi.
@@ -1,42 +0,0 @@
1
-
2
- module Ishapi
3
- module My
4
- class MyController < Ishapi::ApplicationController
5
-
6
- before_action :check_profile
7
-
8
- # @TODO: move to users_controller
9
- def account
10
- @profile = current_user&.profile
11
- authorize! :show, @profile
12
- render 'ishapi/users/account'
13
- rescue CanCan::AccessDenied
14
- render json: {
15
- status: :not_ok,
16
- }, status: 401
17
- end
18
-
19
- =begin
20
- private
21
-
22
- def do_login
23
- token = decode(params[:jwtToken])
24
- @current_user = User.find(token["user_id"])
25
- end
26
-
27
- def set_profile
28
- begin
29
- @graph = Koala::Facebook::API.new( params[:accessToken] )
30
- me = @graph.get_object( 'me', :fields => 'email' )
31
- @profile = IshModels::UserProfile.find_by :email => me['email']
32
- rescue Koala::Facebook::AuthenticationError => e
33
- render :json => { :status => :not_ok, :errors => "Probably expired token." }
34
- return
35
- end
36
- end
37
- =end
38
-
39
- end
40
- end
41
- end
42
-