HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux aritmodecarnaval.es 5.15.0-79-generic #86-Ubuntu SMP Mon Jul 10 16:07:21 UTC 2023 x86_64
User: www-data (33)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /home/www/torresncgolf/wp-content/plugins/ninja-forms/includes/Contracts/SubmissionDataSource.php
<?php

namespace NinjaForms\Includes\Contracts;

use NinjaForms\Includes\Entities\SingleSubmission;
use NinjaForms\Includes\Entities\SubmissionFilter;

/**
 * Contract to retrieve a collection of single submissions from a data source
 *
 * Note that the collection has two parts - the submission meta and the
 * submission values.  
 *
 * The meta describes details about the submission such as timestamp, NF form
 * id, data storage location, and a record id.
 *
 * The values portion is a collection of submission values associated with a
 * given submission.
 *
 * The two are retrieved separately.  This enables fast filtering of submissions
 * to generate a collection of submission records; then, after initial
 * filtering, the submission values for just the intended records can be
 * retrieved.
 */
interface SubmissionDataSource
{

    /**
     * Retrieve a collection of submissions meta given filtering args
     *
     * @param array $args
     * @return SingleSubmission[]
     */
    public function retrieveSubmissionMeta(SubmissionFilter $submissionFilter): array;

    /**
     * Populate with submission values a single submission in a collection
     *
     * Submission collection may initially only contain submission meta to save
     * time/memory.  When called, this method retrieves the complete submission
     * values for the provided SingleSubmision
     *
     * @param SingleSubmission $singleSubmission
     * @return SingleSubmission
     */
    public function retrieveSubmissionValues(SingleSubmission $singleSubmission): SingleSubmission;

    /**
     * Retrieve a single submission with values 
     *
     * Absent a previously filtered collection of single submissions within the
     * aggregate, request a single submission, fully populate it, and return.
     *
     * @param SingleSubmission $singleSubmission
     * @return SingleSubmission
     */
    public function retrieveSingleSubmission(SingleSubmission $singleSubmission): SingleSubmission;


    /**
     * Delete a submission from the data source
     *
     * @param SingleSubmission $singleSubmission
     * @return SubmissionDataSource
     */
    public function deleteSubmission(SingleSubmission $singleSubmission): SubmissionDataSource;

    /**
     * Restore a submission from the data source
     *
     * @param SingleSubmission $singleSubmission
     * @return SubmissionDataSource
     */
    public function restoreSubmission(SingleSubmission $singleSubmission): SubmissionDataSource;

    /**
     * Update a submission from the data source
     *
     * @param SingleSubmission $singleSubmission
     * @return SubmissionDataSource
     */
    public function updateSubmission(SingleSubmission $singleSubmission): SubmissionDataSource;

    /**
     * Return the dataSource id
     *
     * Identifies the implementing class, enabling retrieval of submission
     * specifics by calling the implementing class
     * 
     * @return string 
     */
    public function getDataSource( ): string;
}