FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Modify reading sponsorship line items from DFP · devhttps/frontend@cd003d7 · GitHub

Commit cd003d7

Browse files
Modify reading sponsorship line items from DFP
This simplifies reading a little and makes it clearer what's going on The distinction between valid and invalid isn't important for sponsorships, and possibly isn't important for anything but that's another problem.
1 parent a366611 commit cd003d7

3 files changed

Lines changed: 28 additions & 16 deletions

File tree

‎admin/app/dfp/DfpApi.scala‎

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import org.joda.time.DateTime
99
case class DfpLineItems(validItems: Seq[GuLineItem], invalidItems: Seq[GuLineItem])
1010

1111
class DfpApi(dataMapper: DataMapper, dataValidation: DataValidation) extends Logging {
12-
import DfpApi._
12+
import dfp.DfpApi._
1313

1414
private def readLineItems(stmtBuilder: StatementBuilder): DfpLineItems = {
1515

@@ -63,6 +63,19 @@ class DfpApi(dataMapper: DataMapper, dataValidation: DataValidation) extends Log
6363
readLineItems(stmtBuilder)
6464
}
6565

66+
def readSponsorshipLineItemIds(): Seq[Long] = {
67+
68+
val stmtBuilder = new StatementBuilder()
69+
.where("(status = :readyStatus OR status = :deliveringStatus) AND lineItemType = :sponsorshipType")
70+
.withBindVariableValue("readyStatus", ComputedStatus.READY.toString)
71+
.withBindVariableValue("deliveringStatus", ComputedStatus.DELIVERING.toString)
72+
.withBindVariableValue("sponsorshipType", LineItemType.SPONSORSHIP.toString)
73+
.orderBy("id ASC")
74+
75+
val lineItems = readLineItems(stmtBuilder)
76+
(lineItems.validItems.map(_.id) ++ lineItems.invalidItems.map(_.id)).sorted
77+
}
78+
6679
def readActiveCreativeTemplates(): Seq[GuCreativeTemplate] = {
6780

6881
val stmtBuilder = new StatementBuilder()

‎admin/app/dfp/DfpDataCacheJob.scala‎

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,11 @@ class DfpDataCacheJob(adUnitAgent: AdUnitAgent,
2222
log.info("Refreshing data cache")
2323
val start = System.currentTimeMillis
2424
val data = loadLineItems()
25+
val sponsorshipLineItemIds = dfpApi.readSponsorshipLineItemIds()
2526
val duration = System.currentTimeMillis - start
2627
log.info(s"Loading DFP data took $duration ms")
2728
write(data)
29+
Store.putNonRefreshableLineItemIds(sponsorshipLineItemIds)
2830
}
2931

3032
/*
@@ -88,7 +90,7 @@ class DfpDataCacheJob(adUnitAgent: AdUnitAgent,
8890
val recentlyModified = lineItemsModifiedSince(threshold)
8991

9092
// Update existing items with a patch of new items.
91-
def updateCachedContent(existingItems: Seq[GuLineItem], newItems: Seq[GuLineItem], logging: Boolean = true): Seq[GuLineItem] = {
93+
def updateCachedContent(existingItems: Seq[GuLineItem], newItems: Seq[GuLineItem]): Seq[GuLineItem] = {
9294

9395
// Create a combined map of all the line items, preferring newer items over old ones (equality is based on id).
9496
val updatedLineItemMap = GuLineItem.asMap(existingItems) ++ GuLineItem.asMap(newItems)
@@ -120,7 +122,7 @@ class DfpDataCacheJob(adUnitAgent: AdUnitAgent,
120122

121123
LineItemLoadSummary(
122124
validLineItems = updateCachedContent(cachedLineItems.validItems, recentlyModified.validItems),
123-
invalidLineItems = updateCachedContent(cachedLineItems.invalidItems, recentlyModified.invalidItems, logging = false)
125+
invalidLineItems = updateCachedContent(cachedLineItems.invalidItems, recentlyModified.invalidItems)
124126
)
125127
}
126128
}
@@ -142,9 +144,6 @@ class DfpDataCacheJob(adUnitAgent: AdUnitAgent,
142144
Store.putDfpPageSkinAdUnits(stringify(toJson(PageSkinSponsorshipReport(now,
143145
pageSkinSponsorships))))
144146

145-
val sponsorshipLineItemIds: List[Long] = data.lineItems.filter(_.lineItemType == Sponsorship).map(_.id).toList
146-
Store.putNonRefreshableLineItemIds(stringify(toJson(sponsorshipLineItemIds)))
147-
148147
Store.putDfpLineItemsReport(stringify(toJson(LineItemReport(now, data.lineItems, data.invalidLineItems))))
149148

150149
Store.putTopAboveNavSlotTakeovers(stringify(toJson(LineItemReport(now,

‎admin/app/tools/Store.scala‎

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,37 +19,37 @@ trait Store extends Logging with Dates {
1919
def getSwitches: Option[String] = S3.get(switchesKey)
2020
def getSwitchesWithLastModified: Option[(String, DateTime)] = S3.getWithLastModified(switchesKey)
2121
def getSwitchesLastModified: Option[DateTime] = S3.getLastModified(switchesKey)
22-
def putSwitches(config: String) { S3.putPublic(switchesKey, config, "text/plain") }
22+
def putSwitches(config: String): Unit = { S3.putPublic(switchesKey, config, "text/plain") }
2323

2424
def getTopStories: Option[String] = S3.get(topStoriesKey)
25-
def putTopStories(config: String) { S3.putPublic(topStoriesKey, config, "application/json") }
25+
def putTopStories(config: String): Unit = { S3.putPublic(topStoriesKey, config, "application/json") }
2626

27-
def putInlineMerchandisingSponsorships(keywordsJson: String) {
27+
def putInlineMerchandisingSponsorships(keywordsJson: String): Unit = {
2828
S3.putPublic(dfpInlineMerchandisingTagsDataKey, keywordsJson, defaultJsonEncoding)
2929
}
30-
def putHighMerchandisingSponsorships(keywordsJson: String) {
30+
def putHighMerchandisingSponsorships(keywordsJson: String): Unit = {
3131
S3.putPublic(dfpHighMerchandisingTagsDataKey, keywordsJson, defaultJsonEncoding)
3232
}
33-
def putDfpPageSkinAdUnits(adUnitJson: String) {
33+
def putDfpPageSkinAdUnits(adUnitJson: String): Unit = {
3434
S3.putPublic(dfpPageSkinnedAdUnitsKey, adUnitJson, defaultJsonEncoding )
3535
}
36-
def putDfpLineItemsReport(everything: String) {
36+
def putDfpLineItemsReport(everything: String): Unit = {
3737
S3.putPublic(dfpLineItemsKey, everything, defaultJsonEncoding)
3838
}
3939
def putDfpAdUnitList(filename: String, adUnits: String): Unit = {
4040
S3.putPublic(filename, adUnits, "text/plain")
4141
}
42-
def putTopAboveNavSlotTakeovers(takeovers: String) {
42+
def putTopAboveNavSlotTakeovers(takeovers: String): Unit = {
4343
S3.putPublic(topAboveNavSlotTakeoversKey, takeovers, defaultJsonEncoding)
4444
}
45-
def putDfpTemplateCreatives(creatives: String) {
45+
def putDfpTemplateCreatives(creatives: String): Unit = {
4646
S3.putPublic(dfpTemplateCreativesKey, creatives, defaultJsonEncoding)
4747
}
4848
def putDfpCustomTargetingKeyValues(keyValues: String): Unit ={
4949
S3.putPublic(dfpCustomTargetingKey, keyValues, defaultJsonEncoding )
5050
}
51-
def putNonRefreshableLineItemIds(lineItemIds: String): Unit = {
52-
S3.putPublic(dfpNonRefreshableLineItemIdsKey, lineItemIds, defaultJsonEncoding)
51+
def putNonRefreshableLineItemIds(lineItemIds: Seq[Long]): Unit = {
52+
S3.putPublic(dfpNonRefreshableLineItemIdsKey, Json.stringify(toJson(lineItemIds)), defaultJsonEncoding)
5353
}
5454

5555
val now: String = DateTime.now().toHttpDateTimeString

0 commit comments

Comments
 (0)

Back | FazBrowse Home | New Git URL