gfresh_point 0.2.0 → 0.3.1

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: 1e9ae01ee7ae836a03b5969021c96d56d9e0c19c5e83bf641ee7d0b672da2bab
4
- data.tar.gz: '093239eb7dba0740af51a358317660cbc3361577bdd5f7fc70491ee6f07c5fe8'
3
+ metadata.gz: ce94d065ed989eb04a68ecfbe3108213d050a2b310435105edd1fd1fc6660b28
4
+ data.tar.gz: 4926f5a9818b51b26e8046f22cf060c1d5fc081dde4c1323747d4552302b12be
5
5
  SHA512:
6
- metadata.gz: 17333422d8c98de6dd258a95af67c0fb8b1cd20c17717c51fee754cda6ee72078e6ffcd39bfed7a889d6e03ff44d81c248e00aa707a2f85ed5e9187d888ea5b7
7
- data.tar.gz: 25d67d98a0a5c17412fbc5e28a2c210e4eacf4cb53b6da4bcc16b2fa08d120d6cd3b96757eea9e2ca0fd6958a9da69d59d9f95ab01d270c8364f35d1d4a2c907
6
+ metadata.gz: b7259926b9d3cebc427c41bfea6b348efc5d3d4f64a94058a12d2cd0156cf7414580d22120feaa527e7a10dc415e08de4959ed724771a75215ceafa6cf22e80c
7
+ data.tar.gz: dd76cfffc95eabb2ce76f0b4dd915075fb9cc66d0265c2f42b1f6d20951be9cb0ae38cbab24b466bfcbf12ce3aca4b443ec9962cde00dd2331090d0d89675c24
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gfresh_point (0.2.0)
4
+ gfresh_point (0.3.1)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -17,6 +17,7 @@ class CreateGfreshPointRule < ActiveRecord::Migration[5.2]
17
17
  t.integer :balance
18
18
  t.string :event_name
19
19
  t.string :origin_id
20
+ t.datetime :read_at
20
21
  t.json :comment
21
22
  t.timestamps
22
23
  end
@@ -34,6 +34,16 @@ module GfreshPoint
34
34
  query.order(created_at: :desc)
35
35
  end
36
36
 
37
+ def fetch_user_points(app_id, user_id, event_names, origin_id)
38
+ query = Balance.where(app_id: app_id).where(user_id: user_id)
39
+ query = query.where("event_name in (?)", event_names) unless event_names.blank?
40
+ query = query.where(origin_id: origin_id) unless origin_id.blank?
41
+ result = query.where(read_at: nil)
42
+ return_result = result.to_a
43
+ result.update_all(read_at: Time.now)
44
+ return_result
45
+ end
46
+
37
47
  private
38
48
 
39
49
  def is_in_transcation?
@@ -0,0 +1,22 @@
1
+ module GfreshPoint
2
+ module RequestObjects
3
+ class FetchUserPointsRequest < RequestObject
4
+ attr_reader :app_id, :user_id, :event_names, :origin_id
5
+
6
+ def initialize(app_id, user_id, event_names, origin_id)
7
+ @app_id = app_id
8
+ @user_id = user_id
9
+ @event_names = event_names
10
+ @origin_id = origin_id
11
+
12
+ if user_id.blank?
13
+ add_error('user_id', "User id can not be blank")
14
+ end
15
+ if app_id.blank?
16
+ add_error('app_id', "App id can not be blank")
17
+ end
18
+ end
19
+
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,9 @@
1
+ module GfreshPoint
2
+ module Usecase
3
+ class FetchUserPointsUsecase < BaseUsecase
4
+ def execute(request)
5
+ repo.fetch_user_points(request.app_id, request.user_id, request.event_names, request.origin_id)
6
+ end
7
+ end
8
+ end
9
+ end
@@ -1,3 +1,3 @@
1
1
  module GfreshPoint
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.1"
3
3
  end
data/lib/gfresh_point.rb CHANGED
@@ -7,6 +7,7 @@ require "gfresh_point/usecase/update_rule_point_usecase"
7
7
  require "gfresh_point/usecase/earn_point_usecase"
8
8
  require "gfresh_point/usecase/consume_point_usecase"
9
9
  require "gfresh_point/usecase/list_user_points_usecase"
10
+ require "gfresh_point/usecase/fetch_user_points_usecase"
10
11
 
11
12
  require "gfresh_point/repository/mem_repo"
12
13
  require "gfresh_point/repository/active_record_repo"
@@ -17,6 +18,7 @@ require "gfresh_point/request_objects/update_rule_point_request"
17
18
  require "gfresh_point/request_objects/earn_point_request"
18
19
  require "gfresh_point/request_objects/consume_point_request"
19
20
  require "gfresh_point/request_objects/list_user_points_request"
21
+ require "gfresh_point/request_objects/fetch_user_points_request"
20
22
 
21
23
  require "gfresh_point/response_objects/response_success"
22
24
  require "gfresh_point/response_objects/response_failure"
@@ -68,5 +70,12 @@ module GfreshPoint
68
70
  response
69
71
  end
70
72
 
73
+ def fetch_user_points(user_id, event_names = [], origin_id = nil)
74
+ request = GfreshPoint::RequestObjects::FetchUserPointsRequest.new(app_id, user_id, event_names, origin_id)
75
+ use_case = GfreshPoint::Usecase::FetchUserPointsUsecase.new(repo)
76
+ response = use_case.call(request)
77
+ response
78
+ end
79
+
71
80
  end
72
81
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gfresh_point
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - teddy
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-06-17 00:00:00.000000000 Z
11
+ date: 2019-06-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -149,6 +149,7 @@ files:
149
149
  - lib/gfresh_point/repository/mem_repo.rb
150
150
  - lib/gfresh_point/request_objects/consume_point_request.rb
151
151
  - lib/gfresh_point/request_objects/earn_point_request.rb
152
+ - lib/gfresh_point/request_objects/fetch_user_points_request.rb
152
153
  - lib/gfresh_point/request_objects/list_user_points_request.rb
153
154
  - lib/gfresh_point/request_objects/request_object.rb
154
155
  - lib/gfresh_point/request_objects/rule_list_request.rb
@@ -158,6 +159,7 @@ files:
158
159
  - lib/gfresh_point/usecase/base_usecase.rb
159
160
  - lib/gfresh_point/usecase/consume_point_usecase.rb
160
161
  - lib/gfresh_point/usecase/earn_point_usecase.rb
162
+ - lib/gfresh_point/usecase/fetch_user_points_usecase.rb
161
163
  - lib/gfresh_point/usecase/list_user_points_usecase.rb
162
164
  - lib/gfresh_point/usecase/rule_list_usecase.rb
163
165
  - lib/gfresh_point/usecase/update_rule_point_usecase.rb