app_manager 1.0.2 → 1.0.3

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: 847c25a0c23c17f00ef12346b0082f9859f9a4710d349588e9184e3d82bb0f8e
4
- data.tar.gz: '086bcb9fea905bc8f16deadbe0ae1aedc749aa37d8921ce892ed97ffa422d761'
3
+ metadata.gz: a4ac086c11bd0f15ee5cc2a4227d9a46c0ea87b835339fb02c9f038c8076ce78
4
+ data.tar.gz: 1240086895ddad3029dd4faf5609099e56f371ffa771529898e4a2f31c828445
5
5
  SHA512:
6
- metadata.gz: f8efcec332bf8cda8d8c0b25c02103eb519579bdd7617987258d32da06243e487c272ed6258ca992f27cb8e40c3b75b50f0a7698914b37e53c5f3dd8d734493f
7
- data.tar.gz: 61aab970d09abb2d8c1b8032249cfce44ca42255740e49033eeb12cbfc9e4677ea62d3e7f55577bc7ffe84fd412efe0fe9af64cb1dc5373a273e6638e120d851
6
+ metadata.gz: d13d4a9a5de30801b4eadde5fa98880509c1965867a3dc9edaa87cf940f2b10ef9c815b9fe48f0177f8e5cb5fc5696172f77c4b0dcdbdb534d46044f6fa3c1d8
7
+ data.tar.gz: 10bb4cbdecba1ccd6bdde4d33cf03af33adc7c3d39a49df0a21cff55ae829a25cceb1b3ed7bd3eaa56b8122f77a891ef81b7e93f4e7bc2b1d9c6a2560e681ecf
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- app_manager (1.0.2)
4
+ app_manager (1.0.3)
5
5
  httparty
6
6
  kaminari (>= 0.16.3)
7
7
  rails (>= 5.2.0)
data/README.md CHANGED
@@ -2,23 +2,55 @@
2
2
 
3
3
  Welcome to the new gem of Hulkapps.com ! An API wrapper of Hulkapps.com's AppManager portal.
4
4
 
5
- ## Installation
5
+ * [Installation](#step1)
6
+ * [Configuration](#step2)
7
+ * [Usage](#step3)
8
+ * [Extras](#step4)
6
9
 
7
- Step 1) Add following line to your application's Gemfile:
10
+
11
+ <a name="step1"></a>
12
+ ### Installation
13
+
14
+ * Add following line to your application's Gemfile:
8
15
 
9
16
  ```ruby
10
17
  gem 'app_manager'
11
18
  ```
12
19
 
13
- Step 2) Execute following in terminal:
20
+ * Execute following in terminal:
14
21
 
22
+ ```
15
23
  bundle install
24
+ ```
25
+ ```
26
+ rails g app_manager:install
27
+ ```
16
28
 
29
+ this install command will mount routes in your rails route and will create a config file at ```config/initializers/app_manager.rb```
17
30
 
18
- rails g app_manager:install
19
31
 
32
+ <a name="step2"></a>
33
+ ### Configuration
34
+
35
+ * Set Shopify API version to 2022-04 as app_manager is best compatible with this version.
36
+
37
+
38
+ * Please check the 'shops' table that must have 'plan_id' as int/bigint and 'trial_activated_at' as datetime otherwise add its migration like following example:
39
+
40
+ ```
41
+ class AddPlanIdToShops < ActiveRecord::Migration[5.2]
42
+ def change
43
+ add_column :shops, :plan_id, :bigint
44
+ add_column :shops, :trial_activated_at, :datetime
45
+ end
46
+ end
47
+ ```
48
+
49
+ and map these new fields in 'config.field_names' in below initializer file which is generated by install command. Please note: this is important step.
50
+
51
+
52
+ * Please update blank fields in initializer file. Please copy 'uuid' from this [file](https://docs.google.com/spreadsheets/d/1cw2nSKxAHTGn4Cfa98RNdtfHT3zdtwu9bQD7s7hErXc/edit#gid=0) and paste in the following file and make sure that is unique per feature. After copying put your 'app name' next to 'uuid' column in this [file](https://docs.google.com/spreadsheets/d/1cw2nSKxAHTGn4Cfa98RNdtfHT3zdtwu9bQD7s7hErXc/edit#gid=0).
20
53
 
21
- this install command will mount routes in your rails route and will create a config file at ```config/initializers/app_manager.rb```
22
54
 
23
55
  ```
24
56
  AppManager.configure do |config|
@@ -85,24 +117,15 @@ end
85
117
  ```
86
118
 
87
119
 
88
- Please note: Your shops table must have 'plan_id' as int/bigint and 'trial_activated_at' as datetime otherwise add its migration. Sample example:
89
- ```
90
- class AddPlanIdToShops < ActiveRecord::Migration[5.2]
91
- def change
92
- add_column :shops, :plan_id, :bigint
93
- add_column :shops, :trial_activated_at, :datetime
94
- end
95
- end
96
- ```
97
-
98
- and map these new fields in 'config.field_names' in above initializer file.
99
-
100
- Step 3) You must have to set ENV variable with key 'APP_MANAGER_ACCESS_TOKEN' in your application.yml or .env file like this:
120
+
121
+ * You must have to set ENV variable with key 'APP_MANAGER_ACCESS_TOKEN' in your application.yml or .env file like this:
101
122
 
123
+ ```
102
124
  APP_MANAGER_ACCESS_TOKEN: 'XXXXXXXXXXXXXXXXXXX'
103
125
  APP_MANAGER_API_URL: 'https://XXXXXXXX.com'
126
+ ```
104
127
 
105
- Steps 4) App Manager provides a rake task that must needs to include in your existing app cron for every 10 minutes. Like if you are using [whenever](https://github.com/javan/whenever) gem then you must need to include following rake take in your 'schedule.rb' (created by whenever gem)
128
+ * App Manager provides a rake task that must needs to include in your existing app cron for every 10 minutes. Like if you are using [whenever](https://github.com/javan/whenever) gem then you MUST need to include following rake take in your 'schedule.rb' (created by whenever gem)
106
129
 
107
130
  ```
108
131
  every 10.minutes do
@@ -110,7 +133,12 @@ every 10.minutes do
110
133
  end
111
134
  ```
112
135
 
113
- Steps 5) App Manager provides a helper module which needs to include in your 'shop' model something like below
136
+
137
+ <a name="step3"></a>
138
+ ### Usage
139
+
140
+
141
+ * App Manager provides a helper module which needs to include in your 'shop' model something like below
114
142
 
115
143
  ```
116
144
  class Shop < ActiveRecord::Base
@@ -118,10 +146,7 @@ class Shop < ActiveRecord::Base
118
146
  end
119
147
  ```
120
148
 
121
-
122
- ## Usage
123
-
124
- Using above 5th step you can access following methods from your shop object.
149
+ and then you can use follwing methods with your shop objects.
125
150
 
126
151
  ```
127
152
  @shop.has_plan # return true or false
@@ -137,11 +162,10 @@ Using above 5th step you can access following methods from your shop object.
137
162
  ```
138
163
 
139
164
 
165
+ <a name="step4"></a>
166
+ ### Extras
140
167
 
141
- #### As a helper:
142
-
143
-
144
- Then, initialize app_manager instance like with App Manager Portal access:
168
+ * To view the app_manager ruby gem is working in your rails app you can use rails console and initialize app_manager instance like with App Manager Portal access:
145
169
 
146
170
  ```ruby
147
171
  ob = AppManager::Client.new(ENV['APP_MANAGER_ACCESS_TOKEN'])
@@ -152,13 +176,15 @@ To get banners use this command:
152
176
  ob.get_banners
153
177
  ```
154
178
 
155
- #### For Vue UI Library in Rails Project:
179
+
180
+ * For Vue UI Library in Rails Project:
156
181
 
157
182
  Please make sure you have following line in your route file otherwise add this manually.
158
183
 
159
184
  mount AppManager::Engine, at: "/"
160
185
 
161
186
 
187
+
162
188
  ## Development
163
189
 
164
190
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -63,21 +63,27 @@ module AppManager
63
63
 
64
64
  def users
65
65
  if model
66
+ if params[:search]
67
+ search = params[:search]
68
+ @shopify_email = AppManager.configuration.field_names['shopify_email']
69
+ data = model.where("#{@shopify_domain} LIKE :search OR #{@shopify_email} LIKE :search", search: "%#{search}%").page(params[:page]).per(10)
70
+ else
66
71
  data = model.page(params[:page]).per(10)
72
+ end
67
73
  users = {
68
- "current_page" => data.current_page,
69
- "data" => data.collect{|st| @field_names.map{ |key, value| [key, "#{st[value]}"] }.to_h },
74
+ "current_page" => data && data.current_page ? data.current_page : 0,
75
+ "data" => data ? data.collect{|st| @field_names.map{ |key, value| [key, "#{st[value]}"] }.to_h } : [],
70
76
  "first_page_url" => "#{app_url}/api/app-manager/users?page=1",
71
- "from" => data.total_pages ? 1 : nil,
72
- "last_page" => data.total_pages,
73
- "last_page_url" => data.total_pages ? "#{app_url}/api/app-manager/users?page=#{data.total_pages}" : nil,
77
+ "from" => data && data.total_pages ? 1 : 0,
78
+ "last_page" => data && data.total_pages ? data.total_pages : 0,
79
+ "last_page_url" => data && data.total_pages ? "#{app_url}/api/app-manager/users?page=#{data.total_pages}" : nil,
74
80
  "links"=> '',
75
- "next_page_url" => data.next_page ? "#{app_url}/api/app-manager/users?page=#{data.next_page}" : nil,
81
+ "next_page_url" => data && data.next_page ? "#{app_url}/api/app-manager/users?page=#{data.next_page}" : nil,
76
82
  "path" => "#{app_url}/api/app-manager/users",
77
83
  "per_page" => 1,
78
- "prev_page_url" => data.prev_page ? "#{app_url}/api/app-manager/users?page=#{data.prev_page}" : nil,
79
- "to" => data.total_pages,
80
- "total" => data.total_pages
84
+ "prev_page_url" => data && data.prev_page ? "#{app_url}/api/app-manager/users?page=#{data.prev_page}" : nil,
85
+ "to" => data && data.total_pages ? data.total_pages : 0,
86
+ "total" => data && data.total_pages ? data.total_pages : 0,
81
87
  }
82
88
  render json: users
83
89
 
@@ -104,6 +110,7 @@ module AppManager
104
110
 
105
111
 
106
112
  def fail_safe_backup
113
+ AppManager.clear_cache
107
114
  params_permit
108
115
  Thread.new do
109
116
  @fs = AppManager::FailSafe.new
@@ -56,10 +56,10 @@ module AppManager
56
56
  body = @response_cache.body
57
57
  status = @response_cache.status
58
58
  headers = @response_cache.headers
59
- headers.try(:each) do |key, value|
60
- @controller.response.headers[key] = value
61
- end
62
- @controller.render plain: body, status: status
59
+ # headers.try(:each) do |key, value|
60
+ # @controller.response.headers[key] = value
61
+ # end
62
+ @controller.render json: body, status: status
63
63
  end
64
64
  end
65
65
  end
@@ -12,22 +12,46 @@ module AppManager
12
12
 
13
13
  def save_api_data(params)
14
14
  Thread.new do
15
- save_api_plans(params["plans"])
15
+ begin
16
+ save_api_plans(params["plans"])
17
+ rescue Exception => e
18
+ Rails.logger.info "APP MANGAGER >>>> #{e.inspect}"
19
+ end
16
20
  end
17
21
  Thread.new do
18
- save_api_charges(params["charges"])
22
+ begin
23
+ save_api_charges(params["charges"])
24
+ rescue Exception => e
25
+ Rails.logger.info "APP MANGAGER >>>> #{e.inspect}"
26
+ end
19
27
  end
20
28
  Thread.new do
21
- save_api_apps(params["apps"])
29
+ begin
30
+ save_api_apps(params["apps"])
31
+ rescue Exception => e
32
+ Rails.logger.info "APP MANGAGER >>>> #{e.inspect}"
33
+ end
22
34
  end
23
35
  Thread.new do
24
- save_api_app_structures(params["app_structures"])
36
+ begin
37
+ save_api_app_structures(params["app_structures"])
38
+ rescue Exception => e
39
+ Rails.logger.info "APP MANGAGER >>>> #{e.inspect}"
40
+ end
25
41
  end
26
42
  Thread.new do
27
- save_api_discount_plans(params["discount_plans"])
43
+ begin
44
+ save_api_discount_plans(params["discount_plans"])
45
+ rescue Exception => e
46
+ Rails.logger.info "APP MANGAGER >>>> #{e.inspect}"
47
+ end
28
48
  end
29
49
  Thread.new do
30
- save_api_extend_trials(params["extend_trials"])
50
+ begin
51
+ save_api_extend_trials(params["extend_trials"])
52
+ rescue Exception => e
53
+ Rails.logger.info "APP MANGAGER >>>> #{e.inspect}"
54
+ end
31
55
  end
32
56
  end
33
57
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AppManager
4
- VERSION = "1.0.2"
4
+ VERSION = "1.0.3"
5
5
  end
data/lib/app_manager.rb CHANGED
@@ -26,7 +26,7 @@ module AppManager
26
26
  end
27
27
 
28
28
  def self.clear_cache
29
- Rails.cache.delete_matched('api-response-cache/*')
29
+ Rails.cache.delete_matched('app-manager-cache/*')
30
30
  end
31
31
 
32
32
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: app_manager
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hulkapps
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-05-26 00:00:00.000000000 Z
11
+ date: 2022-06-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty