notee 0.3.7 → 0.4.0

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.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/notee/application.js +40107 -38738
  3. data/app/controllers/notee/application_controller.rb +22 -2
  4. data/app/controllers/notee/categories_controller.rb +3 -4
  5. data/app/controllers/notee/comments_controller.rb +34 -11
  6. data/app/controllers/notee/images_controller.rb +3 -4
  7. data/app/controllers/notee/notees_controller.rb +2 -4
  8. data/app/controllers/notee/posts_controller.rb +10 -11
  9. data/app/controllers/notee/roles_controller.rb +27 -0
  10. data/app/controllers/notee/statuses_controller.rb +3 -5
  11. data/app/controllers/notee/tokens_controller.rb +1 -5
  12. data/app/controllers/notee/users_controller.rb +19 -12
  13. data/app/models/notee/application_record.rb +5 -0
  14. data/app/models/notee/category.rb +14 -4
  15. data/app/models/notee/comment.rb +1 -1
  16. data/app/models/notee/image.rb +12 -3
  17. data/app/models/notee/post.rb +28 -2
  18. data/app/models/notee/token.rb +15 -2
  19. data/app/models/notee/user.rb +71 -24
  20. data/app/views/notee/partials/_meta.html.erb +25 -0
  21. data/config/routes.rb +11 -9
  22. data/db/migrate/20160809145754_create_notee_users.rb +0 -1
  23. data/lib/notee/configuration.rb +15 -1
  24. data/lib/notee/helpers/notee_helper.rb +9 -0
  25. data/lib/notee/helpers/view_helper.rb +6 -1
  26. data/lib/notee/version.rb +1 -1
  27. data/lib/tasks/notee_tasks.rake +16 -0
  28. data/test/dummy/log/development.log +63 -0
  29. metadata +20 -8
  30. data/app/helpers/notee/categories_helper.rb +0 -4
  31. data/app/helpers/notee/comments_helper.rb +0 -4
  32. data/app/helpers/notee/images_helper.rb +0 -4
  33. data/app/helpers/notee/posts_helper.rb +0 -4
@@ -2,13 +2,33 @@ module Notee
2
2
  class ApplicationController < ActionController::Base
3
3
  before_action :restrict_access_json
4
4
 
5
+ def restrict_access_json
6
+ return redirect_to new_token_path unless confirm_exist_token
7
+ return redirect_to new_token_path unless confirm_expired_token
8
+ end
9
+
5
10
  private
6
11
 
7
- def restrict_access_json
12
+ def confirm_exist_token
8
13
  unless Token.exists?(access_token: session[:access_token])
9
- raise
14
+ session.delete(:access_token)
15
+ return false
10
16
  end
17
+
18
+ true
11
19
  end
12
20
 
21
+ def confirm_expired_token
22
+ token = Token.find_by(access_token: session[:access_token])
23
+ return false unless token
24
+
25
+ if Time.now > token.expires_at
26
+ token.destroy
27
+ session.delete(:access_token)
28
+ return false
29
+ end
30
+
31
+ true
32
+ end
13
33
  end
14
34
  end
@@ -1,5 +1,5 @@
1
1
 
2
- require_dependency "notee/application_controller"
2
+ require_dependency 'notee/application_controller'
3
3
 
4
4
  module Notee
5
5
  class CategoriesController < ApplicationController
@@ -7,11 +7,11 @@ module Notee
7
7
 
8
8
  def index
9
9
  @categories = Category.all
10
- render json: { status: 'success', categories: @categories}
10
+ render json: { status: 'success', categories: @categories }
11
11
  end
12
12
 
13
13
  def show
14
- render json: { status: 'success', category: @category}
14
+ render json: { status: 'success', category: @category }
15
15
  end
16
16
 
17
17
  def create
@@ -54,6 +54,5 @@ module Notee
54
54
  def set_category
55
55
  @category = Category.find_by(id: params[:id])
56
56
  end
57
-
58
57
  end
59
58
  end
@@ -1,29 +1,52 @@
1
- require_dependency "notee/application_controller"
1
+ require_dependency 'notee/application_controller'
2
2
 
3
3
  module Notee
4
4
  class CommentsController < ApplicationController
5
+ before_action :set_comment, only: [:update, :destroy]
6
+
7
+ def index
8
+ comments = Comment.all.order(updated_at: :desc)
9
+ render json: { status: 'success', comments: comments }
10
+ end
5
11
 
6
12
  def show
7
- @comments = Comment.where(post_id: params[:id]);
8
- render json: { status: 'success', comments: @comments}
13
+ @comments = Comment.where(post_id: params[:id])
14
+ render json: { status: 'success', comments: @comments }
9
15
  end
10
16
 
11
- # POST /comments
12
17
  def create
13
18
  @comment = Comment.new(comment_params)
14
-
15
19
  if @comment.save
16
- render json: { status: 'success'}
20
+ render json: { status: 'success' }
17
21
  else
18
- render json: { status: 'failed'}
22
+ render json: { status: 'failed' }
23
+ end
24
+ end
25
+
26
+ def update
27
+ respond_to do |format|
28
+ if @comment.update(post_params)
29
+ format.json { render json: @comment, status: 200 }
30
+ else
31
+ format.json { render json: @comment.errors, status: :unprocessable_entity }
32
+ end
19
33
  end
20
34
  end
21
35
 
36
+ def destroy
37
+ @comment.destroy
38
+ render json: { status: 'success' }
39
+ end
40
+
22
41
  private
23
42
 
24
- # Only allow a trusted parameter "white list" through.
25
- def comment_params
26
- params.require(:comment).permit(:post_id, :content, :name, :email)
27
- end
43
+ def set_comment
44
+ @comment = Comment.find_by(id: params[:id])
45
+ end
46
+
47
+ # Only allow a trusted parameter "white list" through.
48
+ def comment_params
49
+ params.require(:comment).permit(:post_id, :content, :name, :email)
50
+ end
28
51
  end
29
52
  end
@@ -1,18 +1,18 @@
1
1
 
2
- require_dependency "notee/application_controller"
2
+ require_dependency 'notee/application_controller'
3
3
 
4
4
  module Notee
5
5
  class ImagesController < ApplicationController
6
6
 
7
7
  def index
8
8
  @images = Image.all.order(updated_at: :desc)
9
- render json: { status: 'success', images: @images}
9
+ render json: { status: 'success', images: @images }
10
10
  end
11
11
 
12
12
  def show
13
13
  @image = Image.find_by(content: params[:search_txt].to_s) if params[:search_txt]
14
14
  @image = Image.find_by(id: params[:search_txt].to_i) if params[:search_txt] && !@image
15
- render json: { status: 'success', image: @image}
15
+ render json: { status: 'success', image: @image }
16
16
  end
17
17
 
18
18
  def create
@@ -44,6 +44,5 @@ module Notee
44
44
  def image_params
45
45
  params.require(:image).permit(:title, :content, :slug, :status, :image_id, :thumbnail_id, :published_at, :seo_keyword, :seo_description)
46
46
  end
47
-
48
47
  end
49
48
  end
@@ -1,8 +1,7 @@
1
- require_dependency "notee/application_controller"
1
+ require_dependency 'notee/application_controller'
2
2
 
3
3
  module Notee
4
4
  class NoteesController < ApplicationController
5
-
6
5
  # callbacks
7
6
  skip_before_action :restrict_access_json, only: [:index]
8
7
  before_action :restrict_access, only: [:index]
@@ -18,9 +17,8 @@ module Notee
18
17
  # end
19
18
 
20
19
  unless Token.exists?(access_token: session[:access_token])
21
- redirect_to new_token_path and return
20
+ redirect_to new_token_path
22
21
  end
23
-
24
22
  end
25
23
  end
26
24
  end
@@ -1,15 +1,14 @@
1
- require_dependency "notee/application_controller"
1
+ require_dependency 'notee/application_controller'
2
2
 
3
3
  module Notee
4
4
  class PostsController < ApplicationController
5
-
6
5
  # callbacks
7
6
  before_action :set_post, only: [:show, :update, :destroy]
8
7
 
9
8
  # GET /posts
10
9
  def index
11
10
  @posts = Post.all.order(updated_at: :desc)
12
- render json: { status: 'success', posts: @posts}
11
+ render json: { status: 'success', posts: @posts }
13
12
  end
14
13
 
15
14
  # GET /posts/1
@@ -43,18 +42,18 @@ module Notee
43
42
  # DELETE /posts/1
44
43
  def destroy
45
44
  @post.destroy
46
- render json: { status: 'success'}
45
+ render json: { status: 'success' }
47
46
  end
48
47
 
49
48
  private
50
49
 
51
- def set_post
52
- @post = Post.find_by(id: params[:id])
53
- end
50
+ def set_post
51
+ @post = Post.find_by(id: params[:id])
52
+ end
54
53
 
55
- # Only allow a trusted parameter "white list" through.
56
- def post_params
57
- params.require(:post).permit(:title, :content, :slug, :status, :category_id, :thumbnail_id, :published_at, :seo_keyword, :seo_description, :secret_published_password)
58
- end
54
+ # Only allow a trusted parameter "white list" through.
55
+ def post_params
56
+ params.require(:post).permit(:title, :content, :slug, :status, :category_id, :thumbnail_id, :published_at, :seo_keyword, :seo_description, :secret_published_password)
57
+ end
59
58
  end
60
59
  end
@@ -0,0 +1,27 @@
1
+
2
+ require_dependency 'notee/application_controller'
3
+
4
+ module Notee
5
+ class RolesController < ApplicationController
6
+ def index
7
+ render json: { status: 'success', roles: User.roles }
8
+ end
9
+
10
+ def show
11
+ user = find_user_by_access_token
12
+
13
+ if user
14
+ render json: { status: 'success', user: user }
15
+ else
16
+ render json: { status: 'failed' }
17
+ end
18
+ end
19
+
20
+ private
21
+
22
+ def find_user_by_access_token
23
+ token = Token.find_by(access_token: session[:access_token])
24
+ token.user
25
+ end
26
+ end
27
+ end
@@ -1,19 +1,17 @@
1
1
 
2
- require_dependency "notee/application_controller"
2
+ require_dependency 'notee/application_controller'
3
3
 
4
4
  module Notee
5
5
  class StatusesController < ApplicationController
6
-
7
6
  def index
8
7
  @statuses = Notee::STATUS
9
- render json: { status: 'success', statuses: @statuses}
8
+ render json: { status: 'success', statuses: @statuses }
10
9
  end
11
10
 
12
11
  def show
13
12
  statuses = Notee::STATUS
14
13
  @status = statuses.key(params[:status].to_i)
15
- render json: { status: 'success', name: @status}
14
+ render json: { status: 'success', name: @status }
16
15
  end
17
-
18
16
  end
19
17
  end
@@ -1,15 +1,13 @@
1
1
 
2
- require_dependency "notee/application_controller"
2
+ require_dependency 'notee/application_controller'
3
3
 
4
4
  module Notee
5
5
  class TokensController < ApplicationController
6
6
  skip_before_filter :restrict_access_json, only: [:new, :create]
7
7
 
8
- # GET /tokens/new
9
8
  def new
10
9
  end
11
10
 
12
- # POST /tokens
13
11
  def create
14
12
  if Notee.notee_id == params[:id] && Notee.notee_password == params[:password]
15
13
  if token = Token.create!
@@ -27,11 +25,9 @@ module Notee
27
25
  redirect_to root_path
28
26
  end
29
27
 
30
- # DELETE /tokens/1
31
28
  def destroy
32
29
  Token.find_by_access_token(session[:access_token]).destroy!
33
30
  session.delete(:access_token)
34
31
  end
35
-
36
32
  end
37
33
  end
@@ -1,25 +1,27 @@
1
- require_dependency "notee/application_controller"
1
+
2
+ require_dependency 'notee/application_controller'
2
3
 
3
4
  module Notee
4
5
  class UsersController < ApplicationController
5
-
6
6
  # callbacks
7
7
  before_action :set_user, only: [:show, :update, :destroy]
8
+ before_action :convert_from_string_to_int, only: [:create, :update]
8
9
 
9
10
  # GET /users
10
11
  def index
11
12
  @users = User.all.order(updated_at: :desc)
12
- render json: { status: 'success', users: @users}
13
+ render json: { status: 'success', users: @users }
13
14
  end
14
15
 
15
16
  # GET /posts/1
16
17
  def show
17
- render json: { status: 'success', user: @user}
18
+ render json: { status: 'success', user: @user }
18
19
  end
19
20
 
20
21
  # POST /posts
21
22
  def create
22
23
  @user = User.new(user_params)
24
+ @user.file = user_params[:profile_img]
23
25
  respond_to do |format|
24
26
  if @user.save
25
27
  format.json { render json: @user, status: 200 }
@@ -31,6 +33,7 @@ module Notee
31
33
 
32
34
  # PATCH/PUT /posts/1
33
35
  def update
36
+ @user.file = user_params[:profile_img]
34
37
  respond_to do |format|
35
38
  if @user.update(user_params)
36
39
  format.json { render json: @user, status: 200 }
@@ -43,18 +46,22 @@ module Notee
43
46
  # DELETE /posts/1
44
47
  def destroy
45
48
  @user.destroy
46
- render json: { status: 'success'}
49
+ render json: { status: 'success' }
47
50
  end
48
51
 
49
52
  private
50
53
 
51
- def set_user
52
- @user = User.find_by(id: params[:id])
53
- end
54
+ def set_user
55
+ @user = User.find_by(id: params[:id])
56
+ end
54
57
 
55
- # Only allow a trusted parameter "white list" through.
56
- def post_params
57
- params.require(:user).permit(:title, :content, :slug, :status, :category_id, :thumbnail_id, :published_at, :seo_keyword, :seo_description, :secret_published_password)
58
- end
58
+ def convert_from_string_to_int
59
+ params[:user][:role] = params[:user][:role].to_i
60
+ end
61
+
62
+ # Only allow a trusted parameter "white list" through.
63
+ def user_params
64
+ params.require(:user).permit(:name, :email, :password, :password_confirm, :profile, :profile_img, :role)
65
+ end
59
66
  end
60
67
  end
@@ -0,0 +1,5 @@
1
+ module Notee
2
+ class ApplicationRecord < ActiveRecord::Base
3
+ self.abstract_class = true
4
+ end
5
+ end
@@ -1,13 +1,24 @@
1
+ # == Schema Information
2
+ #
3
+ # Table name: notee_categories
4
+ #
5
+ # id :integer not null, primary key
6
+ # name :string default("category_name"), not null
7
+ # slug :string default("2016-19-26-54"), not null
8
+ # parent_id :integer
9
+ # status :integer default(0), not null
10
+ # created_at :datetime not null
11
+ # updated_at :datetime not null
12
+ #
13
+
1
14
  module Notee
2
15
  class Category < ActiveRecord::Base
3
-
4
16
  # callbacks
5
17
  before_save :set_slug
6
18
  before_destroy :protect_default
7
19
 
8
20
  # relations
9
- has_many :children, class_name: Notee::Category, :foreign_key => 'parent_id', dependent: :destroy
10
-
21
+ has_many :children, class_name: Notee::Category, foreign_key: 'parent_id', dependent: :destroy
11
22
 
12
23
  private
13
24
 
@@ -18,6 +29,5 @@ module Notee
18
29
  def protect_default
19
30
  return false if self.id == 1
20
31
  end
21
-
22
32
  end
23
33
  end
@@ -1,5 +1,5 @@
1
1
  module Notee
2
- class Comment < ApplicationRecord
2
+ class Comment < ActiveRecord::Base
3
3
  validates :post_id, presence: true
4
4
  validates :content, presence: true
5
5
  end
@@ -1,8 +1,17 @@
1
+ # == Schema Information
2
+ #
3
+ # Table name: notee_images
4
+ #
5
+ # id :integer not null, primary key
6
+ # content :string not null
7
+ # created_at :datetime not null
8
+ # updated_at :datetime not null
9
+ #
10
+
1
11
  require 'securerandom'
2
12
 
3
13
  module Notee
4
14
  class Image < ActiveRecord::Base
5
-
6
15
  # accessors
7
16
  attr_accessor :file
8
17
 
@@ -11,13 +20,14 @@ module Notee
11
20
  before_destroy :protect_default
12
21
 
13
22
  private
23
+
14
24
  def manage_image
15
25
  return unless self.file
16
26
 
17
27
  image_dir = Rails.root.to_s + "/public/notee"
18
28
  FileUtils.mkdir_p(image_dir) unless FileTest.exist?(image_dir)
19
29
  image_name = Time.now.strftime('%Y%m%d%H%M%S') + '--' + SecureRandom.uuid + '.jpg'
20
- self.transaction do
30
+ transaction do
21
31
  open(image_dir + "/" + image_name, 'wb') do |output|
22
32
  output.write(self.file.read)
23
33
  end
@@ -28,6 +38,5 @@ module Notee
28
38
  def protect_default
29
39
  return false if self.id == 1
30
40
  end
31
-
32
41
  end
33
42
  end