. */ declare(strict_types=1); namespace FireflyIII\Transformers; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\Recurrence; use Illuminate\Support\Facades\Log; /** * Class RecurringTransactionTransformer */ class RecurrenceTransformer extends AbstractTransformer { /** * RecurrenceTransformer constructor. */ public function __construct() {} /** * Transform the recurring transaction. * * @throws FireflyException */ public function transform(Recurrence $recurrence): array { Log::debug('Now in Recurrence::transform()'); $shortType = (string)config(sprintf('firefly.transactionTypesToShort.%s', $recurrence->transactionType->type)); $reps = 0 === (int)$recurrence->repetitions ? null : (int)$recurrence->repetitions; Log::debug('Get basic data.'); // basic data. return [ 'id' => (string)$recurrence->id, 'created_at' => $recurrence->created_at->toAtomString(), 'updated_at' => $recurrence->updated_at->toAtomString(), 'type' => $shortType, 'title' => $recurrence->title, 'description' => $recurrence->description, 'first_date' => $recurrence->first_date->toAtomString(), 'latest_date' => $recurrence->latest_date?->toAtomString(), 'repeat_until' => $recurrence->repeat_until?->toAtomString(), 'apply_rules' => $recurrence->apply_rules, 'active' => $recurrence->active, 'nr_of_repetitions' => $reps, 'notes' => $recurrence->meta['notes'], 'repetitions' => $recurrence->meta['repetitions'], 'transactions' => $recurrence->meta['transactions'], 'links' => [ [ 'rel' => 'self', 'uri' => '/recurring/'.$recurrence->id, ], ], ]; } }