Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php namespace App\Services; use App\Models\QueueState; use App\Models\User; use App\Re..

Decoded Output download

<?php

namespace App\Services;

use App\Models\QueueState;
use App\Models\User;
use App\Repositories\SongRepository;
use App\Values\QueueState as QueueStateDTO;

class QueueService
{
    public function __construct(private SongRepository $songRepository)
    {
    }

    public function getQueueState(User $user): QueueStateDTO
    {
        /** @var QueueState $state */
        $state = QueueState::query()->where('user_id', $user->id)->firstOrCreate([
            'user_id' => $user->id,
        ], [
            'song_ids' => [],
        ]);

        $currentSong = $state->current_song_id ? $this->songRepository->findOne($state->current_song_id, $user) : null;

        return QueueStateDTO::create(
            $this->songRepository->getMany(ids: $state->song_ids, inThatOrder: true, scopedUser: $user),
            $currentSong,
            $state->playback_position ?? 0
        );
    }

    public function updateQueueState(User $user, array $songIds): void
    {
        QueueState::query()->updateOrCreate([
            'user_id' => $user->id,
        ], [
            'song_ids' => $songIds,
        ]);
    }

    public function updatePlaybackStatus(User $user, string $songId, int $position): void
    {
        QueueState::query()->updateOrCreate([
            'user_id' => $user->id,
        ], [
            'current_song_id' => $songId,
            'playback_position' => $position,
        ]);
    }
}
 ?>

Did this file decode correctly?

Original Code

<?php

namespace App\Services;

use App\Models\QueueState;
use App\Models\User;
use App\Repositories\SongRepository;
use App\Values\QueueState as QueueStateDTO;

class QueueService
{
    public function __construct(private SongRepository $songRepository)
    {
    }

    public function getQueueState(User $user): QueueStateDTO
    {
        /** @var QueueState $state */
        $state = QueueState::query()->where('user_id', $user->id)->firstOrCreate([
            'user_id' => $user->id,
        ], [
            'song_ids' => [],
        ]);

        $currentSong = $state->current_song_id ? $this->songRepository->findOne($state->current_song_id, $user) : null;

        return QueueStateDTO::create(
            $this->songRepository->getMany(ids: $state->song_ids, inThatOrder: true, scopedUser: $user),
            $currentSong,
            $state->playback_position ?? 0
        );
    }

    public function updateQueueState(User $user, array $songIds): void
    {
        QueueState::query()->updateOrCreate([
            'user_id' => $user->id,
        ], [
            'song_ids' => $songIds,
        ]);
    }

    public function updatePlaybackStatus(User $user, string $songId, int $position): void
    {
        QueueState::query()->updateOrCreate([
            'user_id' => $user->id,
        ], [
            'current_song_id' => $songId,
            'playback_position' => $position,
        ]);
    }
}

Function Calls

None

Variables

None

Stats

MD5 3aafec0827b77d199619ee4cef12ece7
Eval Count 0
Decode Time 105 ms