Replaced Moment with Carbon #84

Merged
Ghost merged 148 commits from develop into beta 2022-09-22 05:53:36 +02:00
8 changed files with 41 additions and 16 deletions
Showing only changes of commit 8c375e6ba1 - Show all commits

View file

@ -4,11 +4,11 @@ namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use App\Services\SettingsService; use App\Services\Data\SettingsService;
use App\Services\RenderService; use App\Services\Assets\RenderService;
use App\Services\MaintenanceService; use App\Services\Upkeep\MaintenanceService;
use App\Interfaces\MemberRepositoryInterface; use App\Interfaces\MemberRepositoryInterface;
use App\Services\AssetService; use App\Services\Assets\AssetService;
class SettingsAPIController extends Controller class SettingsAPIController extends Controller
{ {
@ -41,7 +41,10 @@ class SettingsAPIController extends Controller
public function sync(Request $request) public function sync(Request $request)
{ {
$body = json_decode($request->getContent()); $body = json_decode($request->getContent());
//update member if needed
$this->member->update($body->member);
//sync settings
$result = $this->settings->sync($body); $result = $this->settings->sync($body);
return response()->json($result)->header('Content-Type', 'application/json'); return response()->json($result)->header('Content-Type', 'application/json');
} }

View file

@ -14,7 +14,7 @@ interface MemberRepositoryInterface
public function create($member); public function create($member);
public function update($id); public function update($member);
public function auth($request); public function auth($request);

View file

@ -20,8 +20,8 @@ use App\Services\Data\PaginateService;
use App\Services\Data\ThemeService; use App\Services\Data\ThemeService;
use App\Services\Data\SortingService; use App\Services\Data\SortingService;
//Upkeep Services //Upkeep Services
use App\Services\UpKeep\MaintenanceService; use App\Services\Upkeep\MaintenanceService;
use App\Services\UpKeep\InitService; use App\Services\Upkeep\InitService;
class FipamoServiceProvider extends ServiceProvider class FipamoServiceProvider extends ServiceProvider
{ {

View file

@ -2,17 +2,22 @@
namespace App\Repositories; namespace App\Repositories;
use App\Services\Assets\DocService;
use App\Interfaces\MemberRepositoryInterface; use App\Interfaces\MemberRepositoryInterface;
use ReallySimpleJWT\Token; use ReallySimpleJWT\Token;
use Carbon\Carbon;
use function _\find; use function _\find;
use function _\findIndex;
class MemberRepository implements MemberRepositoryInterface class MemberRepository implements MemberRepositoryInterface
{ {
protected $folks; protected $folks;
protected $docs;
public function __construct() public function __construct(DocService $docService)
{ {
$this->docs = $docService;
if (file_exists(env('FOLKS_PATH'))) { if (file_exists(env('FOLKS_PATH'))) {
$this->folks = json_decode(file_get_contents(env('FOLKS_PATH')), true); $this->folks = json_decode(file_get_contents(env('FOLKS_PATH')), true);
} else { } else {
@ -47,9 +52,17 @@ class MemberRepository implements MemberRepositoryInterface
//make new member //make new member
} }
public function update($id) public function update($member)
{ {
//update member data //TODO: need to add member avatar updating
$index = findIndex($this->folks, ['id' => $member->id]);
$this->folks[$index]['handle'] = $member->handle;
$this->folks[$index]['email'] = $member->email;
$this->folks[$index]['updated'] = Carbon::now();
//save new folks file
$this->docs::writeSettings($this->folks, env('FOLKS_PATH'));
//update session
session()->put('member', $this->folks[$index]);
} }
public function auth($request) public function auth($request)
@ -60,6 +73,7 @@ class MemberRepository implements MemberRepositoryInterface
if ($found) { if ($found) {
if (password_verify($request->password, $found['password'])) { if (password_verify($request->password, $found['password'])) {
$member = [ $member = [
'id' => $found['id'],
'handle' => $found['handle'], 'handle' => $found['handle'],
'email' => $found['email'], 'email' => $found['email'],
'role' => $found['role'], 'role' => $found['role'],

View file

@ -21,6 +21,8 @@ class SettingsService
} else { } else {
$this->tags = []; $this->tags = [];
} }
$this->docs = $docService;
} }
protected function loadSettings() protected function loadSettings()
@ -110,7 +112,6 @@ class SettingsService
public function sync($data) public function sync($data)
{ {
//dd($data->global->renderOnSave);
$settings = $this->getSettings(); $settings = $this->getSettings();
$settings['global']['base_url'] = $data->global->base_url; $settings['global']['base_url'] = $data->global->base_url;
$settings['global']['title'] = $data->global->title; $settings['global']['title'] = $data->global->title;
@ -129,7 +130,7 @@ class SettingsService
$settings['email']['smtp'] = $data->email->smtp; $settings['email']['smtp'] = $data->email->smtp;
$settings['email']['mailgun'] = $data->email->mailgun; $settings['email']['mailgun'] = $data->email->mailgun;
return $this->docs->writeSettings($settings); return $this->docs::writeSettings($settings);
} }
public function navSync($data) public function navSync($data)

View file

@ -1,7 +1,8 @@
<?php <?php
namespace App\Services; namespace App\Services\Upkeep;
use App\Services\Data\SettingsService;
use Carbon\Carbon; use Carbon\Carbon;
class MaintenanceService class MaintenanceService

View file

@ -12,6 +12,7 @@ export default class SettingsActions {
let url = document.getElementById('settings-url').value; let url = document.getElementById('settings-url').value;
let title = document.getElementById('settings-title').value; let title = document.getElementById('settings-title').value;
let desc = document.getElementById('settings-desc').value; let desc = document.getElementById('settings-desc').value;
let memberID = document.getElementById('member-id').value;
//let privacy = document.getElementById('privacy-toggle').getAttribute('data-private'); //let privacy = document.getElementById('privacy-toggle').getAttribute('data-private');
let render = document.getElementById('render-toggle').getAttribute('data-render'); let render = document.getElementById('render-toggle').getAttribute('data-render');
let background = document let background = document
@ -55,7 +56,11 @@ export default class SettingsActions {
externalAPI: apiStatus, externalAPI: apiStatus,
dynamicRender: dynamicRenderStatus dynamicRender: dynamicRenderStatus
}, },
member: { handle: handle, email: email }, member: {
handle: handle,
email: email,
id: memberID
},
email: { email: {
active: mailActive, active: mailActive,
smtp: { smtp: {

View file

@ -6,7 +6,7 @@
<article class="settings"> <article class="settings">
<section class="member-settings"> <section class="member-settings">
<div class="member-avatar"> <div class="member-avatar">
<div class="avatar" style="background: url({{ $member['avatar'] }} ) no-repeat center center / cover"></div> <div class="avatar" style="background: url({{ $member['avi'] }} ) no-repeat center center / cover"></div>
<input id="avatar-upload" type="file" name="avatar-upload"/> <input id="avatar-upload" type="file" name="avatar-upload"/>
</div> </div>
<div class="site-background"> <div class="site-background">
@ -16,6 +16,7 @@
<div> <div>
<input type='text' name='handle' id='settings-handle' placeholder='handle' value="{{ $member['handle'] }}" autofocus/> <input type='text' name='handle' id='settings-handle' placeholder='handle' value="{{ $member['handle'] }}" autofocus/>
<input type='text' name='email' id='settings-email' placeholder='email' value="{{ $member['email'] }}" autofocus/> <input type='text' name='email' id='settings-email' placeholder='email' value="{{ $member['email'] }}" autofocus/>
<input type='hidden' name='member-id' id='member-id' value="{{ $member['id'] }}"/>
<input type='text' name='base-url' id='settings-url' placeholder='url' value="{{ $baseUrl }}" autofocus/> <input type='text' name='base-url' id='settings-url' placeholder='url' value="{{ $baseUrl }}" autofocus/>
<input type='text' name='base-title' id='settings-title' placeholder='site title' value="{{ $siteTitle }}" autofocus/> <input type='text' name='base-title' id='settings-title' placeholder='site title' value="{{ $siteTitle }}" autofocus/>
<textarea id="settings-desc" type='text' name='settings_desc' class='settings-dec' placeholder='description stuff' , autofocus>{{ $desc }}</textarea> <textarea id="settings-desc" type='text' name='settings_desc' class='settings-dec' placeholder='description stuff' , autofocus>{{ $desc }}</textarea>