BAT_Notifications 0.0.0 → 0.0.4
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 +4 -4
 - data/lib/A_User.rb +29 -28
 - data/lib/BasicNotificationDecorator.rb +44 -44
 - data/lib/BookingNotificationDecorator.rb +83 -66
 - data/lib/Content.rb +38 -36
 - data/lib/InboxNotificationDecorator.rb +66 -66
 - data/lib/NotificationDb.rb +11 -11
 - data/lib/ReviewNotificationDecorator.rb +83 -66
 - data/lib/SendNotification.rb +90 -90
 - data/lib/bat_notifications.rb +254 -0
 - data/lib/functions/BookingFunctions.rb +32 -0
 - data/lib/functions/ReviewFunctions.rb +10 -0
 - data/lib/interface.rb +16 -0
 - metadata +6 -3
 - data/lib/Notification.rb +0 -153
 
| 
         @@ -0,0 +1,32 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # this module contains all the booking functions that are shared between 
         
     | 
| 
      
 2 
     | 
    
         
            +
            # the booking decorators
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            require 'geocoder'
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            # Geocoder.configure(  
         
     | 
| 
      
 7 
     | 
    
         
            +
            #  # geocoding options
         
     | 
| 
      
 8 
     | 
    
         
            +
            #  :timeout      => 7,           # geocoding service timeout (secs)
         
     | 
| 
      
 9 
     | 
    
         
            +
            #  :lookup       => :google,     # name of geocoding service (symbol)
         
     | 
| 
      
 10 
     | 
    
         
            +
            #  :language     => :en,         # ISO-639 language code
         
     | 
| 
      
 11 
     | 
    
         
            +
            #  :use_https    => true,        # use HTTPS for lookup requests? (if supported)
         
     | 
| 
      
 12 
     | 
    
         
            +
            #  :http_proxy   => '',          # HTTP proxy server (user:pass@host:port)
         
     | 
| 
      
 13 
     | 
    
         
            +
            #  :https_proxy  => '',          # HTTPS proxy server (user:pass@host:port)
         
     | 
| 
      
 14 
     | 
    
         
            +
            #  :api_key      => "",         # API key for geocoding service
         
     | 
| 
      
 15 
     | 
    
         
            +
            #  :cache        => nil,         # cache object (must respond to #[], #[]=, and #keys)
         
     | 
| 
      
 16 
     | 
    
         
            +
            #  :cache_prefix => "geocoder:", # prefix (string) to use for all cache keys
         
     | 
| 
      
 17 
     | 
    
         
            +
            # )
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            module BookingFunctions
         
     | 
| 
      
 20 
     | 
    
         
            +
                def self.get_location(content)
         
     | 
| 
      
 21 
     | 
    
         
            +
                    @location = Geocoder.search("#{content["location"]["latitude"]}, #{content["location"]["longitude"]}")[0].data
         
     | 
| 
      
 22 
     | 
    
         
            +
                end
         
     | 
| 
      
 23 
     | 
    
         
            +
                
         
     | 
| 
      
 24 
     | 
    
         
            +
                def self.get_booking_message(content)
         
     | 
| 
      
 25 
     | 
    
         
            +
                    self.get_location(content)
         
     | 
| 
      
 26 
     | 
    
         
            +
                    @booking_message = "<p>Location: #{@location["address"]["address29"]}</p> \r\n
         
     | 
| 
      
 27 
     | 
    
         
            +
                    <p>Time Booked: #{Time.at(content["date"].to_time.to_i).httpdate}</p> \r\n
         
     | 
| 
      
 28 
     | 
    
         
            +
                    <p>Hours Booked: #{content["hours_booked"]}</p> \r\n
         
     | 
| 
      
 29 
     | 
    
         
            +
                   "
         
     | 
| 
      
 30 
     | 
    
         
            +
                end
         
     | 
| 
      
 31 
     | 
    
         
            +
                
         
     | 
| 
      
 32 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,10 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # this module contains all the review functions that are shared between 
         
     | 
| 
      
 2 
     | 
    
         
            +
            # the review decorators
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            module ReviewFunctions
         
     | 
| 
      
 5 
     | 
    
         
            +
                def self.get_review_message(content)
         
     | 
| 
      
 6 
     | 
    
         
            +
                    @review_message = "<p>Review Content: #{content['review_content']}</p>
         
     | 
| 
      
 7 
     | 
    
         
            +
                    <p>Review Stars: #{content['review_stars']}"
         
     | 
| 
      
 8 
     | 
    
         
            +
                end
         
     | 
| 
      
 9 
     | 
    
         
            +
            end
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
    
        data/lib/interface.rb
    ADDED
    
    | 
         @@ -0,0 +1,16 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require_relative 'Notification'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require_relative 'NotificationDb'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require_relative "Content.rb"
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            require "async"
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            notify = Notification.new(NotificationDb.get_sender, NotificationDb.get_receiver, Content.booking_content)
         
     | 
| 
      
 8 
     | 
    
         
            +
            var_dump(notify)
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            notify = BookingNotification.new(notify)
         
     | 
| 
      
 11 
     | 
    
         
            +
            var_dump(notify)
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            notify = UserBookingNotification.new(notify)
         
     | 
| 
      
 14 
     | 
    
         
            +
            #puts notify.get_content
         
     | 
| 
      
 15 
     | 
    
         
            +
            #notify.send_notification
         
     | 
| 
      
 16 
     | 
    
         
            +
            var_dump(notify)
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: BAT_Notifications
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.0.4
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Femi Abdul
         
     | 
| 
         @@ -22,10 +22,13 @@ files: 
     | 
|
| 
       22 
22 
     | 
    
         
             
            - lib/BookingNotificationDecorator.rb
         
     | 
| 
       23 
23 
     | 
    
         
             
            - lib/Content.rb
         
     | 
| 
       24 
24 
     | 
    
         
             
            - lib/InboxNotificationDecorator.rb
         
     | 
| 
       25 
     | 
    
         
            -
            - lib/Notification.rb
         
     | 
| 
       26 
25 
     | 
    
         
             
            - lib/NotificationDb.rb
         
     | 
| 
       27 
26 
     | 
    
         
             
            - lib/ReviewNotificationDecorator.rb
         
     | 
| 
       28 
27 
     | 
    
         
             
            - lib/SendNotification.rb
         
     | 
| 
      
 28 
     | 
    
         
            +
            - lib/bat_notifications.rb
         
     | 
| 
      
 29 
     | 
    
         
            +
            - lib/functions/BookingFunctions.rb
         
     | 
| 
      
 30 
     | 
    
         
            +
            - lib/functions/ReviewFunctions.rb
         
     | 
| 
      
 31 
     | 
    
         
            +
            - lib/interface.rb
         
     | 
| 
       29 
32 
     | 
    
         
             
            homepage: http://rubygems.org/gems/bat_notifications
         
     | 
| 
       30 
33 
     | 
    
         
             
            licenses: []
         
     | 
| 
       31 
34 
     | 
    
         
             
            metadata: {}
         
     | 
| 
         @@ -44,7 +47,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       44 
47 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       45 
48 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       46 
49 
     | 
    
         
             
            requirements: []
         
     | 
| 
       47 
     | 
    
         
            -
            rubygems_version: 3.0. 
     | 
| 
      
 50 
     | 
    
         
            +
            rubygems_version: 3.0.6
         
     | 
| 
       48 
51 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       49 
52 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       50 
53 
     | 
    
         
             
            summary: Send notification to users
         
     | 
    
        data/lib/Notification.rb
    DELETED
    
    | 
         @@ -1,153 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require 'delegate'
         
     | 
| 
       2 
     | 
    
         
            -
            require 'pony'
         
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
            # class Notification
         
     | 
| 
       5 
     | 
    
         
            -
               
         
     | 
| 
       6 
     | 
    
         
            -
                
         
     | 
| 
       7 
     | 
    
         
            -
            #     def message
         
     | 
| 
       8 
     | 
    
         
            -
            #         return "This is get message from #{@action}"
         
     | 
| 
       9 
     | 
    
         
            -
            #     end
         
     | 
| 
       10 
     | 
    
         
            -
                
         
     | 
| 
       11 
     | 
    
         
            -
            #     def read_message
         
     | 
| 
       12 
     | 
    
         
            -
            #         return "this is read message"
         
     | 
| 
       13 
     | 
    
         
            -
            #     end
         
     | 
| 
       14 
     | 
    
         
            -
                
         
     | 
| 
       15 
     | 
    
         
            -
            #     def get_action
         
     | 
| 
       16 
     | 
    
         
            -
            #         return @action
         
     | 
| 
       17 
     | 
    
         
            -
            #     end
         
     | 
| 
       18 
     | 
    
         
            -
                
         
     | 
| 
       19 
     | 
    
         
            -
                
         
     | 
| 
       20 
     | 
    
         
            -
                
         
     | 
| 
       21 
     | 
    
         
            -
            # end
         
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
            class NotificationDecorator < SimpleDelegator
         
     | 
| 
       24 
     | 
    
         
            -
                #initialize our constructor
         
     | 
| 
       25 
     | 
    
         
            -
                def initialize(action, sender, receiver, content)
         
     | 
| 
       26 
     | 
    
         
            -
                    #super(notificationBase)
         
     | 
| 
       27 
     | 
    
         
            -
                    @action = action
         
     | 
| 
       28 
     | 
    
         
            -
                    @sender = sender
         
     | 
| 
       29 
     | 
    
         
            -
                    @receiver = receiver
         
     | 
| 
       30 
     | 
    
         
            -
                    @content = content
         
     | 
| 
       31 
     | 
    
         
            -
                end
         
     | 
| 
       32 
     | 
    
         
            -
                
         
     | 
| 
       33 
     | 
    
         
            -
                def booking_method
         
     | 
| 
       34 
     | 
    
         
            -
                    return "this is booking method"
         
     | 
| 
       35 
     | 
    
         
            -
                end
         
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
     | 
    
         
            -
                #get content
         
     | 
| 
       38 
     | 
    
         
            -
                def get_content
         
     | 
| 
       39 
     | 
    
         
            -
                    return @content
         
     | 
| 
       40 
     | 
    
         
            -
                end
         
     | 
| 
       41 
     | 
    
         
            -
                
         
     | 
| 
       42 
     | 
    
         
            -
                #get sender information
         
     | 
| 
       43 
     | 
    
         
            -
                def get_sender
         
     | 
| 
       44 
     | 
    
         
            -
                    return @sender
         
     | 
| 
       45 
     | 
    
         
            -
                end
         
     | 
| 
       46 
     | 
    
         
            -
                
         
     | 
| 
       47 
     | 
    
         
            -
                #get receiver information
         
     | 
| 
       48 
     | 
    
         
            -
                def get_receiver
         
     | 
| 
       49 
     | 
    
         
            -
                    return @receiver
         
     | 
| 
       50 
     | 
    
         
            -
                end
         
     | 
| 
       51 
     | 
    
         
            -
                
         
     | 
| 
       52 
     | 
    
         
            -
                #get action i.e review, booking etc
         
     | 
| 
       53 
     | 
    
         
            -
                def get_action
         
     | 
| 
       54 
     | 
    
         
            -
                    return @action
         
     | 
| 
       55 
     | 
    
         
            -
                end
         
     | 
| 
       56 
     | 
    
         
            -
                
         
     | 
| 
       57 
     | 
    
         
            -
                #send email using Pony
         
     | 
| 
       58 
     | 
    
         
            -
                def send_email
         
     | 
| 
       59 
     | 
    
         
            -
                    begin
         
     | 
| 
       60 
     | 
    
         
            -
                        Pony.mail(
         
     | 
| 
       61 
     | 
    
         
            -
                            :to => @receiver_email, 
         
     | 
| 
       62 
     | 
    
         
            -
                            :from => @sender_email,
         
     | 
| 
       63 
     | 
    
         
            -
                            :subject => "You have a new #{@action}",
         
     | 
| 
       64 
     | 
    
         
            -
                            :html_body => "<h1>You have received a #{@action} from #{@sender["firstname"]}. Details Below</h1><p>#{@mail_content} " ,
         
     | 
| 
       65 
     | 
    
         
            -
                            :body => "You have received a #{@action} from #{@sender["firstname"]}. #{@mail_content}",
         
     | 
| 
       66 
     | 
    
         
            -
                            :via => :smtp,
         
     | 
| 
       67 
     | 
    
         
            -
                            :via_options => {
         
     | 
| 
       68 
     | 
    
         
            -
                                :address              => 'smtp.gmail.com',
         
     | 
| 
       69 
     | 
    
         
            -
                                :port                 => '587',
         
     | 
| 
       70 
     | 
    
         
            -
                                :enable_starttls_auto => true,
         
     | 
| 
       71 
     | 
    
         
            -
                                :user_name            => 'bookatutorapp@gmail.com',
         
     | 
| 
       72 
     | 
    
         
            -
                                :password             => 'b00katut0r@123!',
         
     | 
| 
       73 
     | 
    
         
            -
                                :authentication       => :plain, 
         
     | 
| 
       74 
     | 
    
         
            -
                                :domain               => "localhost.localdomain" 
         
     | 
| 
       75 
     | 
    
         
            -
                            }
         
     | 
| 
       76 
     | 
    
         
            -
                        )
         
     | 
| 
       77 
     | 
    
         
            -
                        
         
     | 
| 
       78 
     | 
    
         
            -
                        #return message-sent == true
         
     | 
| 
       79 
     | 
    
         
            -
                        
         
     | 
| 
       80 
     | 
    
         
            -
                    rescue Exception => e
         
     | 
| 
       81 
     | 
    
         
            -
                        puts e.message
         
     | 
| 
       82 
     | 
    
         
            -
                        puts e.backtrace.inspect
         
     | 
| 
       83 
     | 
    
         
            -
                    end
         
     | 
| 
       84 
     | 
    
         
            -
                end
         
     | 
| 
       85 
     | 
    
         
            -
                
         
     | 
| 
       86 
     | 
    
         
            -
                #send notification using async
         
     | 
| 
       87 
     | 
    
         
            -
                def send_notification
         
     | 
| 
       88 
     | 
    
         
            -
                    @sender_email = self.get_sender["email"]
         
     | 
| 
       89 
     | 
    
         
            -
                    @receiver_email = self.get_receiver["email"]
         
     | 
| 
       90 
     | 
    
         
            -
                    @mail_content = message
         
     | 
| 
       91 
     | 
    
         
            -
                    
         
     | 
| 
       92 
     | 
    
         
            -
                    mail_status = Async do
         
     | 
| 
       93 
     | 
    
         
            -
                        self.send_email
         
     | 
| 
       94 
     | 
    
         
            -
                    end
         
     | 
| 
       95 
     | 
    
         
            -
                    
         
     | 
| 
       96 
     | 
    
         
            -
                    return mail_status.wait.content_type.length
         
     | 
| 
       97 
     | 
    
         
            -
                    
         
     | 
| 
       98 
     | 
    
         
            -
                    
         
     | 
| 
       99 
     | 
    
         
            -
                    
         
     | 
| 
       100 
     | 
    
         
            -
                    
         
     | 
| 
       101 
     | 
    
         
            -
                end
         
     | 
| 
       102 
     | 
    
         
            -
                
         
     | 
| 
       103 
     | 
    
         
            -
                
         
     | 
| 
       104 
     | 
    
         
            -
            end
         
     | 
| 
       105 
     | 
    
         
            -
             
     | 
| 
       106 
     | 
    
         
            -
            class BasicNotification < NotificationDecorator
         
     | 
| 
       107 
     | 
    
         
            -
                def message
         
     | 
| 
       108 
     | 
    
         
            -
                    return "You have a new #{@action} from #{@sender}. Check out the details"
         
     | 
| 
       109 
     | 
    
         
            -
                end
         
     | 
| 
       110 
     | 
    
         
            -
                
         
     | 
| 
       111 
     | 
    
         
            -
              
         
     | 
| 
       112 
     | 
    
         
            -
            end
         
     | 
| 
       113 
     | 
    
         
            -
             
     | 
| 
       114 
     | 
    
         
            -
            class BookingNotification < NotificationDecorator
         
     | 
| 
       115 
     | 
    
         
            -
                def message
         
     | 
| 
       116 
     | 
    
         
            -
                    return "You have a new #{@action} from #{@sender}. Check out the details"
         
     | 
| 
       117 
     | 
    
         
            -
                end
         
     | 
| 
       118 
     | 
    
         
            -
                
         
     | 
| 
       119 
     | 
    
         
            -
                def get_content
         
     | 
| 
       120 
     | 
    
         
            -
                    return @content
         
     | 
| 
       121 
     | 
    
         
            -
                end
         
     | 
| 
       122 
     | 
    
         
            -
            end
         
     | 
| 
       123 
     | 
    
         
            -
             
     | 
| 
       124 
     | 
    
         
            -
            class ReviewNotification < NotificationDecorator
         
     | 
| 
       125 
     | 
    
         
            -
                def message
         
     | 
| 
       126 
     | 
    
         
            -
                    return "You have a new #{@action} from #{@sender}. Check out the details"
         
     | 
| 
       127 
     | 
    
         
            -
                end
         
     | 
| 
       128 
     | 
    
         
            -
                
         
     | 
| 
       129 
     | 
    
         
            -
                def get_content
         
     | 
| 
       130 
     | 
    
         
            -
                    return @content
         
     | 
| 
       131 
     | 
    
         
            -
                end
         
     | 
| 
       132 
     | 
    
         
            -
            end
         
     | 
| 
       133 
     | 
    
         
            -
             
     | 
| 
       134 
     | 
    
         
            -
            class InboxNotification < NotificationDecorator
         
     | 
| 
       135 
     | 
    
         
            -
                def message
         
     | 
| 
       136 
     | 
    
         
            -
                    return "You have a new #{@action} from #{@sender}. Check out the details"
         
     | 
| 
       137 
     | 
    
         
            -
                end
         
     | 
| 
       138 
     | 
    
         
            -
                
         
     | 
| 
       139 
     | 
    
         
            -
                def get_content
         
     | 
| 
       140 
     | 
    
         
            -
                    return @content
         
     | 
| 
       141 
     | 
    
         
            -
                end
         
     | 
| 
       142 
     | 
    
         
            -
            end
         
     | 
| 
       143 
     | 
    
         
            -
             
     | 
| 
       144 
     | 
    
         
            -
            class AppMessageNotification < NotificationDecorator
         
     | 
| 
       145 
     | 
    
         
            -
                def message
         
     | 
| 
       146 
     | 
    
         
            -
                    return "You have a new #{@action} from #{@sender}. Check out the details"
         
     | 
| 
       147 
     | 
    
         
            -
                end
         
     | 
| 
       148 
     | 
    
         
            -
                
         
     | 
| 
       149 
     | 
    
         
            -
                def get_content
         
     | 
| 
       150 
     | 
    
         
            -
                    return @content
         
     | 
| 
       151 
     | 
    
         
            -
                end
         
     | 
| 
       152 
     | 
    
         
            -
            end
         
     | 
| 
       153 
     | 
    
         
            -
               
         
     |