refactor emails service
This commit is contained in:
parent
e07819cbf7
commit
1dcb711110
7 changed files with 14 additions and 14 deletions
|
@ -155,7 +155,7 @@ class Admin::UsersController < Admin::ApplicationController
|
|||
|
||||
def remove_email
|
||||
email = user.emails.find(params[:email_id])
|
||||
success = Emails::DestroyService.new(current_user, user, email: email.email).execute
|
||||
success = Emails::DestroyService.new(current_user, user: user, email: email.email).execute
|
||||
|
||||
respond_to do |format|
|
||||
if success
|
||||
|
|
|
@ -5,7 +5,7 @@ class Profiles::EmailsController < Profiles::ApplicationController
|
|||
end
|
||||
|
||||
def create
|
||||
@email = Emails::CreateService.new(current_user, current_user, email_params).execute
|
||||
@email = Emails::CreateService.new(current_user, email_params.merge(user: current_user)).execute
|
||||
|
||||
if @email.errors.blank?
|
||||
NotificationService.new.new_email(@email)
|
||||
|
@ -19,7 +19,7 @@ class Profiles::EmailsController < Profiles::ApplicationController
|
|||
def destroy
|
||||
@email = current_user.emails.find(params[:id])
|
||||
|
||||
Emails::DestroyService.new(current_user, current_user, email: @email.email).execute
|
||||
Emails::DestroyService.new(current_user, user: current_user, email: @email.email).execute
|
||||
|
||||
respond_to do |format|
|
||||
format.html { redirect_to profile_emails_url, status: 302 }
|
||||
|
|
|
@ -526,8 +526,8 @@ class User < ActiveRecord::Base
|
|||
def update_emails_with_primary_email
|
||||
primary_email_record = emails.find_by(email: email)
|
||||
if primary_email_record
|
||||
Emails::DestroyService.new(self, self, email: email).execute
|
||||
Emails::CreateService.new(self, self, email: email_was).execute
|
||||
Emails::DestroyService.new(self, user: self, email: email).execute
|
||||
Emails::CreateService.new(self, user: self, email: email_was).execute
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
module Emails
|
||||
class BaseService
|
||||
def initialize(current_user, user, opts)
|
||||
def initialize(current_user, opts)
|
||||
@current_user = current_user
|
||||
@user = user
|
||||
@user = opts.delete(:user)
|
||||
@email = opts[:email]
|
||||
end
|
||||
end
|
||||
|
|
|
@ -326,7 +326,7 @@ module API
|
|||
user = User.find_by(id: params.delete(:id))
|
||||
not_found!('User') unless user
|
||||
|
||||
email = Emails::CreateService.new(current_user, user, declared_params(include_missing: false)).execute
|
||||
email = Emails::CreateService.new(current_user, declared_params(include_missing: false).merge(user: user)).execute
|
||||
|
||||
if email.errors.blank?
|
||||
NotificationService.new.new_email(email)
|
||||
|
@ -367,7 +367,7 @@ module API
|
|||
not_found!('Email') unless email
|
||||
|
||||
destroy_conditionally!(email) do |email|
|
||||
Emails::DestroyService.new(current_user, user, email: email.email).execute
|
||||
Emails::DestroyService.new(current_user, user: user, email: email.email).execute
|
||||
end
|
||||
|
||||
user.update_secondary_emails!
|
||||
|
@ -672,7 +672,7 @@ module API
|
|||
requires :email, type: String, desc: 'The new email'
|
||||
end
|
||||
post "emails" do
|
||||
email = Emails::CreateService.new(current_user, current_user, declared_params).execute
|
||||
email = Emails::CreateService.new(current_user, declared_params.merge(user: current_user)).execute
|
||||
|
||||
if email.errors.blank?
|
||||
NotificationService.new.new_email(email)
|
||||
|
@ -691,7 +691,7 @@ module API
|
|||
not_found!('Email') unless email
|
||||
|
||||
destroy_conditionally!(email) do |email|
|
||||
Emails::DestroyService.new(current_user, current_user, email: email.email).execute
|
||||
Emails::DestroyService.new(current_user, user: current_user, email: email.email).execute
|
||||
end
|
||||
|
||||
current_user.update_secondary_emails!
|
||||
|
|
|
@ -2,9 +2,9 @@ require 'spec_helper'
|
|||
|
||||
describe Emails::CreateService do
|
||||
let(:user) { create(:user) }
|
||||
let(:opts) { { email: 'new@email.com' } }
|
||||
let(:opts) { { email: 'new@email.com', user: user } }
|
||||
|
||||
subject(:service) { described_class.new(user, user, opts) }
|
||||
subject(:service) { described_class.new(user, opts) }
|
||||
|
||||
describe '#execute' do
|
||||
it 'creates an email with valid attributes' do
|
||||
|
|
|
@ -4,7 +4,7 @@ describe Emails::DestroyService do
|
|||
let!(:user) { create(:user) }
|
||||
let!(:email) { create(:email, user: user) }
|
||||
|
||||
subject(:service) { described_class.new(user, user, email: email.email) }
|
||||
subject(:service) { described_class.new(user, user: user, email: email.email) }
|
||||
|
||||
describe '#execute' do
|
||||
it 'removes an email' do
|
||||
|
|
Loading…
Reference in a new issue