Skip to content
Snippets Groups Projects
Commit 5d158cd8 authored by Treadway, Ross T (UG - Computer Science)'s avatar Treadway, Ross T (UG - Computer Science)
Browse files

adding event microservice, and implementing helper methods

parent 380d708c
No related branches found
No related tags found
No related merge requests found
...@@ -119,16 +119,141 @@ class ApplicationController < ActionController::Base ...@@ -119,16 +119,141 @@ class ApplicationController < ActionController::Base
redirect_to login_path redirect_to login_path
end end
def send_invite(emails, event) def send_invite(creator, emails, event)
invite_request = HTTParty.post('http://172.17.0.1:3002/invite', :body => { invite_request = HTTParty.post('http://172.17.0.1:3002/invite', :body => {
:emails => emails, :emails => emails,
:creator => creator,
:event => { :event => {
:title => event["title"], :title => event["title"],
:description => event["description"], :description => event["description"],
:date_time => event["date_time"], :date_time => event["scheduledAt"],
} }
}) })
end end
def send_update(creator, emails, event)
invite_request = HTTParty.post('http://172.17.0.1:3002/update', :body => {
:emails => emails,
:creator => creator,
:event => {
:title => event["title"],
:description => event["description"],
:date_time => event["scheduledAt"],
}
})
end
def send_delete(creator, emails, event)
invite_request = HTTParty.post('http://172.17.0.1:3002/delete', :body => {
:emails => emails,
:creator => creator,
:event => {
:title => event.title,
:description => event.description,
:date_time => event.scheduledAt,
}
})
end
def create_event_request(event)
event_request = HTTParty.post('http://172.17.0.1:3003/events', :body => {
:event => {
:title => event.title,
:description => event.description,
:active => event.active,
:scheduledAt => event.scheduledAt,
:creator => event.creator,
:invitees => event.invitees
}
})
return event_request
end
def update_event_request(event)
event_request = HTTParty.put('http://172.17.0.1:3003/events', :body => {
:event => {
:title => event.title,
:description => event.description,
:active => event.active,
:scheduledAt => event.scheduledAt,
:creator => event.creator,
:invitees => event.invitees
},
:id => event.id
})
return event_request
end
def delete_event_request(event)
event_request = HTTParty.delete('http://172.17.0.1:3003/events', :body => {
:id => event.id
})
return event_request
end
def create_event(event_validation)
auth
if session[:logged_in]
event = create_event_request(event_validation)
creator = get_emails(event["creator"])
email_addresses = get_emails(event["invitees"])
send_invite(creator, email_addresses, event)
end
# render created_event
end
def get_my_created_events(id)
auth
if session[:logged_in]
event_request = HTTParty.post('http://172.17.0.1:3003/my_created_events', :body => {
:id => id
})
return event_request
end
end
def get_my_events(id)
auth
if session[:logged_in]
event_request = HTTParty.post('http://172.17.0.1:3003/my_events', :body => {
:id => id
})
puts event_request
end
end
def update_event(event_validation)
auth
if session[:logged_in]
event = update_event_request(event_validation)
if event.code == 404
puts event.code, event["error"]
else
creator = get_emails(event["creator"])
email_addresses = get_emails(event["invitees"])
send_update(creator, email_addresses, event)
end
end
# render created_event
end
def delete_event(event)
auth
if session[:logged_in]
request = delete_event_request(event)
if request.code == 404
puts request.code, request["error"]
else
creator = get_emails(event.creator)
email_addresses = get_emails(event.invitees)
send_delete(creator, email_addresses, event)
end
end
# render created_event
end
end end
\ No newline at end of file
...@@ -55,6 +55,37 @@ class HomeController < ApplicationController ...@@ -55,6 +55,37 @@ class HomeController < ApplicationController
redirect_to root_path redirect_to root_path
end end
def event_test
create_event(generate_event)
redirect_to root_path
end
def created_event_test
id = "2"
get_my_created_events(id)
redirect_to root_path
end
def generate_event
event = EventValidation.new(:id => "4", :title => "this is a test title", :description => "this is a test description", :active => true, :scheduledAt => (Time.now + 1.hours), :creator => session[:user_id], :invitees => [session[:user_id]])
end
def events_test
id = "2"
get_my_events(id)
redirect_to root_path
end
def update_event_test
update_event(generate_event)
redirect_to root_path
end
def delete_event_test
delete_event(generate_event)
redirect_to root_path
end
......
class EventValidation
#TODO: validation
include ActiveModel::Model
include ActiveModel::Validations
attr_accessor :id, :title, :description, :active, :scheduledAt, :creator, :invitees
validates :title, :description, :active, :scheduledAt, :creator, :invitees, presence: true
end
...@@ -12,11 +12,17 @@ ...@@ -12,11 +12,17 @@
<body> <body>
<%= yield %> <%= yield %>
<%= link_to "Reminder", home_reminder_email_test_path, class: 'btn btn-warning btn-md' %>
<%= link_to "Auth", home_test_auth_path, class: 'btn btn-warning btn-md' %>
<%= link_to "Invite", home_invite_test_path, class: 'btn btn-warning btn-md' %>
<% if session[:logged_in] %> <% if session[:logged_in] %>
<%= link_to "Reminder", home_reminder_email_test_path, class: 'btn btn-warning btn-md' %>
<%= link_to "Auth", home_test_auth_path, class: 'btn btn-warning btn-md' %>
<%= link_to "Invite", home_invite_test_path, class: 'btn btn-warning btn-md' %>
<%= link_to "Create Event", home_event_test_path, class: 'btn btn-warning btn-md' %>
<%= link_to "Get My Created Events", home_created_event_test_path, class: 'btn btn-warning btn-md' %>
<%= link_to "Get My Events", home_events_test_path, class: 'btn btn-warning btn-md' %>
<%= link_to "Update Event", home_update_event_test_path, class: 'btn btn-warning btn-md' %>
<%= link_to "Delete Event", home_delete_event_test_path, class: 'btn btn-warning btn-md' %>
<%= link_to "Logout", home_test_log_out_path, class: 'btn btn-warning btn-md' %> <%= link_to "Logout", home_test_log_out_path, class: 'btn btn-warning btn-md' %>
<% else %> <% else %>
<%= link_to "Login", login_path, class: 'btn btn-info btn-md' %> <%= link_to "Login", login_path, class: 'btn btn-info btn-md' %>
......
...@@ -23,5 +23,9 @@ Rails.application.routes.draw do ...@@ -23,5 +23,9 @@ Rails.application.routes.draw do
get 'reset_password', to: 'passwords#edit' get 'reset_password', to: 'passwords#edit'
post 'reset_password_setup', to: 'passwords#reset_password_setup' post 'reset_password_setup', to: 'passwords#reset_password_setup'
get 'home/invite_test', to: 'home#invite_test' get 'home/invite_test', to: 'home#invite_test'
get 'home/event_test', to: 'home#event_test'
get 'home/created_event_test', to: 'home#created_event_test'
get 'home/events_test', to: 'home#events_test'
get 'home/update_event_test', to: 'home#update_event_test'
get 'home/delete_event_test', to: 'home#delete_event_test'
end end
...@@ -23,6 +23,19 @@ services: ...@@ -23,6 +23,19 @@ services:
ports: ports:
- "3307:3307" - "3307:3307"
db_events:
image: postgres:latest
# volumes:
# - db_data:/var/lib/mysql
restart: always
environment:
POSTGRES_DB: event_microservice
POSTGRES_USER: admin
POSTGRES_PASSWORD: group24
ports:
- 3308:3308
redis: redis:
image: redis:latest image: redis:latest
...@@ -36,7 +49,7 @@ services: ...@@ -36,7 +49,7 @@ services:
depends_on: depends_on:
- 'redis' - 'redis'
command: sidekiq -C config/sidekiq.yml command: sidekiq -C config/sidekiq.yml
image: driftydirt/group24mailer:0.0.8 image: driftydirt/group24mailer:0.0.9
primary: primary:
...@@ -59,7 +72,7 @@ services: ...@@ -59,7 +72,7 @@ services:
links: links:
- db_auth - db_auth
mailer: mailer:
image: driftydirt/group24mailer:0.0.8 image: driftydirt/group24mailer:0.0.9
ports: ports:
- "3002:3000" - "3002:3000"
environment: environment:
...@@ -67,6 +80,14 @@ services: ...@@ -67,6 +80,14 @@ services:
REDIS_PORT: 6379 REDIS_PORT: 6379
links: links:
- redis - redis
event:
image: driftydirt/group24events:0.0.1
ports:
- 3003:3000
depends_on:
- db_events
links:
- db_events
volumes: volumes:
redis: redis:
driver: local driver: local
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment