All Downloads are FREE. Search and download functionalities are using the official Maven repository.

nl.vpro.io.mediaconnect.MediaConnectContentImpl Maven / Gradle / Ivy

package nl.vpro.io.mediaconnect;

import java.time.LocalDateTime;
import java.util.UUID;

import javax.annotation.Nonnull;

import com.google.api.client.http.GenericUrl;

import nl.vpro.io.mediaconnect.domain.MCContent;
import nl.vpro.io.mediaconnect.domain.MCItems;

import static nl.vpro.io.mediaconnect.Fields.CDN_FILES;
import static nl.vpro.io.mediaconnect.Fields.SOURCEFILE_FIELD;

/**
 * @author Michiel Meeuwissen
 * @since 0.1
 */
public class MediaConnectContentImpl implements MediaConnectContent {

    public static Fields PUBLICATION_FIELDS = Fields.builder()
        .fs("container", "tags", "custom")
        //.field(ASSETS)
        .field(Field.builder("element")
            .f("custom")
            .field(
                Field.builder("media")
                    .field(SOURCEFILE_FIELD)
                    .field(CDN_FILES)
                    .fs("custom")
                    .build()
            )
            .build()
        )
    .build();

    private  final MediaConnectRepositoryClient impl;

    public MediaConnectContentImpl(MediaConnectRepositoryClient impl) {
        this.impl = impl;
    }

    @Override
    public MCItems getPublicationsForChannel(
        Paging paging, @Nonnull UUID channel, LocalDateTime event_from, LocalDateTime event_until) {
        GenericUrl url = impl.createUrl("publications");
        impl.addListParameters(url, paging);
        url.set("channel_id", channel);
        //url.set("label", "Post");
        if (event_from != null) {
            url.set("event_from", event_from);
        }
        if (event_until != null) {
            url.set("event_until", event_until);
        }
        return impl.get(url, MCItems.class);
    }



    @Override
    public   T getPublication(
        @Nonnull  UUID id) {
        GenericUrl url = impl.createUrl("publications", id.toString());
        //url.set("label", "Post");
        url.set("status", "published");
        url.set("fields", PUBLICATION_FIELDS);
        return (T) impl.get(url, MCContent.class);
    }




    @Override
    public MCItems getChannels(Paging paging) {
        GenericUrl url = impl.createUrl("channels");
        impl.addListParameters(url, paging);
        return impl.get(url, MCItems.class);


    }

    @Override
    public MCItems getContainers(Paging paging) {
        GenericUrl url = impl.createUrl("containers");
        impl.addListParameters(url, paging);
        url.set("fields", PUBLICATION_FIELDS);

        return impl.get(url, MCItems.class);
    }

    @Override
    public  T getContainer(UUID id) {
        GenericUrl url = impl.createUrl("containers", id.toString());
        //url.set("label", "Post");
        url.set("status", "published");
        url.set("fields", PUBLICATION_FIELDS);
        return (T) impl.get(url, MCContent.class);
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy