1 /* 2 * Make.org Core API 3 * Copyright (C) 2020 Make.org 4 * 5 * This program is free software: you can redistribute it and/or modify 6 * it under the terms of the GNU Affero General Public License as 7 * published by the Free Software Foundation, either version 3 of the 8 * License, or (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU Affero General Public License for more details. 14 * 15 * You should have received a copy of the GNU Affero General Public License 16 * along with this program. If not, see <https://www.gnu.org/licenses/>. 17 * 18 */ 19 20 package org.make.core.widget 21 22 import enumeratum.{CirceEnum, Enum, EnumEntry} 23 import io.circe.{Codec, Decoder, Encoder} 24 import org.make.core.StringValue 25 import org.make.core.question.QuestionId 26 import org.make.core.reference.{Country, Language} 27 import org.make.core.sequence.SequenceKind 28 import org.make.core.user.UserId 29 import org.make.core.widget.Widget.Version 30 31 import java.time.ZonedDateTime 32 33 final case class WidgetId(value: String) extends StringValue 34 35 object WidgetId { 36 implicit val codec: Codec[WidgetId] = 37 Codec.from(Decoder[String].map(WidgetId.apply), Encoder[String].contramap(_.value)) 38 39 } 40 41 final case class Widget( 42 id: WidgetId, 43 sourceId: SourceId, 44 questionId: QuestionId, 45 country: Country, 46 language: Language, 47 author: UserId, 48 version: Version, 49 script: String, 50 createdAt: ZonedDateTime, 51 sequenceKind: SequenceKind 52 ) 53 54 object Widget { 55 56 sealed abstract class Version extends EnumEntry 57 58 object Version extends Enum[Version] with CirceEnum[Version] { 59 case object V1 extends Version 60 case object V2 extends Version 61 case object V3 extends Version 62 case object V4 extends Version 63 case object V5 extends Version 64 case object V6 extends Version 65 override val values: IndexedSeq[Version] = findValues 66 final val swaggerAllowableValues = "V1,V2,V3,V4,V5,V6" 67 } 68 69 }
| Line | Stmt Id | Pos | Tree | Symbol | Tests | Code |
|---|---|---|---|---|---|---|
| 37 | 4087 | 1296 - 1310 | Apply | org.make.core.widget.WidgetId.apply | akka.http.scaladsl.testkit.routetest | WidgetId.apply(value) |
| 37 | 2331 | 1276 - 1311 | Apply | io.circe.Decoder.map | io.circe.Decoder.apply[String](circe.this.Decoder.decodeString).map[org.make.core.widget.WidgetId](((value: String) => WidgetId.apply(value))) | |
| 37 | 4514 | 1339 - 1346 | Select | org.make.core.widget.WidgetId.value | x$1.value | |
| 37 | 443 | 1265 - 1348 | Apply | io.circe.Codec.from | io.circe.Codec.from[org.make.core.widget.WidgetId](io.circe.Decoder.apply[String](circe.this.Decoder.decodeString).map[org.make.core.widget.WidgetId](((value: String) => WidgetId.apply(value))), io.circe.Encoder.apply[String](circe.this.Encoder.encodeString).contramap[org.make.core.widget.WidgetId](((x$1: org.make.core.widget.WidgetId) => x$1.value))) | |
| 37 | 5560 | 1320 - 1320 | Select | io.circe.Encoder.encodeString | circe.this.Encoder.encodeString | |
| 37 | 2578 | 1313 - 1347 | Apply | io.circe.Encoder.contramap | io.circe.Encoder.apply[String](circe.this.Encoder.encodeString).contramap[org.make.core.widget.WidgetId](((x$1: org.make.core.widget.WidgetId) => x$1.value)) | |
| 37 | 942 | 1283 - 1283 | Select | io.circe.Decoder.decodeString | circe.this.Decoder.decodeString | |
| 66 | 3987 | 2040 - 2059 | Literal | <nosymbol> | "V1,V2,V3,V4,V5,V6" |