diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 72ce32f44c82fd8b1e10f316a5cbdcd0473b5ec6..e4058d57fa66681d1e893d8a0251461c36c75323 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -119,16 +119,141 @@ class ApplicationController < ActionController::Base redirect_to login_path end - def send_invite(emails, event) + def send_invite(creator, emails, event) invite_request = HTTParty.post('http://172.17.0.1:3002/invite', :body => { :emails => emails, + :creator => creator, :event => { :title => event["title"], :description => event["description"], - :date_time => event["date_time"], + :date_time => event["scheduledAt"], } }) 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 \ No newline at end of file diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb index 174ab4e1e98aa96f9d8fac661f5360ae9e525c43..916187db6b8fa40c900131e8f21c23c5c972b81d 100644 --- a/app/controllers/home_controller.rb +++ b/app/controllers/home_controller.rb @@ -55,6 +55,37 @@ class HomeController < ApplicationController redirect_to root_path 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 + diff --git a/app/models/event_validation.rb b/app/models/event_validation.rb new file mode 100644 index 0000000000000000000000000000000000000000..fa9a7fe0f9ae26108269f346490d75e1de6fd966 --- /dev/null +++ b/app/models/event_validation.rb @@ -0,0 +1,11 @@ +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 diff --git a/app/views/home/home.html.erb b/app/views/home/home.html.erb index 376828bfea3223fa433cfaed227718230cbb86a9..0e07f3cf7e687a4c6dde25e389e00d510a5e4c68 100644 --- a/app/views/home/home.html.erb +++ b/app/views/home/home.html.erb @@ -12,11 +12,17 @@ <body> <%= 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] %> + <%= 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' %> <% else %> <%= link_to "Login", login_path, class: 'btn btn-info btn-md' %> diff --git a/config/routes.rb b/config/routes.rb index bfa1697be6a0750dcee22c49443dfac6d99741a0..b3f6720291bf3b31ed789d1b728c783a1b230b87 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -23,5 +23,9 @@ Rails.application.routes.draw do get 'reset_password', to: 'passwords#edit' post 'reset_password_setup', to: 'passwords#reset_password_setup' 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 diff --git a/docker-compose.yaml b/docker-compose.yaml index a323f18d03fe3ecad847102cd85dd32578dca1e6..7926eb8c40d8d1bd55f07fa06a117e5cac0acd7a 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -23,6 +23,19 @@ services: ports: - "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: image: redis:latest @@ -36,7 +49,7 @@ services: depends_on: - 'redis' command: sidekiq -C config/sidekiq.yml - image: driftydirt/group24mailer:0.0.8 + image: driftydirt/group24mailer:0.0.9 primary: @@ -59,7 +72,7 @@ services: links: - db_auth mailer: - image: driftydirt/group24mailer:0.0.8 + image: driftydirt/group24mailer:0.0.9 ports: - "3002:3000" environment: @@ -67,6 +80,14 @@ services: REDIS_PORT: 6379 links: - redis + event: + image: driftydirt/group24events:0.0.1 + ports: + - 3003:3000 + depends_on: + - db_events + links: + - db_events volumes: redis: driver: local \ No newline at end of file