From e08dd36d68327f1ef21a24328406d3edb945a1fc Mon Sep 17 00:00:00 2001 From: Bilal Date: Wed, 22 Jul 2020 14:05:31 +0200 Subject: [PATCH 1/3] remove zoom url validation --- app/models/casting_submission.rb | 16 ------------- config/locales/en.yml | 7 ------ config/locales/es.yml | 3 --- db/structure.sql | 40 +++++--------------------------- 4 files changed, 6 insertions(+), 60 deletions(-) diff --git a/app/models/casting_submission.rb b/app/models/casting_submission.rb index d9262a7..a661f0b 100644 --- a/app/models/casting_submission.rb +++ b/app/models/casting_submission.rb @@ -6,7 +6,6 @@ class CastingSubmission < ApplicationRecord has_secure_token validates :performer_name, presence: true - validate :zoom_meeting_url_validation scope :completed, -> { where.not(interviewed_at: nil) } @@ -21,19 +20,4 @@ class CastingSubmission < ApplicationRecord def zip_file_name "#{self.casting_call.title.parameterize}_#{self.performer_name.parameterize}_#{Time.now.strftime('%Y-%m-%d_%H-%M-%S')}" end - - def zoom_meeting_url_validation - # valid url format : - # https://us01web.zoom.us/j/12345?pwd=Ab103odw3ok343ko - valid_url_regex = %r{^https\://[a-z0-9]+\.zoom.us/j/[0-9]+\?pwd\=.+} - return true if zoom_meeting_url.match valid_url_regex - - errors.add(:base, invalid_meeting_url_message) - end - - private - - def invalid_meeting_url_message - I18n.t('casting_submissions.validation_errors.invalid_meeting_url') - end end diff --git a/config/locales/en.yml b/config/locales/en.yml index c271801..9f48707 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -283,13 +283,6 @@ en: empty: Casting Submission results will appear here. show: empty: Casting Submission files and recorded meeetings will appear here. - casting_submissions: - index: - empty: Casting Submission results will appear here. - show: - empty: Casting Submission files and recorded meeetings will appear here. - validation_errors: - invalid_meeting_url: Zoom Meeting URL is invalid contract_downloads: download: failure: Your download could not be generated. diff --git a/config/locales/es.yml b/config/locales/es.yml index be1257b..251a063 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -76,9 +76,6 @@ es: share_stream: Share live stream link with clients stream_from_mobile_app: Stream from ME Suite Mobile app, or via a professional camera stream_multiple_cameras: Stream multiple cameras at one time - casting_submissions: - validation_errors: - invalid_meeting_url: Zoom Meeting URL is invalid (ES) contract_templates: blank_contracts: create: diff --git a/db/structure.sql b/db/structure.sql index fcd9e16..d324cbe 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -9,20 +9,6 @@ SET xmloption = content; SET client_min_messages = warning; SET row_security = off; --- --- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: - --- - -CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog; - - --- --- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner: - --- - -COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language'; - - -- -- Name: fuzzystrmatch; Type: EXTENSION; Schema: -; Owner: - -- @@ -331,8 +317,8 @@ CREATE TABLE public.appearance_releases ( person_last_name character varying, guardian_first_name character varying, guardian_last_name character varying, - guardian_email character varying, identifier character varying, + guardian_email character varying, person_address_street2 character varying, person_address_city character varying, person_address_state character varying, @@ -742,15 +728,6 @@ CREATE SEQUENCE public.contract_templates_id_seq ALTER SEQUENCE public.contract_templates_id_seq OWNED BY public.contract_templates.id; --- --- Name: data_migrations; Type: TABLE; Schema: public; Owner: - --- - -CREATE TABLE public.data_migrations ( - version character varying NOT NULL -); - - -- -- Name: directories; Type: TABLE; Schema: public; Owner: - -- @@ -1492,6 +1469,7 @@ CREATE TABLE public.settings ( -- CREATE SEQUENCE public.settings_id_seq + AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE @@ -1527,6 +1505,7 @@ CREATE TABLE public.taggings ( -- CREATE SEQUENCE public.taggings_id_seq + AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE @@ -1557,6 +1536,7 @@ CREATE TABLE public.tags ( -- CREATE SEQUENCE public.tags_id_seq + AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE @@ -1917,9 +1897,9 @@ CREATE TABLE public.zoom_meetings ( api_meeting_id character varying, created_at timestamp(6) without time zone NOT NULL, updated_at timestamp(6) without time zone NOT NULL, - status integer DEFAULT 0, zoom_user_id bigint, - project_id bigint + project_id bigint, + status integer DEFAULT 0 ); @@ -2426,14 +2406,6 @@ ALTER TABLE ONLY public.contract_templates ADD CONSTRAINT contract_templates_pkey PRIMARY KEY (id); --- --- Name: data_migrations data_migrations_pkey; Type: CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.data_migrations - ADD CONSTRAINT data_migrations_pkey PRIMARY KEY (version); - - -- -- Name: directories directories_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- -- 2.47.3 From b82aaf77ffad31bfaaaf52781f6b087d8c038edb Mon Sep 17 00:00:00 2001 From: Bilal Date: Wed, 22 Jul 2020 14:13:04 +0200 Subject: [PATCH 2/3] remove specs related to zoom url validation --- .../casting_submissions_controller_spec.rb | 10 ------ ...admin_managing_casting_submissions_spec.rb | 31 ------------------- 2 files changed, 41 deletions(-) diff --git a/spec/controllers/admin/casting_submissions_controller_spec.rb b/spec/controllers/admin/casting_submissions_controller_spec.rb index bfc684f..aacbcef 100644 --- a/spec/controllers/admin/casting_submissions_controller_spec.rb +++ b/spec/controllers/admin/casting_submissions_controller_spec.rb @@ -37,16 +37,6 @@ RSpec.describe Admin::CastingSubmissionsController, type: :controller do post :create, params: { casting_submission: casting_submission_params } }.to change(CastingSubmission, :count) end - - it "does not create new record if zoom meeting url is not valid" do - expect { - post :create, params: { - casting_submission: casting_submission_params - .except(:zoom_meeting_url) - .merge(zoom_meeting_url: "malformed_url") - } - }.to change(CastingSubmission, :count).by(0) - end end describe "#edit" do diff --git a/spec/features/admin_managing_casting_submissions_spec.rb b/spec/features/admin_managing_casting_submissions_spec.rb index a108328..209e4eb 100644 --- a/spec/features/admin_managing_casting_submissions_spec.rb +++ b/spec/features/admin_managing_casting_submissions_spec.rb @@ -8,37 +8,6 @@ feature "Admin managing casting submissions" do sign_in current_user end - scenario "admin cannot create casting submission with invalid zoom url", js: true do - visit admin_casting_submissions_path - cc = create(:casting_call, title: "SpecialCastingCall") - - click_link create_casting_submission_button - expect(page).to have_content new_casting_submission_heading - - fill_in performer_name_field, with: "TestName" - select cc.title, from: casting_call_field - fill_in zoom_meeting_url_field, with: "malformed url" - - expect do - click_on submit_casting_submission_form - end.to change(CastingSubmission, :count).by(0) - expect(page).to have_content zoom_meeting_url_invalid_error - - fill_in zoom_meeting_url_field, with: "https://similar.google.com/j/24324324?pwd=334kni3j4" - - expect do - click_on submit_casting_submission_form - end.to change(CastingSubmission, :count).by(0) - expect(page).to have_content zoom_meeting_url_invalid_error - - fill_in zoom_meeting_url_field, with: "https://s01.zoom.us/j/343434?pwd=dawidj34ijij" - - expect do - click_on submit_casting_submission_form - end.to change(CastingSubmission, :count).by(1) - expect(page).to have_content create_casting_submission_button - end - scenario "when creating new casting call interview - interview recording field is not visible" do visit admin_casting_submissions_path -- 2.47.3 From 62ef25e5119884e6f60b3fe202da1acb2501edc3 Mon Sep 17 00:00:00 2001 From: Bilal Date: Thu, 23 Jul 2020 12:12:45 +0200 Subject: [PATCH 3/3] fix casting submission view page --- app/models/casting_submission.rb | 8 ----- .../public/casting_submissions/show.html.erb | 2 +- ...admin_managing_casting_submissions_spec.rb | 30 +++++++++++++++++++ 3 files changed, 31 insertions(+), 9 deletions(-) diff --git a/app/models/casting_submission.rb b/app/models/casting_submission.rb index a661f0b..45ad0a2 100644 --- a/app/models/casting_submission.rb +++ b/app/models/casting_submission.rb @@ -9,14 +9,6 @@ class CastingSubmission < ApplicationRecord scope :completed, -> { where.not(interviewed_at: nil) } - def join_zoom_meeting_url - uri = URI.parse(self.zoom_meeting_url) - zoom_meeting_id = uri.path.gsub("/j/", "") - zoom_meeting_pwd = uri.query.gsub("pwd=", "") - - "zoommtg://zoom.us/join?confno=#{zoom_meeting_id}&pwd=#{zoom_meeting_pwd}" - end - def zip_file_name "#{self.casting_call.title.parameterize}_#{self.performer_name.parameterize}_#{Time.now.strftime('%Y-%m-%d_%H-%M-%S')}" end diff --git a/app/views/public/casting_submissions/show.html.erb b/app/views/public/casting_submissions/show.html.erb index 687f59f..1ddee2b 100644 --- a/app/views/public/casting_submissions/show.html.erb +++ b/app/views/public/casting_submissions/show.html.erb @@ -45,7 +45,7 @@
- <%= link_to "Start Interview", @casting_submission.join_zoom_meeting_url, target: "_blank", class: "btn btn-primary" %> + <%= link_to "Start Interview", @casting_submission.zoom_meeting_url, target: "_blank", class: "btn btn-primary" %>
diff --git a/spec/features/admin_managing_casting_submissions_spec.rb b/spec/features/admin_managing_casting_submissions_spec.rb index 209e4eb..046e23c 100644 --- a/spec/features/admin_managing_casting_submissions_spec.rb +++ b/spec/features/admin_managing_casting_submissions_spec.rb @@ -47,6 +47,20 @@ feature "Admin managing casting submissions" do expect(page).to have_link CastingSubmission.last.interview_recording.attachment.blob.filename.to_s end + scenario "when admin opens view page for casting submission, it does not fail if zoom meeting URL is invalid" do + cc = create(:casting_call) + cci = create(:casting_submission, casting_call: cc, zoom_meeting_url: "anything") + + visit admin_casting_submissions_path + + click_on manage_button + click_link view_link + + expect(page).to have_content casting_submission_details_header + expect(page).to have_content interview_files_label + expect(page).to have_content cci.performer_name + end + private def create_casting_submission_button @@ -96,4 +110,20 @@ feature "Admin managing casting submissions" do def current_interview_recording_label 'Current interview recording' end + + def manage_button + 'Manage' + end + + def view_link + 'View' + end + + def casting_submission_details_header + 'Casting submission details' + end + + def interview_files_label + 'INTERVIEW FILES:' + end end -- 2.47.3