mirror of
https://github.com/ENSL/ensl.org.git
synced 2024-12-24 11:31:33 +00:00
Added timezone based google calendar widget
Updated unicorn and capistrano deployment configuration for the staging environment HTML formatting Fixes errors when posting new issues Added Google Calendar client code CSS tweaks to layout Added new .env vars Layout tweaks Updated contributors
This commit is contained in:
parent
53e520e0d2
commit
c2309dd2ef
29 changed files with 1065 additions and 41 deletions
|
@ -2,6 +2,8 @@ RACK_ENV=
|
|||
RAILS_ENV=
|
||||
APP_SECRET=
|
||||
|
||||
DEPLOY_PATH=
|
||||
|
||||
UNICORN_USER=deploy
|
||||
UNICORN_GROUP=deploy
|
||||
UNICORN_WORKERS=4
|
||||
|
@ -18,4 +20,5 @@ NEW_RELIC_LICENSE_KEY=
|
|||
|
||||
EXCEPTIONAL_API_KEY=
|
||||
|
||||
GOOGLE_API_KEY=
|
||||
GOOGLE_CALENDAR_ID=
|
||||
|
|
2
Gemfile
2
Gemfile
|
@ -9,6 +9,7 @@ gem 'dalli', '~> 2.7.0'
|
|||
|
||||
gem 'exceptional', '~> 2.0.33'
|
||||
gem 'oj', '~> 2.5.5'
|
||||
gem 'faraday', '~> 0.9.0'
|
||||
gem 'gruff', '~> 0.3.6'
|
||||
gem 'nokogiri', '~> 1.6.1'
|
||||
gem 'bbcoder', '~> 1.0.1'
|
||||
|
@ -50,6 +51,7 @@ group :test do
|
|||
gem 'poltergeist', '~> 1.5.0'
|
||||
gem 'selenium-webdriver', '~> 2.41.0'
|
||||
gem 'factory_girl_rails', '~> 4.4.1'
|
||||
gem 'timecop', '~> 0.7.1'
|
||||
end
|
||||
|
||||
group :development, :test do
|
||||
|
|
|
@ -100,6 +100,8 @@ GEM
|
|||
factory_girl_rails (4.4.1)
|
||||
factory_girl (~> 4.4.0)
|
||||
railties (>= 3.0.0)
|
||||
faraday (0.9.0)
|
||||
multipart-post (>= 1.2, < 3)
|
||||
ffi (1.9.3)
|
||||
ffi (1.9.3-x86-mingw32)
|
||||
gruff (0.3.6)
|
||||
|
@ -119,6 +121,7 @@ GEM
|
|||
mime-types (1.25.1)
|
||||
mini_portile (0.5.3)
|
||||
multi_json (1.8.4)
|
||||
multipart-post (2.0.0)
|
||||
mysql2 (0.3.15)
|
||||
net-scp (1.1.2)
|
||||
net-ssh (>= 2.6.5)
|
||||
|
@ -223,6 +226,7 @@ GEM
|
|||
ref
|
||||
thor (0.18.1)
|
||||
tilt (1.4.1)
|
||||
timecop (0.7.1)
|
||||
tins (1.0.1)
|
||||
tinymce-rails (3.5.9)
|
||||
railties (>= 3.1.1)
|
||||
|
@ -268,6 +272,7 @@ DEPENDENCIES
|
|||
dynamic_form (~> 1.1.4)
|
||||
exceptional (~> 2.0.33)
|
||||
factory_girl_rails (~> 4.4.1)
|
||||
faraday (~> 0.9.0)
|
||||
gruff (~> 0.3.6)
|
||||
jquery-rails (~> 2.0.2)
|
||||
kgio (~> 2.9.2)
|
||||
|
@ -286,6 +291,7 @@ DEPENDENCIES
|
|||
selenium-webdriver (~> 2.41.0)
|
||||
simplecov (~> 0.7.1)
|
||||
therubyracer (~> 0.12.1)
|
||||
timecop (~> 0.7.1)
|
||||
tinymce-rails (~> 3.5.9)
|
||||
uglifier (~> 2.5.0)
|
||||
unicorn (~> 4.8.2)
|
||||
|
|
|
@ -32,6 +32,7 @@ Features:
|
|||
|
||||
## Contributors
|
||||
|
||||
- [Ari Timonen](https://github.com/jirikivaari) - Original author
|
||||
- [Florent Latombe](https://github.com/flatombe) - Improvements
|
||||
- [Luke Barratt](https://github.com/lbarratt) - Improvements
|
||||
- [Ari Timonen](https://github.com/jirikivaari) (Original Author)
|
||||
- [Florent Latombe](https://github.com/flatombe)
|
||||
- [Luke Barratt](https://github.com/lbarratt)
|
||||
- [Callum Barratt](https://github.com/cbarratt)
|
|
@ -6,8 +6,9 @@ div
|
|||
&.article
|
||||
@include rounded-corners
|
||||
@include shadow
|
||||
width: 650px
|
||||
width: 100%
|
||||
padding: 0px
|
||||
margin-right: 0
|
||||
margin-bottom: 20px
|
||||
border: 1px solid #d7d7d7
|
||||
background-color: $bg_box
|
||||
|
@ -16,8 +17,9 @@ div
|
|||
&.article
|
||||
> h1
|
||||
@include shaded-top
|
||||
box-sizing: border-box
|
||||
margin: 0
|
||||
width: 630px
|
||||
width: 100%
|
||||
font-size: 140%
|
||||
h1 a
|
||||
color: #ffffff
|
||||
|
|
|
@ -164,7 +164,7 @@ input
|
|||
float: right
|
||||
|
||||
.big
|
||||
width: 65%
|
||||
width: 70%
|
||||
|
||||
.big2
|
||||
width: 62%
|
||||
|
|
|
@ -137,12 +137,13 @@ div
|
|||
color: #d6d5d5
|
||||
|
||||
&#indexMainarea
|
||||
padding: 10px 100px 10px 150px
|
||||
padding: 10px 100px 10px 100px
|
||||
|
||||
&#indexContent
|
||||
width: 650px
|
||||
width: 700px
|
||||
margin-top: 15px
|
||||
margin-left: 15px
|
||||
margin-right: 15px
|
||||
margin-right: 20px
|
||||
float: left
|
||||
padding: 0
|
||||
|
||||
|
@ -152,7 +153,7 @@ div
|
|||
&.indexBox
|
||||
@include rounded-corners
|
||||
@include shadow
|
||||
width: 220px
|
||||
width: 250px
|
||||
padding-bottom: 10px
|
||||
margin-bottom: 15px
|
||||
background-color: $bg_box
|
||||
|
@ -164,6 +165,14 @@ div
|
|||
height: 25px
|
||||
font-size: 14px
|
||||
font-weight: bold
|
||||
&.separator
|
||||
@include shaded-top
|
||||
border-radius: 0px
|
||||
margin: 0
|
||||
padding-top: 5px
|
||||
height: 20px
|
||||
font-size: 12px
|
||||
font-weight: normal
|
||||
&.body
|
||||
width: 100%
|
||||
text-align: left
|
||||
|
@ -183,6 +192,14 @@ div
|
|||
width: 110px
|
||||
text-align: center
|
||||
|
||||
&#index-calendar
|
||||
padding-bottom: 0
|
||||
.widget-content-wrapper
|
||||
padding-bottom: 10px
|
||||
max-height: 400px
|
||||
overflow-x: hidden
|
||||
overflow-y: scroll
|
||||
|
||||
&#indexPosts
|
||||
padding: 5px
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ td
|
|||
padding-left: 15px
|
||||
padding-top: 20px
|
||||
vertical-align: top
|
||||
width: 450px
|
||||
width: 550px
|
||||
|
||||
div
|
||||
&.userFields
|
||||
|
|
|
@ -130,4 +130,18 @@ module ApplicationHelper
|
|||
end
|
||||
link_to_function(name, ("add_fields(this, '#{association}', '#{escape_javascript(fields)}')"))
|
||||
end
|
||||
|
||||
def timezone_offset
|
||||
if @cuser
|
||||
@cuser.time_zone
|
||||
else
|
||||
Time.zone.name
|
||||
end
|
||||
end
|
||||
|
||||
def upcoming_matches
|
||||
GoogleCalendar.new(ENV['GOOGLE_CALENDAR_ID'], timezone_offset).upcoming.sort_by do |event|
|
||||
event.start
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -18,6 +18,8 @@
|
|||
require File.join(Rails.root, 'vendor', 'plugins', 'acts-as-readable', 'init.rb')
|
||||
|
||||
class Issue < ActiveRecord::Base
|
||||
include Extra
|
||||
|
||||
STATUS_OPEN = 0
|
||||
STATUS_SOLVED = 1
|
||||
STATUS_REJECTED = 2
|
||||
|
|
120
app/services/google_calendar.rb
Normal file
120
app/services/google_calendar.rb
Normal file
|
@ -0,0 +1,120 @@
|
|||
class GoogleCalendar
|
||||
attr_accessor :timezone
|
||||
|
||||
def initialize(id, timezone_offset = Time.zone.name)
|
||||
@id = id
|
||||
@timezone_offset = timezone_offset
|
||||
end
|
||||
|
||||
def summary
|
||||
list.summary
|
||||
end
|
||||
|
||||
def timezone
|
||||
list.timezone
|
||||
end
|
||||
|
||||
def events
|
||||
list.events
|
||||
end
|
||||
|
||||
def upcoming
|
||||
events.select do |event|
|
||||
event.start >= Time.zone.now
|
||||
end
|
||||
end
|
||||
|
||||
def list
|
||||
@list ||= GoogleCalendar::Request.events_list(@id, @timezone_offset)
|
||||
end
|
||||
end
|
||||
|
||||
class GoogleCalendar
|
||||
class Request
|
||||
BASE_URL = "https://www.googleapis.com/calendar/v3/calendars"
|
||||
EVENTS_ENDPOINT = "events"
|
||||
|
||||
def self.events_list(id, timezone_offset)
|
||||
request = self.new(id, EVENTS_ENDPOINT)
|
||||
GoogleCalendar::EventList.new(request.parsed_response, timezone_offset)
|
||||
end
|
||||
|
||||
def initialize(id, endpoint)
|
||||
@id = id
|
||||
@endpoint = endpoint
|
||||
@response = get_data
|
||||
end
|
||||
|
||||
def parsed_response
|
||||
JSON.parse(@response.body)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def get_data
|
||||
Rails.cache.fetch(cache_key, expires_in: 5.minutes) do
|
||||
Faraday.get(request_url)
|
||||
end
|
||||
end
|
||||
|
||||
def cache_key
|
||||
"/google_calendar/#{@id}/#{@endpoint}"
|
||||
end
|
||||
|
||||
def request_url
|
||||
"#{BASE_URL}/#{@id}/#{@endpoint}/?key=#{ENV['GOOGLE_API_KEY']}"
|
||||
end
|
||||
end
|
||||
|
||||
class EventList
|
||||
attr_reader :summary, :events, :timezone
|
||||
|
||||
def initialize(list, timezone_offset)
|
||||
@list = list
|
||||
@timezone_offset = timezone_offset
|
||||
|
||||
parse_list
|
||||
parse_events
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def parse_list
|
||||
@summary = @list["summary"]
|
||||
@timezone = @list["timeZone"]
|
||||
end
|
||||
|
||||
def parse_events
|
||||
@events = @list["items"].map do |item|
|
||||
GoogleCalendar::Event.new(item, @timezone_offset)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
class Event
|
||||
def initialize(entry, timezone_offset)
|
||||
@entry = entry
|
||||
@timezone_offset = timezone_offset
|
||||
end
|
||||
|
||||
def start
|
||||
Time.use_zone(@timezone_offset) { Time.zone.parse(@entry["start"]["dateTime"]) }
|
||||
end
|
||||
|
||||
def end
|
||||
Time.use_zone(@timezone_offset) { Time.zone.parse(@entry["end"]["dateTime"]) }
|
||||
end
|
||||
|
||||
def formatted_summary
|
||||
summary.gsub(/(http\:\/\/)(.*[^)])/i, '<a href="\1\2">\2</a>').html_safe
|
||||
end
|
||||
|
||||
def [](key)
|
||||
@entry[key]
|
||||
end
|
||||
|
||||
def method_missing(method)
|
||||
self[method.to_s]
|
||||
end
|
||||
end
|
||||
end
|
|
@ -34,6 +34,10 @@
|
|||
</div>
|
||||
|
||||
<div id="indexRight">
|
||||
<div class="indexBox" id="index-calendar">
|
||||
<%= render :partial => "widgets/calendar" %>
|
||||
</div>
|
||||
|
||||
<div class="indexBox">
|
||||
<div class="header">Shoutbox & Match search</div>
|
||||
<div class="body">
|
||||
|
@ -43,11 +47,9 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<%# if @current_controller == "contests" %>
|
||||
<div class="indexBox" id="indexHighlights">
|
||||
<%= render :partial => "widgets/highlights" %>
|
||||
</div>
|
||||
<%# end %>
|
||||
|
||||
<div class="indexBox" id="indexLatest">
|
||||
<%= render :partial => "widgets/posts" %>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<ul id="userTab-nav" class="tabs">
|
||||
<li><a href="#userTabGeneral">General</a></li>
|
||||
<li><a href="#userTabContact">Contact</a></li>
|
||||
<li><a href="#userTabCountry">Locals</a></li>
|
||||
<li><a href="#userTabCountry"><%= t('profile.locals') %></a></li>
|
||||
<li><a href="#userTabFavorites">Favorites</a></li>
|
||||
<li><a href="#userTabSettings">Settings</a></li>
|
||||
<li><a href="#userTabComputer">Computer</a></li>
|
||||
|
@ -279,7 +279,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<p>
|
||||
<%= f.submit "Save" %>
|
||||
<%= f.submit %>
|
||||
</p>
|
||||
</div>
|
||||
<% end %>
|
||||
|
|
16
app/views/widgets/_calendar.html.erb
Normal file
16
app/views/widgets/_calendar.html.erb
Normal file
|
@ -0,0 +1,16 @@
|
|||
<div class="header">Match Schedule</div>
|
||||
|
||||
<div class="widget-content-wrapper">
|
||||
<% upcoming_matches.group_by{ |e| e.start.month }.each do |month, events| %>
|
||||
<% events.group_by { |e| e.start.day }.each do |day, day_events| %>
|
||||
<div class="separator"><%= day_events.first.start.strftime("%A, %e %B") %></div>
|
||||
<% day_events.each do |event| %>
|
||||
<div class="content">
|
||||
<p><%= event.formatted_summary %></p>
|
||||
<p><%= event.start.strftime("%H:%M %Z") %></p>
|
||||
</div>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</div>
|
||||
|
|
@ -19,14 +19,14 @@
|
|||
<% link_to match do %>
|
||||
<%= match.contester1 %><br />
|
||||
<% if match.score1 > match.score2; c1 = 'green'; c2 = 'red' end %>
|
||||
<% if match.score1 < match.score2; c1 = 'red'; c2 = 'green' end %>
|
||||
<% if match.score1 == match.score2; c1 = 'yellow'; c2 = 'yellow' end %>
|
||||
<span class="<%= c1 %>"><%= h match.score1 %></span>
|
||||
-
|
||||
<span class="<%= c2 %>"><%= h match.score2 %></span>
|
||||
<br />
|
||||
<%= match.contester2 %>
|
||||
<% end %>
|
||||
</p>
|
||||
<% end %>
|
||||
</div>
|
||||
<% if match.score1 < match.score2; c1 = 'red'; c2 = 'green' end %>
|
||||
<% if match.score1 == match.score2; c1 = 'yellow'; c2 = 'yellow' end %>
|
||||
<span class="<%= c1 %>"><%= h match.score1 %></span>
|
||||
-
|
||||
<span class="<%= c2 %>"><%= h match.score2 %></span>
|
||||
<br>
|
||||
<%= match.contester2 %>
|
||||
<% end %>
|
||||
</p>
|
||||
<% end %>
|
||||
</div>
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
lock '3.1.0'
|
||||
|
||||
set :application, 'ensl'
|
||||
set :deploy_user, 'deploy'
|
||||
set :deploy_to, '/var/www/virtual/ensl.org/deploy'
|
||||
set :deploy_via, :remote_cache
|
||||
set :pty, true
|
||||
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
set :branch, 'master'
|
||||
set :deploy_to, '/var/www/virtual/ensl.org/deploy'
|
||||
|
||||
set :rails_env, 'production'
|
||||
set :unicorn_rack_env, fetch(:rails_env)
|
||||
|
||||
role :app, %w{vu2009@ensl.org}
|
||||
role :web, %w{vu2009@ensl.org}
|
||||
role :db, %w{vu2009@ensl.org}
|
||||
|
||||
server 'ensl.org', user: 'vu2009', roles: %w{web app}
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
set :branch, 'develop'
|
||||
set :deploy_to, '/var/www/virtual/ensl.org/staging/rails'
|
||||
|
||||
set :rails_env, 'staging'
|
||||
set :unicorn_rack_env, fetch(:rails_env)
|
||||
|
||||
role :app, %w{deploy@staging.ensl.org}
|
||||
role :web, %w{deploy@staging.ensl.org}
|
||||
role :db, %w{deploy@staging.ensl.org}
|
||||
role :app, %w{vu2009@staging.ensl.org}
|
||||
role :web, %w{vu2009@staging.ensl.org}
|
||||
|
||||
server 'staging.ensl.org', user: 'deploy', roles: %w{web app}
|
||||
server 'staging.ensl.org', user: 'vu2009', roles: %w{web app}
|
||||
|
|
|
@ -10,7 +10,7 @@ Ensl::Application.configure do
|
|||
config.whiny_nils = true
|
||||
|
||||
# Show full error reports and disable caching
|
||||
config.consider_all_requests_local = true
|
||||
config.consider_all_requests_local = true
|
||||
config.action_controller.perform_caching = false
|
||||
|
||||
# Don't care if the mailer can't send
|
||||
|
|
|
@ -5,7 +5,7 @@ Ensl::Application.configure do
|
|||
config.cache_classes = true
|
||||
|
||||
# Full error reports are disabled and caching is turned on
|
||||
config.consider_all_requests_local = false
|
||||
config.consider_all_requests_local = false
|
||||
config.action_controller.perform_caching = true
|
||||
|
||||
# Disable Rails's static asset server (Apache or nginx will already do this)
|
||||
|
|
|
@ -24,8 +24,8 @@ Ensl::Application.configure do
|
|||
# config.assets.manifest = YOUR_PATH
|
||||
|
||||
# Specifies the header that your server uses for sending files
|
||||
# config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
|
||||
config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
|
||||
config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
|
||||
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
|
||||
|
||||
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
|
||||
# config.force_ssl = true
|
||||
|
@ -61,4 +61,4 @@ Ensl::Application.configure do
|
|||
|
||||
# Send deprecation notices to registered listeners
|
||||
config.active_support.deprecation = :notify
|
||||
end
|
||||
end
|
||||
|
|
|
@ -81,6 +81,8 @@ en:
|
|||
votes_success: "Voted successfully."
|
||||
error: "error"
|
||||
prohibited: "prohibited"
|
||||
profile:
|
||||
locals: "Locals"
|
||||
sessions:
|
||||
form:
|
||||
forgot_password: "Forgot password?"
|
||||
|
@ -92,6 +94,7 @@ en:
|
|||
user:
|
||||
login: "Login"
|
||||
create: "Register"
|
||||
update: "Update Profile"
|
||||
post:
|
||||
create: "Create Article"
|
||||
activerecord:
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
require "dotenv"
|
||||
Dotenv.load
|
||||
|
||||
base_path = "/var/www/virtual/ensl.org/deploy"
|
||||
base_path = (ENV['DEPLOY_PATH'] || Dir.pwd)
|
||||
current_path = "#{base_path}/current"
|
||||
shared_path = "#{base_path}/shared"
|
||||
|
||||
|
@ -11,7 +11,7 @@ timeout 30
|
|||
preload_app true
|
||||
|
||||
user ENV['UNICORN_USER'], ENV['UNICORN_GROUP']
|
||||
listen Integer(ENV['UNICORN_PORT'] || 4000), :tcp_nopush => true
|
||||
listen Integer(ENV['UNICORN_PORT']), :tcp_nopush => true
|
||||
listen ENV['UNICORN_SOCKET'], :backlog => 64
|
||||
|
||||
stderr_path "#{shared_path}/log/unicorn.stderr.log"
|
||||
|
|
5
spec/factories/profile.rb
Normal file
5
spec/factories/profile.rb
Normal file
|
@ -0,0 +1,5 @@
|
|||
FactoryGirl.define do
|
||||
factory :profile do
|
||||
web "ensl.org"
|
||||
end
|
||||
end
|
|
@ -9,6 +9,10 @@ FactoryGirl.define do
|
|||
country "EU"
|
||||
raw_password "PasswordABC123"
|
||||
|
||||
after(:create) do |user|
|
||||
create(:profile, user: user)
|
||||
end
|
||||
|
||||
factory :user_with_team do
|
||||
after(:create) do |user|
|
||||
create(:team, founder: user)
|
||||
|
|
53
spec/features/calendar/google_calendar_widget_spec.rb
Normal file
53
spec/features/calendar/google_calendar_widget_spec.rb
Normal file
|
@ -0,0 +1,53 @@
|
|||
require 'spec_helper'
|
||||
|
||||
feature 'Google Calendar widget' do
|
||||
let(:time) { Time.zone.local(2014, 4, 1, 12, 0, 0) }
|
||||
let(:events_list_json) { JSON.parse(File.read(Rails.root.join('spec/fixtures/google_calendar.json'))) }
|
||||
let!(:user) { create(:user) }
|
||||
|
||||
before do
|
||||
Timecop.travel(time)
|
||||
|
||||
GoogleCalendar::Request.stub(:events_list) do
|
||||
GoogleCalendar::EventList.new(events_list_json, Time.zone.name)
|
||||
end
|
||||
|
||||
visit root_path
|
||||
end
|
||||
|
||||
scenario 'the most recent upcoming event should appear correctly' do
|
||||
expect(first_event).to have_content("Div 2B: el'pheer vs. RadicaL")
|
||||
end
|
||||
|
||||
feature 'Timezones offsets' do
|
||||
scenario 'when a user is logged out, CEST is default' do
|
||||
expect(first_event).to have_content("20:30 CEST")
|
||||
end
|
||||
|
||||
scenario 'when a user is logged in, their local timezone is used' do
|
||||
sign_in_as(user)
|
||||
change_timezone_for(user, timezone_us_east)
|
||||
visit root_path
|
||||
|
||||
expect(first_event).to have_content(timezone_adjusted)
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def first_event
|
||||
page.find(:xpath, "//div[@id = 'index-calendar']/div/div[@class = 'content'][1]")
|
||||
end
|
||||
|
||||
def timezone_adjusted
|
||||
if Time.now.dst?
|
||||
"14:30 EDT"
|
||||
else
|
||||
"15:30 EST"
|
||||
end
|
||||
end
|
||||
|
||||
def timezone_us_east
|
||||
"Eastern Time (US & Canada)"
|
||||
end
|
||||
end
|
763
spec/fixtures/google_calendar.json
vendored
Normal file
763
spec/fixtures/google_calendar.json
vendored
Normal file
|
@ -0,0 +1,763 @@
|
|||
{
|
||||
"kind": "calendar#events",
|
||||
"etag": "\"2DaeHpkENZGECFHdcr5l8tYxjD4/uXUVU6PbSJC9e6cCh7-EC4OsKu0\"",
|
||||
"summary": "NSL Season 4 Confirmed Match Schedule",
|
||||
"description": "",
|
||||
"updated": "2014-04-01T20:18:31.372Z",
|
||||
"timeZone": "America/New_York",
|
||||
"accessRole": "reader",
|
||||
"items": [
|
||||
{
|
||||
"kind": "calendar#event",
|
||||
"etag": "\"2DaeHpkENZGECFHdcr5l8tYxjD4/MTM5NTM1ODMwOTgxMjAwMA\"",
|
||||
"id": "gsq5f4k3mhg4keuqu1hqom1h18",
|
||||
"status": "confirmed",
|
||||
"htmlLink": "https://www.google.com/calendar/event?eid=Z3NxNWY0azNtaGc0a2V1cXUxaHFvbTFoMTggdnQuZWR1X281dHVnc3NqZTRoNnBqbnZ2aHNuNmw3bG9jQGc",
|
||||
"created": "2014-03-19T21:40:28.000Z",
|
||||
"updated": "2014-03-20T23:31:49.812Z",
|
||||
"summary": "Div 3A: Silvermoon vs. Frequency (http://twitch.tv/feathermonster)",
|
||||
"description": "http://www.ensl.org/matches/5488\n\nWeek 1 matchup. \n\nReferee: NeXuS\nCaster: Feathermonster\nStream: http://twitch.tv/feathermonster",
|
||||
"creator": {
|
||||
"email": "joeyh89@vt.edu",
|
||||
"displayName": "Joey Hutchins"
|
||||
},
|
||||
"organizer": {
|
||||
"email": "vt.edu_o5tugssje4h6pjnvvhsn6l7loc@group.calendar.google.com",
|
||||
"displayName": "NSL Season 4 Matches",
|
||||
"self": true
|
||||
},
|
||||
"start": {
|
||||
"dateTime": "2014-03-20T22:00:00-04:00"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2014-03-21T00:00:00-04:00"
|
||||
},
|
||||
"iCalUID": "gsq5f4k3mhg4keuqu1hqom1h18@google.com",
|
||||
"sequence": 1
|
||||
},
|
||||
{
|
||||
"kind": "calendar#event",
|
||||
"etag": "\"2DaeHpkENZGECFHdcr5l8tYxjD4/MTM5NTM1ODM4NTQyMDAwMA\"",
|
||||
"id": "7g1k46eq471fsrsub1hqiqa4do",
|
||||
"status": "confirmed",
|
||||
"htmlLink": "https://www.google.com/calendar/event?eid=N2cxazQ2ZXE0NzFmc3JzdWIxaHFpcWE0ZG8gdnQuZWR1X281dHVnc3NqZTRoNnBqbnZ2aHNuNmw3bG9jQGc",
|
||||
"created": "2014-03-19T21:37:32.000Z",
|
||||
"updated": "2014-03-20T23:33:05.420Z",
|
||||
"summary": "Div 2B: WongaNS vs. 2hrsLater (http://hitbox.tv/danjio)",
|
||||
"description": "http://www.ensl.org/matches/5509\n\nWeek 1 matchup. \n\nReferee: Sohma\nCaster: Danjio\nStream: http://hitbox.tv/danjio",
|
||||
"creator": {
|
||||
"email": "joeyh89@vt.edu",
|
||||
"displayName": "Joey Hutchins"
|
||||
},
|
||||
"organizer": {
|
||||
"email": "vt.edu_o5tugssje4h6pjnvvhsn6l7loc@group.calendar.google.com",
|
||||
"displayName": "NSL Season 4 Matches",
|
||||
"self": true
|
||||
},
|
||||
"start": {
|
||||
"dateTime": "2014-03-26T15:45:00-04:00"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2014-03-26T17:45:00-04:00"
|
||||
},
|
||||
"transparency": "transparent",
|
||||
"iCalUID": "7g1k46eq471fsrsub1hqiqa4do@google.com",
|
||||
"sequence": 4
|
||||
},
|
||||
{
|
||||
"kind": "calendar#event",
|
||||
"etag": "\"2DaeHpkENZGECFHdcr5l8tYxjD4/MTM5NTQyMTI1MzAzMDAwMA\"",
|
||||
"id": "4bkilrunk0b0n2bl49v2n2tfok",
|
||||
"status": "confirmed",
|
||||
"htmlLink": "https://www.google.com/calendar/event?eid=NGJraWxydW5rMGIwbjJibDQ5djJuMnRmb2sgdnQuZWR1X281dHVnc3NqZTRoNnBqbnZ2aHNuNmw3bG9jQGc",
|
||||
"created": "2014-03-19T17:39:23.000Z",
|
||||
"updated": "2014-03-21T17:00:53.030Z",
|
||||
"summary": "Div 1: Gnarcolepsy vs. Singularity (http://www.twitch.tv/gold_n)",
|
||||
"description": "http://www.ensl.org/matches/5545\n\nWeek 1 matchup. \n\nReferee: Jehuty\nCaster: Golden & joshhhy\nStream: http://www.twitch.tv/gold_n",
|
||||
"creator": {
|
||||
"email": "joeyh89@vt.edu",
|
||||
"displayName": "Joey Hutchins"
|
||||
},
|
||||
"organizer": {
|
||||
"email": "vt.edu_o5tugssje4h6pjnvvhsn6l7loc@group.calendar.google.com",
|
||||
"displayName": "NSL Season 4 Matches",
|
||||
"self": true
|
||||
},
|
||||
"start": {
|
||||
"dateTime": "2014-03-23T20:00:00-04:00",
|
||||
"timeZone": "America/Los_Angeles"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2014-03-23T22:00:00-04:00",
|
||||
"timeZone": "America/Los_Angeles"
|
||||
},
|
||||
"transparency": "transparent",
|
||||
"iCalUID": "4bkilrunk0b0n2bl49v2n2tfok@google.com",
|
||||
"sequence": 1
|
||||
},
|
||||
{
|
||||
"kind": "calendar#event",
|
||||
"etag": "\"2DaeHpkENZGECFHdcr5l8tYxjD4/MTM5NTQyOTg3NjIwMTAwMA\"",
|
||||
"id": "i8vir19jo5vgsf57qb1gjuldak",
|
||||
"status": "confirmed",
|
||||
"htmlLink": "https://www.google.com/calendar/event?eid=aTh2aXIxOWpvNXZnc2Y1N3FiMWdqdWxkYWsgdnQuZWR1X281dHVnc3NqZTRoNnBqbnZ2aHNuNmw3bG9jQGc",
|
||||
"created": "2014-03-21T19:23:38.000Z",
|
||||
"updated": "2014-03-21T19:24:36.201Z",
|
||||
"summary": "Div 4B: PinkFluffyGorges vs. FrenchCompany (http://www.twitch.tv/nittai_nev)",
|
||||
"description": "http://www.ensl.org/matches/5582\n\nWeek 1 matchup. \n\nReferee: Yaluzan\nCaster: Nittai\nStream: http://www.twitch.tv/nittai_nev",
|
||||
"creator": {
|
||||
"email": "joeyh89@vt.edu",
|
||||
"displayName": "Joey Hutchins"
|
||||
},
|
||||
"organizer": {
|
||||
"email": "vt.edu_o5tugssje4h6pjnvvhsn6l7loc@group.calendar.google.com",
|
||||
"displayName": "NSL Season 4 Confirmed Match Schedule",
|
||||
"self": true
|
||||
},
|
||||
"start": {
|
||||
"dateTime": "2014-03-22T16:00:00-04:00"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2014-03-22T18:00:00-04:00"
|
||||
},
|
||||
"iCalUID": "i8vir19jo5vgsf57qb1gjuldak@google.com",
|
||||
"sequence": 0
|
||||
},
|
||||
{
|
||||
"kind": "calendar#event",
|
||||
"etag": "\"2DaeHpkENZGECFHdcr5l8tYxjD4/MTM5NTQzODc1MTM2MTAwMA\"",
|
||||
"id": "2m5v78g88hqq02evfhg5vn9ka8",
|
||||
"status": "confirmed",
|
||||
"htmlLink": "https://www.google.com/calendar/event?eid=Mm01djc4Zzg4aHFxMDJldmZoZzV2bjlrYTggdnQuZWR1X281dHVnc3NqZTRoNnBqbnZ2aHNuNmw3bG9jQGc",
|
||||
"created": "2014-03-21T21:51:27.000Z",
|
||||
"updated": "2014-03-21T21:52:31.361Z",
|
||||
"summary": "Div 2A: Perfect Peckers vs. Intent (http://www.twitch.tv/vindalo0)",
|
||||
"description": "http://www.ensl.org/matches/5532\n\nWeek 1 matchup. \n\nReferee: Unique\nCaster: Vindaloo\nStream: http://www.twitch.tv/vindalo0",
|
||||
"creator": {
|
||||
"email": "pelargir.lsa@gmail.com",
|
||||
"displayName": "Pelargir Chazalet"
|
||||
},
|
||||
"organizer": {
|
||||
"email": "vt.edu_o5tugssje4h6pjnvvhsn6l7loc@group.calendar.google.com",
|
||||
"displayName": "NSL Season 4 Confirmed Match Schedule",
|
||||
"self": true
|
||||
},
|
||||
"start": {
|
||||
"dateTime": "2014-03-22T07:00:00-04:00"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2014-03-22T09:00:00-04:00"
|
||||
},
|
||||
"iCalUID": "2m5v78g88hqq02evfhg5vn9ka8@google.com",
|
||||
"sequence": 0
|
||||
},
|
||||
{
|
||||
"kind": "calendar#event",
|
||||
"etag": "\"2DaeHpkENZGECFHdcr5l8tYxjD4/MTM5NTUzNDU1MTgxMTAwMA\"",
|
||||
"id": "i7fh8brdlj7im5c7thivp6hc9g",
|
||||
"status": "confirmed",
|
||||
"htmlLink": "https://www.google.com/calendar/event?eid=aTdmaDhicmRsajdpbTVjN3RoaXZwNmhjOWcgdnQuZWR1X281dHVnc3NqZTRoNnBqbnZ2aHNuNmw3bG9jQGc",
|
||||
"created": "2014-03-20T19:21:50.000Z",
|
||||
"updated": "2014-03-23T00:29:11.811Z",
|
||||
"summary": "Div 3A: Gorge Busters vs. >>ACV<< ( http://www.hitbox.tv/danjio)",
|
||||
"description": "http://www.ensl.org/matches/5489\n\nWeek 1 matchup. \n\nReferee: \nCaster: Danjio\nStream: http://hitbox.tv/danjio",
|
||||
"creator": {
|
||||
"email": "joeyh89@vt.edu",
|
||||
"displayName": "Joey Hutchins"
|
||||
},
|
||||
"organizer": {
|
||||
"email": "vt.edu_o5tugssje4h6pjnvvhsn6l7loc@group.calendar.google.com",
|
||||
"displayName": "NSL Season 4 Matches",
|
||||
"self": true
|
||||
},
|
||||
"start": {
|
||||
"dateTime": "2014-03-23T14:30:00-04:00"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2014-03-23T16:30:00-04:00"
|
||||
},
|
||||
"iCalUID": "i7fh8brdlj7im5c7thivp6hc9g@google.com",
|
||||
"sequence": 3
|
||||
},
|
||||
{
|
||||
"kind": "calendar#event",
|
||||
"etag": "\"2DaeHpkENZGECFHdcr5l8tYxjD4/MTM5NTU4NDU3Mjc1MjAwMA\"",
|
||||
"id": "jt9upnr744ooit6rhijqs248gc",
|
||||
"status": "confirmed",
|
||||
"htmlLink": "https://www.google.com/calendar/event?eid=anQ5dXBucjc0NG9vaXQ2cmhpanFzMjQ4Z2MgdnQuZWR1X281dHVnc3NqZTRoNnBqbnZ2aHNuNmw3bG9jQGc",
|
||||
"created": "2014-03-23T14:22:52.000Z",
|
||||
"updated": "2014-03-23T14:22:52.752Z",
|
||||
"summary": "Div 4A: UKTeamplay vs. LuckyFkers (http://www.twitch.tv/ISEGaming)",
|
||||
"description": "http://www.ensl.org/matches/5596\n\nWeek 1 matchup.\n\nReferee: Argosh \nCaster: ItsSuperEffective \nStream: http://www.twitch.tv/ISEGaming",
|
||||
"creator": {
|
||||
"email": "pelargir.lsa@gmail.com",
|
||||
"displayName": "Pelargir Chazalet"
|
||||
},
|
||||
"organizer": {
|
||||
"email": "vt.edu_o5tugssje4h6pjnvvhsn6l7loc@group.calendar.google.com",
|
||||
"displayName": "NSL Season 4 Confirmed Match Schedule",
|
||||
"self": true
|
||||
},
|
||||
"start": {
|
||||
"dateTime": "2014-03-23T15:00:00-04:00"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2014-03-23T17:00:00-04:00"
|
||||
},
|
||||
"visibility": "public",
|
||||
"iCalUID": "jt9upnr744ooit6rhijqs248gc@google.com",
|
||||
"sequence": 0
|
||||
},
|
||||
{
|
||||
"kind": "calendar#event",
|
||||
"etag": "\"2DaeHpkENZGECFHdcr5l8tYxjD4/MTM5NTYwMDkwNzc4OTAwMA\"",
|
||||
"id": "mvt93vu72idnqo2p16oklqe5i8",
|
||||
"status": "confirmed",
|
||||
"htmlLink": "https://www.google.com/calendar/event?eid=bXZ0OTN2dTcyaWRucW8ycDE2b2tscWU1aTggdnQuZWR1X281dHVnc3NqZTRoNnBqbnZ2aHNuNmw3bG9jQGc",
|
||||
"created": "2014-03-23T00:33:02.000Z",
|
||||
"updated": "2014-03-23T18:55:07.789Z",
|
||||
"summary": "Div 3B: 3hrsLater vs. PowerUP! (http://www.twitch.tv/RIdeOnSkulks)",
|
||||
"description": "http://www.ensl.org/matches/5475\n\nWeek 1 matchup.\n\nReferee: Pelargir\nCaster: RioS \nStream: http://www.twitch.tv/RIdeOnSkulks",
|
||||
"creator": {
|
||||
"email": "pelargir.lsa@gmail.com",
|
||||
"displayName": "Pelargir Chazalet"
|
||||
},
|
||||
"organizer": {
|
||||
"email": "vt.edu_o5tugssje4h6pjnvvhsn6l7loc@group.calendar.google.com",
|
||||
"displayName": "NSL Season 4 Confirmed Match Schedule",
|
||||
"self": true
|
||||
},
|
||||
"start": {
|
||||
"dateTime": "2014-03-23T15:00:00-04:00"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2014-03-23T17:00:00-04:00"
|
||||
},
|
||||
"visibility": "public",
|
||||
"iCalUID": "mvt93vu72idnqo2p16oklqe5i8@google.com",
|
||||
"sequence": 0
|
||||
},
|
||||
{
|
||||
"kind": "calendar#event",
|
||||
"etag": "\"2DaeHpkENZGECFHdcr5l8tYxjD4/MTM5NTc0MzY4ODE0NDAwMA\"",
|
||||
"id": "ps74a0vskblsi52i24dkicvklg",
|
||||
"status": "confirmed",
|
||||
"htmlLink": "https://www.google.com/calendar/event?eid=cHM3NGEwdnNrYmxzaTUyaTI0ZGtpY3ZrbGcgdnQuZWR1X281dHVnc3NqZTRoNnBqbnZ2aHNuNmw3bG9jQGc",
|
||||
"created": "2014-03-25T10:34:48.000Z",
|
||||
"updated": "2014-03-25T10:34:48.144Z",
|
||||
"summary": "Div 1: Joan of Arc™ vs. Virtual Dejection (http://www.hitbox.tv/danjio)",
|
||||
"description": "http://www.ensl.org/matches/5547\n\nWeek 1 Matchup.\n\nReferee: Pelargir\nCaster: Danjio\nStream: http://www.hitbox.tv/danjio",
|
||||
"creator": {
|
||||
"email": "pelargir.lsa@gmail.com",
|
||||
"displayName": "Pelargir Chazalet"
|
||||
},
|
||||
"organizer": {
|
||||
"email": "vt.edu_o5tugssje4h6pjnvvhsn6l7loc@group.calendar.google.com",
|
||||
"displayName": "NSL Season 4 Confirmed Match Schedule",
|
||||
"self": true
|
||||
},
|
||||
"start": {
|
||||
"dateTime": "2014-03-29T10:00:00-04:00"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2014-03-29T12:00:00-04:00"
|
||||
},
|
||||
"visibility": "public",
|
||||
"iCalUID": "ps74a0vskblsi52i24dkicvklg@google.com",
|
||||
"sequence": 0
|
||||
},
|
||||
{
|
||||
"kind": "calendar#event",
|
||||
"etag": "\"2DaeHpkENZGECFHdcr5l8tYxjD4/MTM5NTc2NTM5ODQwNzAwMA\"",
|
||||
"id": "aafemih6n92b5v5o70k5imd348",
|
||||
"status": "confirmed",
|
||||
"htmlLink": "https://www.google.com/calendar/event?eid=YWFmZW1paDZuOTJiNXY1bzcwazVpbWQzNDggdnQuZWR1X281dHVnc3NqZTRoNnBqbnZ2aHNuNmw3bG9jQGc",
|
||||
"created": "2014-03-25T10:31:01.000Z",
|
||||
"updated": "2014-03-25T16:36:38.407Z",
|
||||
"summary": "Div 4B: [karvalakki] vs. TAWsome (http://www.twitch.tv/ggKaneh)",
|
||||
"description": "http://www.ensl.org/matches/5581\n\nWeek 1 Matchup.\n\nReferee: Pelargir\nCaster: Kaneh\nStream: http://www.twitch.tv/ggKaneh",
|
||||
"creator": {
|
||||
"email": "pelargir.lsa@gmail.com",
|
||||
"displayName": "Pelargir Chazalet"
|
||||
},
|
||||
"organizer": {
|
||||
"email": "vt.edu_o5tugssje4h6pjnvvhsn6l7loc@group.calendar.google.com",
|
||||
"displayName": "NSL Season 4 Confirmed Match Schedule",
|
||||
"self": true
|
||||
},
|
||||
"start": {
|
||||
"dateTime": "2014-03-25T15:00:00-04:00"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2014-03-25T17:00:00-04:00"
|
||||
},
|
||||
"visibility": "public",
|
||||
"iCalUID": "aafemih6n92b5v5o70k5imd348@google.com",
|
||||
"sequence": 0
|
||||
},
|
||||
{
|
||||
"kind": "calendar#event",
|
||||
"etag": "\"2DaeHpkENZGECFHdcr5l8tYxjD4/MTM5NTkxODQ5MDc2ODAwMA\"",
|
||||
"id": "mjipkmgdia834bp7f2ksmnf0rk",
|
||||
"status": "confirmed",
|
||||
"htmlLink": "https://www.google.com/calendar/event?eid=bWppcGttZ2RpYTgzNGJwN2Yya3NtbmYwcmsgdnQuZWR1X281dHVnc3NqZTRoNnBqbnZ2aHNuNmw3bG9jQGc",
|
||||
"created": "2014-03-27T11:08:10.000Z",
|
||||
"updated": "2014-03-27T11:08:10.768Z",
|
||||
"summary": "Div 3B: TAW ♥ vs. HBZ (http://www.twitch.tv/feathermonster)",
|
||||
"description": "http://www.ensl.org/matches/5474\n\nWeek 1 Matchup.\n\nReferee: Pelargir\nCaster: Feathermonster\nStream: http://www.twitch.tv/feathermonster",
|
||||
"creator": {
|
||||
"email": "pelargir.lsa@gmail.com",
|
||||
"displayName": "Pelargir Chazalet"
|
||||
},
|
||||
"organizer": {
|
||||
"email": "vt.edu_o5tugssje4h6pjnvvhsn6l7loc@group.calendar.google.com",
|
||||
"displayName": "NSL Season 4 Confirmed Match Schedule",
|
||||
"self": true
|
||||
},
|
||||
"start": {
|
||||
"dateTime": "2014-03-27T15:30:00-04:00"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2014-03-27T17:30:00-04:00"
|
||||
},
|
||||
"visibility": "public",
|
||||
"iCalUID": "mjipkmgdia834bp7f2ksmnf0rk@google.com",
|
||||
"sequence": 0
|
||||
},
|
||||
{
|
||||
"kind": "calendar#event",
|
||||
"etag": "\"2DaeHpkENZGECFHdcr5l8tYxjD4/MTM5NTkxODUyNjAxMjAwMA\"",
|
||||
"id": "49jnm0eh22lrjgg6738jr85d3k",
|
||||
"status": "confirmed",
|
||||
"htmlLink": "https://www.google.com/calendar/event?eid=NDlqbm0wZWgyMmxyamdnNjczOGpyODVkM2sgdnQuZWR1X281dHVnc3NqZTRoNnBqbnZ2aHNuNmw3bG9jQGc",
|
||||
"created": "2014-03-25T10:36:45.000Z",
|
||||
"updated": "2014-03-27T11:08:46.012Z",
|
||||
"summary": "Div 2B: Table For Six vs. -/AUS/- (http://www.twitch.tv/schwaschwa)",
|
||||
"description": "http://www.ensl.org/matches/5511\n\nWeek 1 Matchup.\n\nReferee: Tico\nCaster: Schwa\nStream: http://www.twitch.tv/schwaschwa",
|
||||
"creator": {
|
||||
"email": "pelargir.lsa@gmail.com",
|
||||
"displayName": "Pelargir Chazalet"
|
||||
},
|
||||
"organizer": {
|
||||
"email": "vt.edu_o5tugssje4h6pjnvvhsn6l7loc@group.calendar.google.com",
|
||||
"displayName": "NSL Season 4 Confirmed Match Schedule",
|
||||
"self": true
|
||||
},
|
||||
"start": {
|
||||
"dateTime": "2014-03-29T22:00:00-04:00"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2014-03-30T00:00:00-04:00"
|
||||
},
|
||||
"visibility": "public",
|
||||
"iCalUID": "49jnm0eh22lrjgg6738jr85d3k@google.com",
|
||||
"sequence": 0
|
||||
},
|
||||
{
|
||||
"kind": "calendar#event",
|
||||
"etag": "\"2DaeHpkENZGECFHdcr5l8tYxjD4/MTM5NTkxODk5MzEwMjAwMA\"",
|
||||
"id": "h7k7efkmoorimfolqkcn3833l0",
|
||||
"status": "confirmed",
|
||||
"htmlLink": "https://www.google.com/calendar/event?eid=aDdrN2Vma21vb3JpbWZvbHFrY24zODMzbDAgdnQuZWR1X281dHVnc3NqZTRoNnBqbnZ2aHNuNmw3bG9jQGc",
|
||||
"created": "2014-03-24T15:12:39.000Z",
|
||||
"updated": "2014-03-27T11:16:33.102Z",
|
||||
"summary": "Div 4A: She-Wolves vs. Diamond Gamers (http://www.twitch.tv/ISEGaming)",
|
||||
"description": "http://www.ensl.org/matches/5597\n\nWeek 1 matchup.\n\nReferee: Tico\nCaster: ItsSuperEffective\nStream: http://www.twitch.tv/ISEGaming",
|
||||
"creator": {
|
||||
"email": "pelargir.lsa@gmail.com",
|
||||
"displayName": "Pelargir Chazalet"
|
||||
},
|
||||
"organizer": {
|
||||
"email": "vt.edu_o5tugssje4h6pjnvvhsn6l7loc@group.calendar.google.com",
|
||||
"displayName": "NSL Season 4 Confirmed Match Schedule",
|
||||
"self": true
|
||||
},
|
||||
"start": {
|
||||
"dateTime": "2014-03-31T21:00:00-04:00"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2014-03-31T23:00:00-04:00"
|
||||
},
|
||||
"visibility": "public",
|
||||
"iCalUID": "h7k7efkmoorimfolqkcn3833l0@google.com",
|
||||
"sequence": 3
|
||||
},
|
||||
{
|
||||
"kind": "calendar#event",
|
||||
"etag": "\"2DaeHpkENZGECFHdcr5l8tYxjD4/MTM5NjAxNTI1MDczNTAwMA\"",
|
||||
"id": "gq026ueot20a8hfv8leu66r7g0",
|
||||
"status": "confirmed",
|
||||
"htmlLink": "https://www.google.com/calendar/event?eid=Z3EwMjZ1ZW90MjBhOGhmdjhsZXU2NnI3ZzAgdnQuZWR1X281dHVnc3NqZTRoNnBqbnZ2aHNuNmw3bG9jQGc",
|
||||
"created": "2014-03-28T14:00:44.000Z",
|
||||
"updated": "2014-03-28T14:00:50.735Z",
|
||||
"summary": "Div 3A: TkMaster vs. Neuromancers (http://www.twitch.tv/sadenki)",
|
||||
"description": "http://www.ensl.org/matches/5493\n\nWeek 2 Matchup.\n\nSTREAM IN FRENCH\n\nReferee:\nCaster: Sadenki\nStream: http://www.twitch.tv/sadenki",
|
||||
"creator": {
|
||||
"email": "pelargir.lsa@gmail.com",
|
||||
"displayName": "Pelargir Chazalet"
|
||||
},
|
||||
"organizer": {
|
||||
"email": "vt.edu_o5tugssje4h6pjnvvhsn6l7loc@group.calendar.google.com",
|
||||
"displayName": "NSL Season 4 Confirmed Match Schedule",
|
||||
"self": true
|
||||
},
|
||||
"start": {
|
||||
"dateTime": "2014-03-30T14:30:00-04:00"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2014-03-30T16:30:00-04:00"
|
||||
},
|
||||
"visibility": "public",
|
||||
"iCalUID": "gq026ueot20a8hfv8leu66r7g0@google.com",
|
||||
"sequence": 0
|
||||
},
|
||||
{
|
||||
"kind": "calendar#event",
|
||||
"etag": "\"2DaeHpkENZGECFHdcr5l8tYxjD4/MTM5NjA0NDg1OTEyMDAwMA\"",
|
||||
"id": "5kp8kjnmhf0dipvc322quf2f6g",
|
||||
"status": "confirmed",
|
||||
"htmlLink": "https://www.google.com/calendar/event?eid=NWtwOGtqbm1oZjBkaXB2YzMyMnF1ZjJmNmcgdnQuZWR1X281dHVnc3NqZTRoNnBqbnZ2aHNuNmw3bG9jQGc",
|
||||
"created": "2014-03-27T22:26:55.000Z",
|
||||
"updated": "2014-03-28T22:14:19.120Z",
|
||||
"summary": "Div 3A: TkMaster vs. Vexta Ω (http://www.twitch.tv/sadenki)",
|
||||
"description": "http://www.ensl.org/matches/5490\n\nWeek 1 Matchup.\n\nSTREAM IN FRENCH\n\nReferee: Sohma\nCaster: Sadenki & Mirmouz\nStream: http://www.twitch.tv/sadenki",
|
||||
"creator": {
|
||||
"email": "pelargir.lsa@gmail.com",
|
||||
"displayName": "Pelargir Chazalet"
|
||||
},
|
||||
"organizer": {
|
||||
"email": "vt.edu_o5tugssje4h6pjnvvhsn6l7loc@group.calendar.google.com",
|
||||
"displayName": "NSL Season 4 Confirmed Match Schedule",
|
||||
"self": true
|
||||
},
|
||||
"start": {
|
||||
"dateTime": "2014-03-31T14:00:00-04:00"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2014-03-31T16:00:00-04:00"
|
||||
},
|
||||
"visibility": "public",
|
||||
"iCalUID": "5kp8kjnmhf0dipvc322quf2f6g@google.com",
|
||||
"sequence": 1
|
||||
},
|
||||
{
|
||||
"kind": "calendar#event",
|
||||
"etag": "\"2DaeHpkENZGECFHdcr5l8tYxjD4/MTM5NjA4OTY3NjMyMzAwMA\"",
|
||||
"id": "8u7mrqlspe78mia6tu21pbst1k",
|
||||
"status": "confirmed",
|
||||
"htmlLink": "https://www.google.com/calendar/event?eid=OHU3bXJxbHNwZTc4bWlhNnR1MjFwYnN0MWsgdnQuZWR1X281dHVnc3NqZTRoNnBqbnZ2aHNuNmw3bG9jQGc",
|
||||
"created": "2014-03-29T10:39:01.000Z",
|
||||
"updated": "2014-03-29T10:41:16.323Z",
|
||||
"summary": "Div 1: onFire vs. RaZe (http://www.twitch.tv/ren26)",
|
||||
"description": "http://www.ensl.org/matches/5548\n\nWeek 1 Matchup.\n\nReferee:\nCaster: Ren26\nStream: http://www.twitch.tv/ren26",
|
||||
"creator": {
|
||||
"email": "pelargir.lsa@gmail.com",
|
||||
"displayName": "Pelargir Chazalet"
|
||||
},
|
||||
"organizer": {
|
||||
"email": "vt.edu_o5tugssje4h6pjnvvhsn6l7loc@group.calendar.google.com",
|
||||
"displayName": "NSL Season 4 Confirmed Match Schedule",
|
||||
"self": true
|
||||
},
|
||||
"start": {
|
||||
"dateTime": "2014-03-29T19:00:00-04:00"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2014-03-29T21:00:00-04:00"
|
||||
},
|
||||
"visibility": "public",
|
||||
"iCalUID": "8u7mrqlspe78mia6tu21pbst1k@google.com",
|
||||
"sequence": 0
|
||||
},
|
||||
{
|
||||
"kind": "calendar#event",
|
||||
"etag": "\"2DaeHpkENZGECFHdcr5l8tYxjD4/MTM5NjExNTY2Mjc0NDAwMA\"",
|
||||
"id": "c46jqcbqt1kb95roo0gedskhd0",
|
||||
"status": "confirmed",
|
||||
"htmlLink": "https://www.google.com/calendar/event?eid=YzQ2anFjYnF0MWtiOTVyb28wZ2Vkc2toZDAgdnQuZWR1X281dHVnc3NqZTRoNnBqbnZ2aHNuNmw3bG9jQGc",
|
||||
"created": "2014-03-29T17:54:22.000Z",
|
||||
"updated": "2014-03-29T17:54:22.744Z",
|
||||
"summary": "Div 2A: Vexta vs. Aphex (http://www.twitch.tv/ren26)",
|
||||
"description": "http://www.ensl.org/matches/5531\n\nWeek 1 Matchup.\n\nReferees: Tico & Zebroe\nCaster: Ren26\nStream: http://www.twitch.tv/ren26",
|
||||
"creator": {
|
||||
"email": "pelargir.lsa@gmail.com",
|
||||
"displayName": "Pelargir Chazalet"
|
||||
},
|
||||
"organizer": {
|
||||
"email": "vt.edu_o5tugssje4h6pjnvvhsn6l7loc@group.calendar.google.com",
|
||||
"displayName": "NSL Season 4 Confirmed Match Schedule",
|
||||
"self": true
|
||||
},
|
||||
"start": {
|
||||
"dateTime": "2014-03-29T16:00:00-04:00"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2014-03-29T18:00:00-04:00"
|
||||
},
|
||||
"visibility": "public",
|
||||
"iCalUID": "c46jqcbqt1kb95roo0gedskhd0@google.com",
|
||||
"sequence": 0
|
||||
},
|
||||
{
|
||||
"kind": "calendar#event",
|
||||
"etag": "\"2DaeHpkENZGECFHdcr5l8tYxjD4/MTM5NjEyNTcxMzQ1MzAwMA\"",
|
||||
"id": "eeduo3nnj33hci76hff49ii8ts",
|
||||
"status": "confirmed",
|
||||
"htmlLink": "https://www.google.com/calendar/event?eid=ZWVkdW8zbm5qMzNoY2k3NmhmZjQ5aWk4dHMgdnQuZWR1X281dHVnc3NqZTRoNnBqbnZ2aHNuNmw3bG9jQGc",
|
||||
"created": "2014-03-29T20:41:53.000Z",
|
||||
"updated": "2014-03-29T20:41:53.453Z",
|
||||
"summary": "Premiere: Saunamen vs. iMAGINE (http://www.twitch.tv/ren26)",
|
||||
"description": "http://www.ensl.org/matches/5429\n\nWeek 1 Matchup.\n\nReferee: Pelargir\nCaster: Ren26\nStream: http://www.twitch.tv/ren26",
|
||||
"creator": {
|
||||
"email": "pelargir.lsa@gmail.com",
|
||||
"displayName": "Pelargir Chazalet"
|
||||
},
|
||||
"organizer": {
|
||||
"email": "vt.edu_o5tugssje4h6pjnvvhsn6l7loc@group.calendar.google.com",
|
||||
"displayName": "NSL Season 4 Confirmed Match Schedule",
|
||||
"self": true
|
||||
},
|
||||
"start": {
|
||||
"dateTime": "2014-03-30T14:00:00-04:00"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2014-03-30T16:00:00-04:00"
|
||||
},
|
||||
"visibility": "public",
|
||||
"iCalUID": "eeduo3nnj33hci76hff49ii8ts@google.com",
|
||||
"sequence": 0
|
||||
},
|
||||
{
|
||||
"kind": "calendar#event",
|
||||
"etag": "\"2DaeHpkENZGECFHdcr5l8tYxjD4/MTM5NjE4MDAzODU3ODAwMA\"",
|
||||
"id": "7rdlnhgllqii9582cdtfhki3lc",
|
||||
"status": "confirmed",
|
||||
"htmlLink": "https://www.google.com/calendar/event?eid=N3JkbG5oZ2xscWlpOTU4MmNkdGZoa2kzbGMgdnQuZWR1X281dHVnc3NqZTRoNnBqbnZ2aHNuNmw3bG9jQGc",
|
||||
"created": "2014-03-27T11:10:53.000Z",
|
||||
"updated": "2014-03-30T11:47:18.578Z",
|
||||
"summary": "Premiere: Legendary Snails vs. Titus Gaming (http://www.twitch.tv/naturalselection2)",
|
||||
"description": "http://www.ensl.org/matches/5428\n\nWeek 1 Matchup.\n\nReferee: Yaluzan\nCaster: WasabiOne & Ren26\nStream: http://www.twitch.tv/naturalselection2",
|
||||
"creator": {
|
||||
"email": "pelargir.lsa@gmail.com",
|
||||
"displayName": "Pelargir Chazalet"
|
||||
},
|
||||
"organizer": {
|
||||
"email": "vt.edu_o5tugssje4h6pjnvvhsn6l7loc@group.calendar.google.com",
|
||||
"displayName": "NSL Season 4 Confirmed Match Schedule",
|
||||
"self": true
|
||||
},
|
||||
"start": {
|
||||
"dateTime": "2014-03-30T12:00:00-04:00"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2014-03-30T14:00:00-04:00"
|
||||
},
|
||||
"visibility": "public",
|
||||
"iCalUID": "7rdlnhgllqii9582cdtfhki3lc@google.com",
|
||||
"sequence": 0
|
||||
},
|
||||
{
|
||||
"kind": "calendar#event",
|
||||
"etag": "\"2DaeHpkENZGECFHdcr5l8tYxjD4/MTM5NjE4MDE0NzAwMzAwMA\"",
|
||||
"id": "aflokq41l64msqdq1q1pmuedqs",
|
||||
"status": "confirmed",
|
||||
"htmlLink": "https://www.google.com/calendar/event?eid=YWZsb2txNDFsNjRtc3FkcTFxMXBtdWVkcXMgdnQuZWR1X281dHVnc3NqZTRoNnBqbnZ2aHNuNmw3bG9jQGc",
|
||||
"created": "2014-03-28T10:11:46.000Z",
|
||||
"updated": "2014-03-30T11:49:07.003Z",
|
||||
"summary": "Div 4B: TAWsome vs. FrenchCompany (http://www.twitch.tv/feathermonster )",
|
||||
"description": "http://www.ensl.org/matches/5585\n\nWeek 2 Matchup.\n\nReferee:\nCaster: Feathermonster\nStream: http://www.twitch.tv/feathermonster",
|
||||
"creator": {
|
||||
"email": "pelargir.lsa@gmail.com",
|
||||
"displayName": "Pelargir Chazalet"
|
||||
},
|
||||
"organizer": {
|
||||
"email": "vt.edu_o5tugssje4h6pjnvvhsn6l7loc@group.calendar.google.com",
|
||||
"displayName": "NSL Season 4 Confirmed Match Schedule",
|
||||
"self": true
|
||||
},
|
||||
"start": {
|
||||
"dateTime": "2014-03-30T15:00:00-04:00"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2014-03-30T17:00:00-04:00"
|
||||
},
|
||||
"visibility": "public",
|
||||
"iCalUID": "aflokq41l64msqdq1q1pmuedqs@google.com",
|
||||
"sequence": 4
|
||||
},
|
||||
{
|
||||
"kind": "calendar#event",
|
||||
"etag": "\"2DaeHpkENZGECFHdcr5l8tYxjD4/MTM5NjE4MDQ3NDIzMTAwMA\"",
|
||||
"id": "274hn9kkkff6hme7k6de1aun9s",
|
||||
"status": "confirmed",
|
||||
"htmlLink": "https://www.google.com/calendar/event?eid=Mjc0aG45a2trZmY2aG1lN2s2ZGUxYXVuOXMgdnQuZWR1X281dHVnc3NqZTRoNnBqbnZ2aHNuNmw3bG9jQGc",
|
||||
"created": "2014-03-24T15:28:41.000Z",
|
||||
"updated": "2014-03-30T11:54:34.231Z",
|
||||
"summary": "Div 2B: el'pheer vs. RadicaL (http://www.twitch.tv/feathermonster)",
|
||||
"description": "http://www.ensl.org/matches/5510\n\nWeek 1 matchup.\n\nReferee:\nCaster: Feathermonster\nStream: http://www.twitch.tv/feathermonster",
|
||||
"creator": {
|
||||
"email": "pelargir.lsa@gmail.com",
|
||||
"displayName": "Pelargir Chazalet"
|
||||
},
|
||||
"organizer": {
|
||||
"email": "vt.edu_o5tugssje4h6pjnvvhsn6l7loc@group.calendar.google.com",
|
||||
"displayName": "NSL Season 4 Confirmed Match Schedule",
|
||||
"self": true
|
||||
},
|
||||
"start": {
|
||||
"dateTime": "2014-04-03T14:30:00-04:00"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2014-04-03T16:30:00-04:00"
|
||||
},
|
||||
"visibility": "public",
|
||||
"iCalUID": "274hn9kkkff6hme7k6de1aun9s@google.com",
|
||||
"sequence": 2
|
||||
},
|
||||
{
|
||||
"kind": "calendar#event",
|
||||
"etag": "\"2DaeHpkENZGECFHdcr5l8tYxjD4/MTM5NjE5MjY3Nzg0MTAwMA\"",
|
||||
"id": "ucrpfl5eeoldr1g29cq35s56o0",
|
||||
"status": "confirmed",
|
||||
"htmlLink": "https://www.google.com/calendar/event?eid=dWNycGZsNWVlb2xkcjFnMjljcTM1czU2bzAgdnQuZWR1X281dHVnc3NqZTRoNnBqbnZ2aHNuNmw3bG9jQGc",
|
||||
"created": "2014-03-27T22:22:21.000Z",
|
||||
"updated": "2014-03-30T15:17:57.841Z",
|
||||
"summary": "Div 2A: Cheesecake vs. Gorge Casting Couch (http://www.twitch.tv/ggKaneh)",
|
||||
"description": "http://www.ensl.org/matches/5530\n\nWeek 1 Matchup.\n\nReferee: Danjio\nCaster: Kaneh\nStream: http://www.twitch.tv/ggKaneh",
|
||||
"creator": {
|
||||
"email": "pelargir.lsa@gmail.com",
|
||||
"displayName": "Pelargir Chazalet"
|
||||
},
|
||||
"organizer": {
|
||||
"email": "vt.edu_o5tugssje4h6pjnvvhsn6l7loc@group.calendar.google.com",
|
||||
"displayName": "NSL Season 4 Confirmed Match Schedule",
|
||||
"self": true
|
||||
},
|
||||
"start": {
|
||||
"dateTime": "2014-03-30T15:00:00-04:00"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2014-03-30T17:00:00-04:00"
|
||||
},
|
||||
"visibility": "public",
|
||||
"iCalUID": "ucrpfl5eeoldr1g29cq35s56o0@google.com",
|
||||
"sequence": 2
|
||||
},
|
||||
{
|
||||
"kind": "calendar#event",
|
||||
"etag": "\"2DaeHpkENZGECFHdcr5l8tYxjD4/MTM5NjI3Mzk4OTc0MzAwMA\"",
|
||||
"id": "4dtgq7c1mk583gjglomk60tn80",
|
||||
"status": "confirmed",
|
||||
"htmlLink": "https://www.google.com/calendar/event?eid=NGR0Z3E3YzFtazU4M2dqZ2xvbWs2MHRuODAgdnQuZWR1X281dHVnc3NqZTRoNnBqbnZ2aHNuNmw3bG9jQGc",
|
||||
"created": "2014-03-31T13:53:09.000Z",
|
||||
"updated": "2014-03-31T13:53:09.743Z",
|
||||
"summary": "Div 3B: OMNOM vs. Mister (twitch.tv/LoopyCaster)",
|
||||
"description": "http://www.ensl.org/matches/5473\n\nWeek 1 Matchup.\n\nReferee: \nCasters! Schwa & Loopy\nStream: http://www.twitch.tv/LoopyCaster",
|
||||
"creator": {
|
||||
"email": "pelargir.lsa@gmail.com",
|
||||
"displayName": "Pelargir Chazalet"
|
||||
},
|
||||
"organizer": {
|
||||
"email": "vt.edu_o5tugssje4h6pjnvvhsn6l7loc@group.calendar.google.com",
|
||||
"displayName": "NSL Season 4 Confirmed Match Schedule",
|
||||
"self": true
|
||||
},
|
||||
"start": {
|
||||
"dateTime": "2014-04-05T14:00:00-04:00"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2014-04-05T16:00:00-04:00"
|
||||
},
|
||||
"visibility": "public",
|
||||
"iCalUID": "4dtgq7c1mk583gjglomk60tn80@google.com",
|
||||
"sequence": 0
|
||||
},
|
||||
{
|
||||
"kind": "calendar#event",
|
||||
"etag": "\"2DaeHpkENZGECFHdcr5l8tYxjD4/MTM5NjI3NDA3NTQzMTAwMA\"",
|
||||
"id": "do011hdp17c36c8rkoobi6lksk",
|
||||
"status": "confirmed",
|
||||
"htmlLink": "https://www.google.com/calendar/event?eid=ZG8wMTFoZHAxN2MzNmM4cmtvb2JpNmxrc2sgdnQuZWR1X281dHVnc3NqZTRoNnBqbnZ2aHNuNmw3bG9jQGc",
|
||||
"created": "2014-03-24T15:26:11.000Z",
|
||||
"updated": "2014-03-31T13:54:35.431Z",
|
||||
"summary": "Div 1: Gnarcolepsy vs. Ant (http://www.twitch.tv/schwaschwa)",
|
||||
"description": "http://www.ensl.org/matches/5549\n\nWeek 2 matchup.\n\nReferee: \nCaster: Schwa\nStream: http://www.twitch.tv/schwaschwa",
|
||||
"creator": {
|
||||
"email": "pelargir.lsa@gmail.com",
|
||||
"displayName": "Pelargir Chazalet"
|
||||
},
|
||||
"organizer": {
|
||||
"email": "vt.edu_o5tugssje4h6pjnvvhsn6l7loc@group.calendar.google.com",
|
||||
"displayName": "NSL Season 4 Confirmed Match Schedule",
|
||||
"self": true
|
||||
},
|
||||
"start": {
|
||||
"dateTime": "2014-04-05T15:30:00-04:00"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2014-04-05T17:30:00-04:00"
|
||||
},
|
||||
"visibility": "public",
|
||||
"iCalUID": "do011hdp17c36c8rkoobi6lksk@google.com",
|
||||
"sequence": 3
|
||||
},
|
||||
{
|
||||
"kind": "calendar#event",
|
||||
"etag": "\"2DaeHpkENZGECFHdcr5l8tYxjD4/MTM5NjI3NDE2NTMxMzAwMA\"",
|
||||
"id": "eo46nhg92f1t3domncc0qiejlo",
|
||||
"status": "confirmed",
|
||||
"htmlLink": "https://www.google.com/calendar/event?eid=ZW80Nm5oZzkyZjF0M2RvbW5jYzBxaWVqbG8gdnQuZWR1X281dHVnc3NqZTRoNnBqbnZ2aHNuNmw3bG9jQGc",
|
||||
"created": "2014-03-31T13:56:05.000Z",
|
||||
"updated": "2014-03-31T13:56:05.313Z",
|
||||
"summary": "Div 4B: [karvalakki] vs. PinkFluffyGorges (twitch.tv/LoopyCaster)",
|
||||
"description": "http://www.ensl.org/matches/5584\n\nWeek 2 Matchup.\n\nReferee: \nCaster: Loopy\nStream: http://www.ensl.org/matches/5584",
|
||||
"creator": {
|
||||
"email": "pelargir.lsa@gmail.com",
|
||||
"displayName": "Pelargir Chazalet"
|
||||
},
|
||||
"organizer": {
|
||||
"email": "vt.edu_o5tugssje4h6pjnvvhsn6l7loc@group.calendar.google.com",
|
||||
"displayName": "NSL Season 4 Confirmed Match Schedule",
|
||||
"self": true
|
||||
},
|
||||
"start": {
|
||||
"dateTime": "2014-04-06T14:00:00-04:00"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2014-04-06T16:00:00-04:00"
|
||||
},
|
||||
"visibility": "public",
|
||||
"iCalUID": "eo46nhg92f1t3domncc0qiejlo@google.com",
|
||||
"sequence": 0
|
||||
},
|
||||
{
|
||||
"kind": "calendar#event",
|
||||
"etag": "\"2DaeHpkENZGECFHdcr5l8tYxjD4/MTM5NjI3NDMwNDE1MzAwMA\"",
|
||||
"id": "1lb8cg9d6m2nl0bs0ude42nplc",
|
||||
"status": "confirmed",
|
||||
"htmlLink": "https://www.google.com/calendar/event?eid=MWxiOGNnOWQ2bTJubDBiczB1ZGU0Mm5wbGMgdnQuZWR1X281dHVnc3NqZTRoNnBqbnZ2aHNuNmw3bG9jQGc",
|
||||
"created": "2014-03-31T13:58:24.000Z",
|
||||
"updated": "2014-03-31T13:58:24.153Z",
|
||||
"summary": "Div 3B: Mister vs. HBZ (twitch.tv/vindalo0)",
|
||||
"description": "http://www.ensl.org/matches/5477\n\nWeek 2 Matchup.\n\nReferee:\nCaster: Vindaloo\nStream: http://www.twitch.tv/vindalo0",
|
||||
"creator": {
|
||||
"email": "pelargir.lsa@gmail.com",
|
||||
"displayName": "Pelargir Chazalet"
|
||||
},
|
||||
"organizer": {
|
||||
"email": "vt.edu_o5tugssje4h6pjnvvhsn6l7loc@group.calendar.google.com",
|
||||
"displayName": "NSL Season 4 Confirmed Match Schedule",
|
||||
"self": true
|
||||
},
|
||||
"start": {
|
||||
"dateTime": "2014-04-04T16:00:00-04:00"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2014-04-04T18:00:00-04:00"
|
||||
},
|
||||
"visibility": "public",
|
||||
"iCalUID": "1lb8cg9d6m2nl0bs0ude42nplc@google.com",
|
||||
"sequence": 0
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,3 +1,5 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Api::V1::UsersCollection do
|
||||
let(:collection) { Api::V1::UsersCollection.new }
|
||||
|
||||
|
|
|
@ -6,7 +6,16 @@ module Features
|
|||
fill_in "login_username", with: user.username
|
||||
fill_in "login_password", with: user.raw_password
|
||||
|
||||
click_button 'Login'
|
||||
click_button I18n.t('helpers.submit.user.login')
|
||||
end
|
||||
|
||||
def change_timezone_for(user, timezone)
|
||||
visit edit_user_path(user.id)
|
||||
|
||||
click_link I18n.t('profile.locals')
|
||||
find("option[value='#{timezone}']").select_option
|
||||
|
||||
click_button I18n.t('helpers.submit.user.update')
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue