Search in sources :

Example 1 with ItemSummary

use of org.atlasapi.content.v2.model.udt.ItemSummary in project atlas-deer by atlasapi.

the class CqlContentStore method addItemRefsToContainers.

private List<Statement> addItemRefsToContainers(ImmutableList.Builder<ResourceUpdatedMessage> messages, Item item, ContainerRef containerRef, SeriesRef seriesRef) {
    List<Statement> result = Lists.newArrayList();
    ItemRef ref = item.toRef();
    ItemSummary summary = item.toSummary();
    PartialItemRef itemRef = itemRefTranslator.serialize(ref);
    Ref itemRefKey = refTranslator.serialize(ref);
    org.atlasapi.content.v2.model.udt.ItemSummary itemSummary = itemSummaryTranslator.serialize(summary);
    ImmutableMap<ItemRef, Iterable<BroadcastRef>> upcoming = ImmutableMap.of(item.toRef(), item.getUpcomingBroadcastRefs());
    Map<Ref, ItemRefAndBroadcastRefs> upcomingSerialised = MapStream.of(upcoming).mapEntries(refTranslator::serialize, vals -> new ItemRefAndBroadcastRefs(itemRef, StreamSupport.stream(vals.spliterator(), false).map(broadcastRefTranslator::serialize).collect(Collectors.toList()))).collect();
    ImmutableMap<ItemRef, Iterable<LocationSummary>> availableLocations = ImmutableMap.of(item.toRef(), item.getAvailableLocations());
    Map<Ref, ItemRefAndLocationSummaries> availableLocationsSerialised = MapStream.of(availableLocations).mapEntries(refTranslator::serialize, vals -> new ItemRefAndLocationSummaries(itemRef, StreamSupport.stream(vals.spliterator(), false).map(locationSummaryTranslator::serialize).collect(Collectors.toList()))).collect();
    if (containerRef != null) {
        result.add(accessor.addItemRefsToContainer(containerRef.getId().longValue(), ImmutableMap.of(itemRefKey, itemRef), upcomingSerialised, availableLocationsSerialised));
        if (seriesRef == null) {
            result.add(accessor.addItemSummariesToContainer(containerRef.getId().longValue(), ImmutableMap.of(itemRefKey, new ItemRefAndItemSummary(itemRef, itemSummary))));
        }
        messages.add(new ResourceUpdatedMessage(UUID.randomUUID().toString(), Timestamp.now(), containerRef));
    }
    if (seriesRef != null) {
        result.add(accessor.addItemRefsToContainer(seriesRef.getId().longValue(), ImmutableMap.of(itemRefKey, itemRef), upcomingSerialised, availableLocationsSerialised));
        result.add(accessor.addItemSummariesToContainer(seriesRef.getId().longValue(), ImmutableMap.of(itemRefKey, new ItemRefAndItemSummary(itemRef, itemSummary))));
        messages.add(new ResourceUpdatedMessage(UUID.randomUUID().toString(), Timestamp.now(), seriesRef));
    }
    return result;
}
Also used : org.atlasapi.content(org.atlasapi.content) Broadcast(org.atlasapi.content.Broadcast) MissingResourceException(org.atlasapi.entity.util.MissingResourceException) LoggerFactory(org.slf4j.LoggerFactory) Resolved(org.atlasapi.entity.util.Resolved) MappingManager(com.datastax.driver.mapping.MappingManager) ConsistencyLevel(com.datastax.driver.core.ConsistencyLevel) Optional(com.google.common.base.Optional) Session(com.datastax.driver.core.Session) ContainerRef(org.atlasapi.content.ContainerRef) com.google.common.collect(com.google.common.collect) IdGenerator(com.metabroadcast.common.ids.IdGenerator) BatchStatement(com.datastax.driver.core.BatchStatement) Longs(com.google.common.primitives.Longs) Function(com.google.common.base.Function) OptionalMap(com.metabroadcast.common.collect.OptionalMap) Collectors(java.util.stream.Collectors) Promise(com.metabroadcast.promise.Promise) MoreCollectors(com.metabroadcast.common.stream.MoreCollectors) Statement(com.datastax.driver.core.Statement) ContainerSummary(org.atlasapi.content.ContainerSummary) java.util(java.util) ListenableFuture(com.google.common.util.concurrent.ListenableFuture) Clock(com.metabroadcast.common.time.Clock) Description(org.atlasapi.content.v2.model.udt.Description) ImmutableOptionalMap(com.metabroadcast.common.collect.ImmutableOptionalMap) Timestamp(com.metabroadcast.common.time.Timestamp) LocationSummary(org.atlasapi.content.LocationSummary) EquivalenceGraph(org.atlasapi.equivalence.EquivalenceGraph) MapStream(com.codepoetics.protonpack.maps.MapStream) StreamSupport(java.util.stream.StreamSupport) BroadcastRef(org.atlasapi.content.BroadcastRef) SeriesRef(org.atlasapi.content.SeriesRef) org.atlasapi.content.v2.model.udt(org.atlasapi.content.v2.model.udt) WriteResult(org.atlasapi.entity.util.WriteResult) org.atlasapi.content.v2.serialization(org.atlasapi.content.v2.serialization) Nullable(javax.annotation.Nullable) MetricRegistry(com.codahale.metrics.MetricRegistry) Logger(org.slf4j.Logger) DateTime(org.joda.time.DateTime) Preconditions.checkNotNull(com.google.common.base.Preconditions.checkNotNull) Throwables(com.google.common.base.Throwables) Id(org.atlasapi.entity.Id) ResourceUpdatedMessage(org.atlasapi.messaging.ResourceUpdatedMessage) ItemSummary(org.atlasapi.content.ItemSummary) ExecutionException(java.util.concurrent.ExecutionException) Futures(com.google.common.util.concurrent.Futures) EquivalenceGraphStore(org.atlasapi.equivalence.EquivalenceGraphStore) Mapper(com.datastax.driver.mapping.Mapper) MessageSender(com.metabroadcast.common.queue.MessageSender) Instant(org.joda.time.Instant) WriteException(org.atlasapi.entity.util.WriteException) org.atlasapi.content.v2.model.udt(org.atlasapi.content.v2.model.udt) BatchStatement(com.datastax.driver.core.BatchStatement) Statement(com.datastax.driver.core.Statement) ResourceUpdatedMessage(org.atlasapi.messaging.ResourceUpdatedMessage) ItemSummary(org.atlasapi.content.ItemSummary) ContainerRef(org.atlasapi.content.ContainerRef) BroadcastRef(org.atlasapi.content.BroadcastRef) SeriesRef(org.atlasapi.content.SeriesRef)

Example 2 with ItemSummary

use of org.atlasapi.content.v2.model.udt.ItemSummary in project atlas-deer by atlasapi.

the class ContainerSetter method deserialize.

public void deserialize(org.atlasapi.content.Content content, org.atlasapi.content.v2.model.Content internal) {
    Container container = (Container) content;
    Map<Ref, PartialItemRef> itemRefs = internal.getItemRefs();
    if (itemRefs != null) {
        container.setItemRefs(itemRefs.entrySet().stream().map(entry -> itemRef.deserialize(entry.getKey(), entry.getValue())).collect(Collectors.toList()));
    }
    Map<Ref, ItemRefAndBroadcastRefs> internalUpcomingContent = internal.getUpcomingContent();
    if (internalUpcomingContent != null) {
        Map<org.atlasapi.content.ItemRef, Iterable<org.atlasapi.content.BroadcastRef>> upcomingContent = internalUpcomingContent.entrySet().stream().collect(MoreCollectors.toImmutableMap(entry -> {
            Ref ref = entry.getKey();
            ItemRefAndBroadcastRefs broadcasts = entry.getValue();
            return itemRef.deserialize(ref, broadcasts.getItemRef());
        }, entry -> entry.getValue().getBroadcastRefs().stream().map(broadcastRef::deserialize).collect(MoreCollectors.toImmutableList())));
        container.setUpcomingContent(upcomingContent);
    }
    Map<Ref, ItemRefAndLocationSummaries> internalAvailableContent = internal.getAvailableContent();
    if (internalAvailableContent != null) {
        Map<org.atlasapi.content.ItemRef, Iterable<org.atlasapi.content.LocationSummary>> availableContent = internalAvailableContent.entrySet().stream().collect(MoreCollectors.toImmutableMap(entry -> {
            Ref ref = entry.getKey();
            ItemRefAndLocationSummaries locations = entry.getValue();
            return itemRef.deserialize(ref, locations.getItemRef());
        }, entry -> entry.getValue().getLocationSummaries().stream().map(locationSummary::deserialize).collect(MoreCollectors.toImmutableList())));
        container.setAvailableContent(availableContent);
    }
    Map<Ref, ItemRefAndItemSummary> itemSummaries = internal.getItemSummaries();
    if (itemSummaries != null) {
        container.setItemSummaries(itemSummaries.entrySet().stream().map(entry -> {
            Ref ref = entry.getKey();
            ItemRefAndItemSummary summaryWithRef = entry.getValue();
            ItemSummary summary = summaryWithRef.getSummary();
            return itemSummary.deserialize(ref, summaryWithRef.getItemRef(), summary);
        }).collect(MoreCollectors.toImmutableList()));
    }
}
Also used : ItemRefAndBroadcastRefs(org.atlasapi.content.v2.model.udt.ItemRefAndBroadcastRefs) ItemRefAndLocationSummaries(org.atlasapi.content.v2.model.udt.ItemRefAndLocationSummaries) ItemRefAndItemSummary(org.atlasapi.content.v2.model.udt.ItemRefAndItemSummary) PartialItemRef(org.atlasapi.content.v2.model.udt.PartialItemRef) Container(org.atlasapi.content.Container) ItemRefSerialization(org.atlasapi.content.v2.serialization.ItemRefSerialization) Collectors(java.util.stream.Collectors) List(java.util.List) ImmutableList(com.google.common.collect.ImmutableList) Content(org.atlasapi.content.v2.model.Content) ItemSummary(org.atlasapi.content.v2.model.udt.ItemSummary) LocationSummarySerialization(org.atlasapi.content.v2.serialization.LocationSummarySerialization) RefSerialization(org.atlasapi.content.v2.serialization.RefSerialization) Map(java.util.Map) MoreCollectors(com.metabroadcast.common.stream.MoreCollectors) StreamSupport(java.util.stream.StreamSupport) ItemSummarySerialization(org.atlasapi.content.v2.serialization.ItemSummarySerialization) Ref(org.atlasapi.content.v2.model.udt.Ref) BroadcastRefSerialization(org.atlasapi.content.v2.serialization.BroadcastRefSerialization) PartialItemRef(org.atlasapi.content.v2.model.udt.PartialItemRef) ItemRefAndItemSummary(org.atlasapi.content.v2.model.udt.ItemRefAndItemSummary) ItemSummary(org.atlasapi.content.v2.model.udt.ItemSummary) Container(org.atlasapi.content.Container) PartialItemRef(org.atlasapi.content.v2.model.udt.PartialItemRef) Ref(org.atlasapi.content.v2.model.udt.Ref) ItemRefAndItemSummary(org.atlasapi.content.v2.model.udt.ItemRefAndItemSummary) ItemRefAndLocationSummaries(org.atlasapi.content.v2.model.udt.ItemRefAndLocationSummaries) PartialItemRef(org.atlasapi.content.v2.model.udt.PartialItemRef) ItemRefAndBroadcastRefs(org.atlasapi.content.v2.model.udt.ItemRefAndBroadcastRefs)

Example 3 with ItemSummary

use of org.atlasapi.content.v2.model.udt.ItemSummary in project atlas-deer by atlasapi.

the class ItemSummarySerialization method serialize.

public ItemSummary serialize(org.atlasapi.content.ItemSummary itemSummary) {
    ItemSummary internal = new ItemSummary();
    internal.setType("item");
    internal.setTitle(itemSummary.getTitle());
    Optional<String> description = itemSummary.getDescription();
    if (description.isPresent()) {
        internal.setDescription(description.get());
    }
    Optional<String> image = itemSummary.getImage();
    if (image.isPresent()) {
        internal.setImage(image.get());
    }
    Optional<Integer> releaseYear = itemSummary.getReleaseYear();
    if (releaseYear.isPresent()) {
        internal.setReleaseYear(releaseYear.get());
    }
    Optional<ImmutableSet<Certificate>> certificates = itemSummary.getCertificates();
    if (certificates.isPresent()) {
        internal.setCertificate(certificates.get().stream().map(certificate::serialize).filter(Objects::nonNull).collect(Collectors.toSet()));
    }
    if (itemSummary instanceof EpisodeSummary) {
        internal.setType("episode");
        internal.setEpisodeNumber(((EpisodeSummary) itemSummary).getEpisodeNumber().orElse(null));
    }
    return internal;
}
Also used : ImmutableSet(com.google.common.collect.ImmutableSet) EpisodeSummary(org.atlasapi.content.EpisodeSummary) Objects(java.util.Objects) ItemSummary(org.atlasapi.content.v2.model.udt.ItemSummary)

Aggregations

MoreCollectors (com.metabroadcast.common.stream.MoreCollectors)2 Collectors (java.util.stream.Collectors)2 StreamSupport (java.util.stream.StreamSupport)2 ItemSummary (org.atlasapi.content.v2.model.udt.ItemSummary)2 MetricRegistry (com.codahale.metrics.MetricRegistry)1 MapStream (com.codepoetics.protonpack.maps.MapStream)1 BatchStatement (com.datastax.driver.core.BatchStatement)1 ConsistencyLevel (com.datastax.driver.core.ConsistencyLevel)1 Session (com.datastax.driver.core.Session)1 Statement (com.datastax.driver.core.Statement)1 Mapper (com.datastax.driver.mapping.Mapper)1 MappingManager (com.datastax.driver.mapping.MappingManager)1 Function (com.google.common.base.Function)1 Optional (com.google.common.base.Optional)1 Preconditions.checkNotNull (com.google.common.base.Preconditions.checkNotNull)1 Throwables (com.google.common.base.Throwables)1 com.google.common.collect (com.google.common.collect)1 ImmutableList (com.google.common.collect.ImmutableList)1 ImmutableSet (com.google.common.collect.ImmutableSet)1 Longs (com.google.common.primitives.Longs)1