rails_rest_vote 0.1.1 → 0.1.2

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
  SHA1:
3
- metadata.gz: 0640403d5547294653c71008f73742cdd5000be4
4
- data.tar.gz: 6eac1a372975dffe799fb006bc0bf991fded385b
3
+ metadata.gz: fd265acaa2df58e7aeeabe8648870cb144a19aca
4
+ data.tar.gz: 52506db1fd1f891ac8793f94d9af2eabac451ddb
5
5
  SHA512:
6
- metadata.gz: b96f4ff7b687d8685c27d148a8dab6f2ad6bff31415a4fd7041457448302e4969a6faa53f448dd21d784f7d00d8bdaba3f9cbdb55bda087cba7d9a1731b48682
7
- data.tar.gz: 84f6ed1b1a3f794cdb90fd3c47a49741701cdc70a8c9492463d3b22efe3cd21e9ec5b164fb0c0db94d2bdbfedbbfd6fc200d0c76e9d7984f43fa19fabb7a6191
6
+ metadata.gz: 8029b3405f58dfdc104f46f3639315ae710d2783136882d5b4c7076ade490199f300b9572edcc79195630dc1112fcc0cd55e8231f19346a05c0348c6f2cf8878
7
+ data.tar.gz: da20ffd3c3d8e11b320458addb8bbd009d4bd175f32d4665bfa06d9fbf63ded281a46bc6a53a43f6d37dc33e903eb8a9790b5ab86c11f6a2f792d52992e9b26a
data/README.md CHANGED
@@ -6,7 +6,7 @@ If you are using any frontend framework like angular2 in your application it is
6
6
 
7
7
  >**DISCLAIMER**
8
8
  >
9
- >Host application user managment model name should be `user`, It is recommended to use [devise gem](https://github.com/plataformatec/devise) for authentication purpose.
9
+ >Your rails application user managment model name should be `user`.
10
10
 
11
11
  ## Installation
12
12
 
@@ -43,32 +43,32 @@ Now you are ready to go.
43
43
 
44
44
  ## Usage
45
45
 
46
- Add below line to the model you want to vote or like on
46
+ Add below line to the model you want add upvote/downvote or like/unlike functionality
47
47
 
48
48
  has_many :votes, :as => :votable
49
49
 
50
50
  It can be used in two different ways.
51
51
 
52
- 1. Use as two buttons one for upvote and other for downvote as in _stackoverflow_.
52
+ 1. Use as upvote/downvote just like _stackoverflow_.
53
53
 
54
54
  ##### APIs
55
55
 
56
56
  > /api/votes/up
57
57
 
58
- Api is used for upvote on model. user must be signed in for upvoting.
58
+ Api is used for upvote on model.
59
59
  ```
60
60
  method: POST
61
- body: {"votable_id":"1","votable_type":"Service"}
61
+ body: {"votable_id":"1","votable_type":"Service","user_id":"1"}
62
62
  content-type: application/json
63
63
  response: {"status":200,"message":"upvoted successfully."}
64
64
  ```
65
65
 
66
66
  > /api/votes/down
67
67
 
68
- Api is used for downvote on model. user must be signed in for downvoting.
68
+ Api is used for downvote on model.
69
69
  ```
70
70
  method: POST
71
- body: {"votable_id":"1","votable_type":"Service"}
71
+ body: {"votable_id":"1","votable_type":"Service","user_id":"1"}
72
72
  content-type: application/json
73
73
  response: {"status":200,"message":"downvoted successfully."}
74
74
  ```
@@ -89,16 +89,16 @@ content-type: application/json
89
89
  response: {"status":200,"upcount":1,"upvotes":[{"id":1,...}], "downcount":1,"downvotes":[{"id":3,...}]}
90
90
  ```
91
91
 
92
- 2. Use as one button used for like/unlike just like _facebook_.
92
+ 2. Use as like/unlike just like _facebook_.
93
93
 
94
94
  ##### APIs
95
95
 
96
96
  > /api/likes
97
97
 
98
- Api is used for like. user must be signed in for liking.
98
+ Same api is used for like and unlike. for first time if you hit this api it will work as `like` and If you send same parameters second time it will remove the record from vote table i.e `unlike`
99
99
  ```
100
100
  method: POST
101
- body: {"votable_id":"1","votable_type":"Service"}
101
+ body: {"votable_id":"1","votable_type":"Service","user_id":"1"}
102
102
  content-type: application/json
103
103
  response: {"status":200,"message":"liked successfully."}
104
104
  ```
@@ -73,7 +73,7 @@ module RailsRestVote
73
73
  #{"status":200,"likecount":1,"likes":[{"id":1,...}]}
74
74
  #
75
75
  def user_like_count
76
- likes = @user.votes
76
+ likes = @user.votes.where("vote IS NULL")
77
77
  send_like_response(likes)
78
78
  end
79
79
 
@@ -81,7 +81,7 @@ module RailsRestVote
81
81
  #{"status":200,"likecount":1,"likes":[{"id":1,...}]}
82
82
  #
83
83
  def model_like_count
84
- likes = @votable.votes
84
+ likes = @votable.votes.where("vote IS NULL")
85
85
  send_like_response(likes)
86
86
  end
87
87
 
@@ -91,9 +91,16 @@ module RailsRestVote
91
91
  def exists?
92
92
  initialize_votable_object
93
93
  initialize_user
94
+
94
95
  params[:vote][:votable_type] = params[:vote][:votable_type].capitalize
95
96
  vote = params[:action] == "like" ? nil : params[:action] == "up" ? true : false
96
- uservotes = Vote.where("votable_id = ? AND votable_type = ? AND user_id = ? AND vote = ?",params[:vote][:votable_id],params[:vote][:votable_type], params[:vote][:user_id],vote)
97
+
98
+ if !vote.blank?
99
+ uservotes = Vote.where("votable_id = ? AND votable_type = ? AND user_id = ? AND vote = ?",params[:vote][:votable_id],params[:vote][:votable_type], params[:vote][:user_id],vote)
100
+ else
101
+ uservotes = Vote.where("votable_id = ? AND votable_type = ? AND user_id = ? AND vote IS NULL",params[:vote][:votable_id],params[:vote][:votable_type], params[:vote][:user_id])
102
+ end
103
+
97
104
  return uservotes.size > 0 ? voted(uservotes) : true
98
105
  end
99
106
 
@@ -1,3 +1,3 @@
1
1
  module RailsRestVote
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
Binary file
@@ -14,6 +14,7 @@ Gem::Specification.new do |spec|
14
14
  spec.homepage = "https://github.com/tixdo/rails_rest_vote"
15
15
  spec.license = "MIT"
16
16
 
17
+ spec.required_ruby_version = '>= 1.9.3'
17
18
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
19
  spec.bindir = "exe"
19
20
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_rest_vote
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - satendra02
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-04-06 00:00:00.000000000 Z
11
+ date: 2016-04-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -101,6 +101,7 @@ files:
101
101
  - lib/rails_rest_vote/engine.rb
102
102
  - lib/rails_rest_vote/version.rb
103
103
  - rails_rest_vote-0.1.0.gem
104
+ - rails_rest_vote-0.1.1.gem
104
105
  - rails_rest_vote.gemspec
105
106
  homepage: https://github.com/tixdo/rails_rest_vote
106
107
  licenses:
@@ -114,7 +115,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
114
115
  requirements:
115
116
  - - ">="
116
117
  - !ruby/object:Gem::Version
117
- version: '0'
118
+ version: 1.9.3
118
119
  required_rubygems_version: !ruby/object:Gem::Requirement
119
120
  requirements:
120
121
  - - ">="