Skip to content

Commit

Permalink
Merge pull request #31 from ManojKiranA/master
Browse files Browse the repository at this point in the history
View Components and Code Refactoring
  • Loading branch information
emchooo committed May 5, 2020
2 parents d5cc8b0 + ab918b0 commit 3d3d0b1
Show file tree
Hide file tree
Showing 28 changed files with 346 additions and 164 deletions.
56 changes: 56 additions & 0 deletions app/Campaign.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,62 @@ class Campaign extends Model
const DRAFT = 'draft';
const SENDING = 'sending';
const SENT = 'sent';
const FINISHED = 'finished';

/**
* Checks if Current Campaign status is as Specified.
*
* @param string $status
* @return bool
**/
public function isInStatus(string $status): bool
{
if ($this->status === $status) {
return true;
}

return false;
}

/**
* Checks if Current Campaign status is Draft.
*
* @return bool
**/
public function isDraft()
{
return $this->isInStatus($this::DRAFT);
}

/**
* Checks if Current Campaign status is Not Draft.
*
* @return bool
**/
public function isNotDraft()
{
return ! $this->isDraft();
}

/**
* Checks if Current Campaign status is Finished.
*
* @return bool
**/
public function isFinished()
{
return $this->isInStatus($this::FINISHED);
}

/**
* Checks if Current Campaign status is Not FINISHED.
*
* @return bool
**/
public function isNotFinished()
{
return ! $this->isFinished();
}

/**
* The "booting" method of the model.
Expand Down
29 changes: 14 additions & 15 deletions app/Http/Controllers/CampaignController.php
Original file line number Diff line number Diff line change
Expand Up @@ -90,9 +90,10 @@ public function store(CampaignStoreRequest $request)
*/
public function show(Campaign $campaign)
{
$lists = Lists::pluck('name', 'id');
$lists = DB::table((new Lists)->getTable())
->pluck('name', 'id');

if ($campaign->status == 'finished') {
if ($campaign->isFinished()) {
return redirect()->to(route('campaigns.report', $campaign->id));
}

Expand All @@ -107,8 +108,7 @@ public function show(Campaign $campaign)
*/
public function edit(Campaign $campaign)
{
// @todo refactor this
if ($campaign->status != 'draft') {
if ($campaign->isNotDraft()) {
return back();
}

Expand All @@ -124,18 +124,17 @@ public function edit(Campaign $campaign)
*/
public function update(CampaignStoreRequest $request, Campaign $campaign)
{
// @todo refactor this
if ($campaign->status != 'draft') {
if ($campaign->isNotDraft()) {
return back();
}
// @todo add validation
$campaign->subject = $request->subject;
$campaign->sending_name = $request->sending_name;
$campaign->sending_email = $request->sending_email;
$campaign->content = $request->content;
$campaign->track_clicks = $request->track_clicks ? 1 : 0;
$campaign->track_opens = $request->track_opens ? 1 : 0;
$campaign->save();

$updationArray = array_merge($request->only(['subject', 'sending_name', 'sending_email', 'content']),
[
'track_clicks' => $request->track_clicks ? 1 : 0,
'track_opens' => $request->track_opens ? 1 : 0,
]);

$campaign->update($updationArray);

return redirect()->route('campaigns.show', $campaign->id);
}
Expand Down Expand Up @@ -168,7 +167,7 @@ public function sendTestMail(SendTestMailRequest $request, Campaign $campaign)

public function send(SendCampaignRequest $request, Campaign $campaign)
{
if ($campaign->status != 'draft') {
if ($campaign->isNotDraft()) {
return back()->with(['error' => 'Campaign must be in draft mode.']);
}

Expand Down
27 changes: 13 additions & 14 deletions app/Http/Controllers/ListsController.php
Original file line number Diff line number Diff line change
Expand Up @@ -49,13 +49,11 @@ public function create()
*/
public function store(ListStoreRequest $request)
{
$double_opt_in = $request->double_opt_in ? $request->double_opt_in : 0;
$list = Lists::create([
'name' => $request->name,
'double_opt_in' => $double_opt_in,
'from_name' => $request->from_name,
'from_email' => $request->from_email,
]);
if (! $request->exists('double_opt_in')) {
$request->request->add(['double_opt_in' => 0]);
}

$list = Lists::create($request->except(['__token']));

return redirect()->route('lists.show', $list->id);
}
Expand All @@ -68,7 +66,10 @@ public function store(ListStoreRequest $request)
*/
public function show(Request $request, Lists $lists)
{
$contacts = Contact::where('list_id', $lists->id)->where('subscribed', ! $request->subscribed)->orderBy('id', 'desc')->paginate(10);
$contacts = Contact::where('list_id', '=', $lists->id)
->where('subscribed', ! $request->subscribed)
->orderBy('id', 'desc')
->paginate(10);

return view('lists.show', ['list' => $lists, 'contacts' => $contacts, 'subscribed' => $request->subscribed]);
}
Expand All @@ -93,13 +94,11 @@ public function edit(Lists $lists)
*/
public function update(ListUpdateRequest $request, Lists $lists)
{
$double_opt_in = $request->double_opt_in ? $request->double_opt_in : 0;
if (! $request->exists('double_opt_in')) {
$request->request->add(['double_opt_in' => 0]);
}

$lists->double_opt_in = $double_opt_in;
$lists->name = $request->name;
$lists->from_name = $request->from_name;
$lists->from_email = $request->from_email;
$lists->save();
$lists->update($request->except(['__token']));

return redirect(route('lists.show', $lists->id));
}
Expand Down
8 changes: 5 additions & 3 deletions app/Http/Requests/CampaignStoreRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,10 @@ public function authorize()
public function rules()
{
return [
'subject' => 'required',
'sending_name' => 'required',
'sending_email' => 'required|email',
'subject' => ['required'],
'sending_name' => ['required'],
'sending_email' => ['required', 'email'],
'content' => ['required'],
];
}

Expand Down Expand Up @@ -55,6 +56,7 @@ public function attributes()
'subject' => 'Subject',
'sending_name' => 'Sending Name',
'sending_email' => 'Sending Email',
'content' => 'Content',
];
}
}
2 changes: 1 addition & 1 deletion app/Http/Requests/FieldStoreRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public function authorize()
public function rules()
{
return [
'name' => 'required',
'name' => ['required'],
];
}

Expand Down
2 changes: 1 addition & 1 deletion app/Http/Requests/ImportSaveRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public function authorize()
public function rules()
{
return [
'file' => 'required|mimes:csv,txt',
'file' => ['required', 'mimes:csv,txt'],
];
}
}
4 changes: 2 additions & 2 deletions app/Http/Requests/ListStoreRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ public function authorize()
public function rules()
{
return [
'name' => 'required',
'from_email' => 'email',
'name' => ['required'],
'from_email' => ['email'],
];
}

Expand Down
4 changes: 2 additions & 2 deletions app/Http/Requests/ListUpdateRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ public function authorize()
public function rules()
{
return [
'name' => 'required',
'from_email' => 'email',
'name' => ['required'],
'from_email' => ['email'],
];
}
}
2 changes: 1 addition & 1 deletion app/Http/Requests/SendCampaignRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public function authorize()
public function rules()
{
return [
'lists' => 'required',
'lists' => ['required'],
];
}
}
2 changes: 1 addition & 1 deletion app/Http/Requests/SendTestMailRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public function authorize()
public function rules()
{
return [
'email' => 'email|required',
'email' => ['email', 'required'],
];
}
}
4 changes: 2 additions & 2 deletions app/Http/Requests/SettingsUpdateRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ public function authorize()
public function rules()
{
return [
'name' => 'required',
'email' => 'required|email',
'name' => ['required'],
'email' => ['required', 'email'],
];
}
}
12 changes: 6 additions & 6 deletions app/Http/Requests/SmtpSettings.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@ public function authorize()
public function rules()
{
return [
'host' => 'required',
'port' => 'required|integer',
'username' => 'required',
'password' => 'required',
'name' => 'required',
'address' => 'required|email',
'host' => ['required'],
'port' => ['required', 'integer'],
'username' => ['required'],
'password' => ['required'],
'name' => ['required'],
'address' => ['required', 'email'],
];
}
}
4 changes: 2 additions & 2 deletions app/Http/Requests/TemplateStoreRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ public function authorize()
public function rules()
{
return [
'name' => 'required',
'content' => 'required',
'name' => ['required'],
'content' => ['required'],
];
}
}
3 changes: 3 additions & 0 deletions app/Providers/AppServiceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

namespace App\Providers;

use App\View\Components\CheckErrorExistsComponent;
use Illuminate\Support\Facades\Blade;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\ServiceProvider;
use Laravel\Dusk\DuskServiceProvider;
Expand All @@ -28,5 +30,6 @@ public function register()
public function boot()
{
Schema::defaultStringLength(191);
Blade::component('errorExists', CheckErrorExistsComponent::class);
}
}
31 changes: 31 additions & 0 deletions app/View/Components/CheckErrorExistsComponent.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<?php

namespace App\View\Components;

use Illuminate\View\Component;

class CheckErrorExistsComponent extends Component
{
/** @var string */
public $controlName;

/**
* Create a new component instance.
*
* @return void
*/
public function __construct($controlName)
{
$this->controlName = $controlName;
}

/**
* Get the view / contents that represent the component.
*
* @return \Illuminate\View\View|string
*/
public function render()
{
return view('components.check-error-exists-component');
}
}
31 changes: 31 additions & 0 deletions app/View/Components/ErrorAlertComponent.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<?php

namespace App\View\Components;

use Illuminate\View\Component;

class ErrorAlertComponent extends Component
{
/** @var string */
public $errorMessage;

/**
* Create a new component instance.
*
* @return void
*/
public function __construct($errorMessage)
{
$this->errorMessage = $errorMessage;
}

/**
* Get the view / contents that represent the component.
*
* @return \Illuminate\View\View|string
*/
public function render()
{
return view('components.error-alert-component');
}
}
3 changes: 2 additions & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@
"fruitcake/laravel-cors": "^1.0",
"laravel/framework": "^7.0",
"laravel/tinker": "^2.0",
"laravel/ui": "^2.0"
"laravel/ui": "^2.0",
"laravelcollective/html": "^6.1"
},
"require-dev": {
"beyondcode/laravel-dump-server": "^1.4",
Expand Down
Loading

0 comments on commit 3d3d0b1

Please sign in to comment.