exvo_notifications 0.1.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.
@@ -0,0 +1,19 @@
1
+ module ExvoNotifications
2
+ class NotificationsController < ApplicationController
3
+
4
+ unloadable
5
+
6
+ def create
7
+ user = User.find_or_create_by_uid(params[:user_uid])
8
+ user.update_attributes(:plan => params[:edition_title])
9
+ render :json => { :status => 200 }
10
+ end
11
+
12
+ def destroy
13
+ user = User.find_or_create_by_uid(params[:user_uid])
14
+ user.update_attributes(:plan => nil)
15
+ render :json => { :status => 200 }
16
+ end
17
+
18
+ end
19
+ end
data/config/routes.rb ADDED
@@ -0,0 +1,5 @@
1
+ Rails.application.routes.draw do |map|
2
+ resources :accounts, :controller => 'exvo_notifications/accounts', :only => [:new, :create]
3
+ match "/notifications", :to => "exvo_notifications/notifications#create", :via => "post"
4
+ match "/notifications", :to => "exvo_notifications/notifications#destroy", :via => "delete"
5
+ end
@@ -0,0 +1,28 @@
1
+ module ExvoNotifications::Controllers::Access
2
+ def self.included(base)
3
+ base.send :include, InstanceMethods
4
+ end
5
+
6
+ module InstanceMethods
7
+
8
+ protected
9
+
10
+ def check_access
11
+ check_access_on_store unless current_user.plan
12
+ end
13
+
14
+ def check_access_on_store
15
+ begin
16
+ consumer = ExvoAuth::Autonomous::Consumer.new(:provider_id => ENV['EXVO_STORE_CLIENT_ID'])
17
+ response = consumer.get("/editions", { :query => { :user_uid => current_user.uid } } )
18
+ if response.parsed_response["edition"] == false
19
+ redirect_to response.parsed_response["url"]
20
+ else
21
+ current_user.update_attributes(:plan => response.parsed_response["edition"])
22
+ end
23
+ rescue
24
+ render :file => 'public/not_working.html', :layout => false
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,12 @@
1
+ require "exvo_notifications"
2
+ require "rails"
3
+
4
+ module ExvoNotifications
5
+ class Engine < Rails::Engine
6
+ # engine_name :exvo_notifications
7
+ config.exvo_notifications = ActiveSupport::OrderedOptions.new
8
+ rake_tasks do
9
+ load "exvo_notifications/tasks/tasks.rake"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,131 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>500 Something Went Wrong</title>
5
+ <link href='https://themes.exvo.com/stylesheets/themes/carbon/all.css' rel='stylesheet' type='text/css'>
6
+ <link href='https://themes.exvo.com/stylesheets/themes/ice/layout.css' rel='stylesheet' type='text/css'>
7
+ <link href='https://themes.exvo.com/stylesheets/themes/common/error_pages.css' rel='stylesheet' type='text/css'>
8
+ </head>
9
+ <body>
10
+ <div class='layout'>
11
+ <div class='row dock_imitation' id='dock'>
12
+ <div class='cell third shortcuts left'>
13
+ <div class='shortcut desktop' data-href='http://exvo.com'>
14
+ <div class='icon small'>
15
+ <div class='image'></div>
16
+ </div>
17
+ <h3>Desktop</h3>
18
+ </div>
19
+ <div class='shortcut apps' data-href='http://store.exvo.com'>
20
+ <div class='icon small'>
21
+ <div class='image'></div>
22
+ </div>
23
+ <h3>Apps</h3>
24
+ </div>
25
+ </div>
26
+ <div class='cell'></div>
27
+ <div class='cell exvo_logo right_flat_background'>
28
+ <img class='exvo' src='https://themes.exvo.com/stylesheets/images/icons/exvo.png'>
29
+ </div>
30
+ </div>
31
+ <div class='row tool bar'>
32
+ <div class='cell third left'>
33
+ &nbsp;
34
+ </div>
35
+ <div class='cell third center'>
36
+ <h2>This App is not working properly at the moment. Please return later'</h2>
37
+ </div>
38
+ <div class='cell third right'>
39
+ &nbsp;
40
+ </div>
41
+ </div>
42
+ <div class='row content'>
43
+ <img class='screw left' src='/stylesheets/images/common/screwTopLeft.png'>
44
+ <img class='screw right' src='/stylesheets/images/common/screwTopRight.png'>
45
+ <div class='row'>
46
+ <div class='cell half warning'>
47
+ <p>We're sorry but you can not view this page</p>
48
+ Please navigate to a different page or try again later
49
+ </div>
50
+ <div class='cell half blog'>
51
+ <p>Take a look at our Blog</p>
52
+ For the latest updates, check out our Blog
53
+ <a href='http://blog.exvo.com'>
54
+ <img src='https://themes.exvo.com/stylesheets/images/dock/chevronBlack.png'>
55
+ </a>
56
+ </div>
57
+ </div>
58
+ <div class='row' id='more'>More at Exvo</div>
59
+ <div class='row more'>
60
+ <div class='cell fifth'>
61
+ <div class='alternative'>
62
+ <img class='logo' src='https://themes.exvo.com/stylesheets/images/error_pages/Desktop.png'>
63
+ <br>
64
+ <span>Desktop</span>
65
+ <br>
66
+ <br>
67
+ <p>Your personal starting point to use the web in a whole new way.</p>
68
+ <br>
69
+ <br>
70
+ <a class='button ice' href='http://exvo.com'>Visit</a>
71
+ </div>
72
+ </div>
73
+ <div class='cell fifth'>
74
+ <div class='alternative'>
75
+ <img class='logo' src='https://themes.exvo.com/stylesheets/images/error_pages/Apps.png'>
76
+ <br>
77
+ <span>Apps</span>
78
+ <br>
79
+ <br>
80
+ <p>Explore the Apps Store to find great apps you can start using right away.</p>
81
+ <br>
82
+ <br>
83
+ <a class='button ice' href='http://store.exvo.com/apps'>Visit</a>
84
+ </div>
85
+ </div>
86
+ <div class='cell fifth'>
87
+ <div class='alternative'>
88
+ <img class='logo' src='https://themes.exvo.com/stylesheets/images/error_pages/Documents.png'>
89
+ <br>
90
+ <span>Documents</span>
91
+ <br>
92
+ <br>
93
+ <p>Store your files online. Viewable on any internet enabled device</p>
94
+ <br>
95
+ <br>
96
+ <a class='button ice' href='http://documents.exvo.com'>Visit</a>
97
+ </div>
98
+ </div>
99
+ <div class='cell fifth'>
100
+ <div class='alternative'>
101
+ <img class='logo' src='https://themes.exvo.com/stylesheets/images/error_pages/Company.png'>
102
+ <br>
103
+ <span>Company</span>
104
+ <br>
105
+ <br>
106
+ <p>Your personal starting poin to user the web in a whole new way</p>
107
+ <br>
108
+ <br>
109
+ <a class='button ice' href='http://store.exvo.com/opencompany'>Visit</a>
110
+ </div>
111
+ </div>
112
+ <div class='cell fifth'>
113
+ <div class='alternative'>
114
+ <img class='logo' src='https://themes.exvo.com/stylesheets/images/error_pages/Teams.png'>
115
+ <br>
116
+ <span>Teams</span>
117
+ <br>
118
+ <br>
119
+ <p>A powerful way for entrepreneurs big and small to run their company</p>
120
+ <br>
121
+ <br>
122
+ <a class='button ice' href='http://store.exvo.com/teams'>Visit</a>
123
+ </div>
124
+ </div>
125
+ </div>
126
+ <img class='screw bottom left' src='https://themes.exvo.com/stylesheets/images/common/screwBottomLeft.png'>
127
+ <img class='screw bottom right' src='https://themes.exvo.com/stylesheets/images/common/screwBottomRight.png'>
128
+ </div>
129
+ </div>
130
+ </body>
131
+ </html>
@@ -0,0 +1,6 @@
1
+ namespace :exvo_notifications do
2
+ desc "Copy error webpage to public"
3
+ task :create do
4
+ cp "/exvo_notifications/pages/not_working.html" "/public/not_working.html"
5
+ end
6
+ end
@@ -0,0 +1,3 @@
1
+ module ExvoNotifications
2
+ require 'exvo_notifications/engine' if defined?(Rails)
3
+ end
@@ -0,0 +1,24 @@
1
+ require 'rails/generators'
2
+ require 'rails/generators/migration'
3
+
4
+ class ExvoNotificationsGenerator < Rails::Generators::Base
5
+ desc "Create migration => add_plan_to_user"
6
+
7
+ include Rails::Generators::Migration
8
+
9
+ def self.source_root
10
+ @source_root ||= File.join(File.dirname(__FILE__), 'templates')
11
+ end
12
+
13
+ def self.next_migration_number(dirname)
14
+ if ActiveRecord::Base.timestamped_migrations
15
+ Time.now.utc.strftime("%Y%m%d%H%M%S")
16
+ else
17
+ "%.3d" % (current_migration_number(dirname) + 1)
18
+ end
19
+ end
20
+
21
+ def create_migration_file
22
+ migration_template 'migration.rb', 'db/migrate/add_plan_to_user.rb'
23
+ end
24
+ end
@@ -0,0 +1,9 @@
1
+ class AddPlanToUser < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :users, :plan, :string
4
+ end
5
+
6
+ def self.down
7
+ remove_column :users, :plan
8
+ end
9
+ end
metadata ADDED
@@ -0,0 +1,76 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: exvo_notifications
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 0
10
+ version: 0.1.0
11
+ platform: ruby
12
+ authors:
13
+ - "Robert S\xC4\x99k"
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-10-13 00:00:00 +02:00
19
+ default_executable:
20
+ dependencies: []
21
+
22
+ description: Maintain Exvo Notifications in external apps
23
+ email:
24
+ - sekupyna@gmail.com
25
+ executables: []
26
+
27
+ extensions: []
28
+
29
+ extra_rdoc_files: []
30
+
31
+ files:
32
+ - app/controllers/exvo_notifications/notifications_controller.rb
33
+ - config/routes.rb
34
+ - lib/exvo_notifications.rb
35
+ - lib/exvo_notifications/controllers/access.rb
36
+ - lib/exvo_notifications/engine.rb
37
+ - lib/exvo_notifications/pages/not_working.html
38
+ - lib/exvo_notifications/tasks/tasks.rake
39
+ - lib/generators/exvo_notifications/exvo_notifications_generator.rb
40
+ - lib/generators/exvo_notifications/templates/migration.rb
41
+ has_rdoc: true
42
+ homepage:
43
+ licenses: []
44
+
45
+ post_install_message:
46
+ rdoc_options:
47
+ - --charset=UTF-8
48
+ require_paths:
49
+ - lib
50
+ required_ruby_version: !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ hash: 3
56
+ segments:
57
+ - 0
58
+ version: "0"
59
+ required_rubygems_version: !ruby/object:Gem::Requirement
60
+ none: false
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ hash: 3
65
+ segments:
66
+ - 0
67
+ version: "0"
68
+ requirements: []
69
+
70
+ rubyforge_project:
71
+ rubygems_version: 1.3.7
72
+ signing_key:
73
+ specification_version: 3
74
+ summary: Maintain Exvo Notifications
75
+ test_files: []
76
+