Skip to content

Commit 77fa8bc

Browse files
committed
Return NDLADate for originalDate
1 parent d7304f0 commit 77fa8bc

3 files changed

Lines changed: 11 additions & 4 deletions

File tree

common/src/main/scala/no/ndla/common/model/NDLADate.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ object NDLADate {
7272
"yyyy-MM-dd'T'HH:mm:ss",
7373
"yyyy-MM-dd'T'HH:mm:ss.SSS",
7474
"yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSS",
75+
"yyyy:MM:dd HH:mm:ss",
7576
).map(DateTimeFormatter.ofPattern)
7677

7778
def now(): NDLADate = NDLADate.fromDate(ZonedDateTime.now(localZone))

image-api/src/main/scala/no/ndla/imageapi/model/api/ImageFileDTO.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ package no.ndla.imageapi.model.api
1010

1111
import io.circe.generic.semiauto.{deriveDecoder, deriveEncoder}
1212
import io.circe.{Decoder, Encoder}
13+
import no.ndla.common.model.NDLADate
1314
import no.ndla.imageapi.model.domain.ImageContentType
1415
import no.ndla.language.Language.LanguageDocString
1516
import sttp.tapir.Schema.annotations.description
@@ -31,7 +32,7 @@ case class ImageFileDTO(
3132
@description(LanguageDocString)
3233
language: String,
3334
@description("Date image was taken, if available")
34-
originalDate: Option[String],
35+
originalDate: Option[NDLADate],
3536
)
3637

3738
object ImageFileDTO {

image-api/src/main/scala/no/ndla/imageapi/service/ConverterService.scala

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ package no.ndla.imageapi.service
1111
import com.typesafe.scalalogging.StrictLogging
1212
import io.lemonlabs.uri.typesafe.dsl.*
1313
import io.lemonlabs.uri.UrlPath
14-
import no.ndla.common.model.{api as commonApi, domain as commonDomain}
14+
import no.ndla.common.model.{NDLADate, api as commonApi, domain as commonDomain}
1515
import no.ndla.imageapi.Props
1616
import no.ndla.imageapi.model.domain.{
1717
ImageFileData,
@@ -134,7 +134,12 @@ class ConverterService(using clock: Clock, props: Props) extends StrictLogging {
134134
.map { case domain.ImageDimensions(width, height) =>
135135
api.ImageDimensionsDTO(width, height)
136136
}
137-
val variants = image.variants.map(asApiImageVariant)
137+
val variants = image.variants.map(asApiImageVariant)
138+
val originalDate = image
139+
.exifData
140+
.get(props.ExifDateTimeOriginal)
141+
.filter(s => s != "")
142+
.map(s => NDLADate.fromString(s).get)
138143

139144
api.ImageFileDTO(
140145
fileName = image.fileName,
@@ -144,7 +149,7 @@ class ConverterService(using clock: Clock, props: Props) extends StrictLogging {
144149
dimensions = dimensions,
145150
variants = variants,
146151
language = image.language,
147-
originalDate = image.exifData.get(props.ExifDateTimeOriginal),
152+
originalDate = originalDate,
148153
)
149154
}
150155

0 commit comments

Comments
 (0)