1 /*
2  *  Make.org Core API
3  *  Copyright (C) 2018 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.api.extensions
21 
22 import com.typesafe.config.Config
23 import org.make.api.extensions.MakeSettings.DefaultAdmin
24 
25 import java.util.concurrent.TimeUnit
26 import scala.concurrent.duration.{Duration, FiniteDuration}
27 import scala.jdk.CollectionConverters._
28 
29 class MakeSettings(config: Config) {
30   val passivateTimeout: Duration = Duration(config.getString("passivate-timeout"))
31   val maxUserHistoryEvents: Int = config.getInt("max-user-history-events")
32   val mandatoryConnection: Boolean = config.getBoolean("mandatory-connection")
33   val defaultAdmin: DefaultAdmin = DefaultAdmin(
34     firstName = config.getString("default-admin.first-name"),
35     email = config.getString("default-admin.email"),
36     password = config.getString("default-admin.password")
37   )
38   val lockDuration: FiniteDuration =
39     FiniteDuration(Duration(config.getString("lock-duration")).toMillis, TimeUnit.MILLISECONDS)
40   val maxHistoryProposalsPerPage: Int = config.getInt("max-history-proposals-per-page")
41   val validationTokenExpiresIn: Duration = Duration(config.getString("user-token.validation-token-expires-in"))
42   val resetTokenExpiresIn: Duration = Duration(config.getString("user-token.reset-token-expires-in"))
43   val resetTokenB2BExpiresIn: Duration = Duration(config.getString("user-token.reset-token-b2b-expires-in"))
44 
45   object SessionCookie {
46     val lifetime: Duration = Duration(config.getString("cookie-session.lifetime"))
47     val name: String = config.getString("cookie-session.name")
48     val expirationName: String = config.getString("cookie-session.expiration-name")
49     val isSecure: Boolean = config.getBoolean("cookie-session.is-secure")
50   }
51 
52   object SecureCookie {
53     val name: String = config.getString("cookie-secure.name")
54     val expirationName: String = config.getString("cookie-secure.expiration-name")
55     val isSecure: Boolean = config.getBoolean("cookie-secure.is-secure")
56   }
57 
58   object VisitorCookie {
59     val name: String = config.getString("cookie-visitor.name")
60     val createdAtName: String = config.getString("cookie-visitor.created-at-name")
61     val isSecure: Boolean = config.getBoolean("cookie-visitor.is-secure")
62   }
63 
64   object UserIdCookie {
65     val name: String = config.getString("cookie-user-id.name")
66     val isSecure: Boolean = config.getBoolean("cookie-user-id.is-secure")
67   }
68 
69   object Http {
70     val host: String = config.getString("http.host")
71     val port: Int = config.getInt("http.port")
72     val ssl: Boolean = config.getBoolean("http.ssl")
73   }
74 
75   val authorizedCorsUri: Seq[String] =
76     config.getStringList("authorized-cors-uri").asScala.toSeq
77 
78   object Authentication {
79     val defaultClientId: String = config.getString("authentication.default-client-id")
80 
81     val defaultClientSecret: String = config.getString("authentication.default-client-secret")
82   }
83 
84   val environment: String = config.getString("environment")
85   val techSwaggerAllowedHost: String = config.getString("tech-swagger-allowed-host")
86 }
87 
88 object MakeSettings {
89   final case class DefaultAdmin(firstName: String, email: String, password: String) {
90     override def toString: String = s"default admin account ($email)"
91   }
92 }
93 
94 trait MakeSettingsComponent {
95   def makeSettings: MakeSettings
96 }
Line Stmt Id Pos Tree Symbol Tests Code
30 28 1080 - 1127 Apply scala.concurrent.duration.Duration.apply scala.concurrent.duration.Duration.apply(MakeSettings.this.config.getString("passivate-timeout"))
30 159 1089 - 1126 Apply com.typesafe.config.Config.getString MakeSettings.this.config.getString("passivate-timeout")
31 245 1162 - 1202 Apply com.typesafe.config.Config.getInt MakeSettings.this.config.getInt("max-user-history-events")
32 169 1240 - 1281 Apply com.typesafe.config.Config.getBoolean MakeSettings.this.config.getBoolean("mandatory-connection")
33 13 1317 - 1507 Apply org.make.api.extensions.MakeSettings.DefaultAdmin.apply org.make.api.extensions.MakeSettings.DefaultAdmin.apply(MakeSettings.this.config.getString("default-admin.first-name"), MakeSettings.this.config.getString("default-admin.email"), MakeSettings.this.config.getString("default-admin.password"))
34 52 1347 - 1391 Apply com.typesafe.config.Config.getString MakeSettings.this.config.getString("default-admin.first-name")
35 255 1405 - 1444 Apply com.typesafe.config.Config.getString MakeSettings.this.config.getString("default-admin.email")
36 134 1461 - 1503 Apply com.typesafe.config.Config.getString MakeSettings.this.config.getString("default-admin.password")
39 29 1618 - 1639 Literal <nosymbol> MILLISECONDS
39 232 1549 - 1640 Apply scala.concurrent.duration.FiniteDuration.apply scala.concurrent.duration.FiniteDuration.apply(scala.concurrent.duration.Duration.apply(MakeSettings.this.config.getString("lock-duration")).toMillis, MILLISECONDS)
39 275 1573 - 1606 Apply com.typesafe.config.Config.getString MakeSettings.this.config.getString("lock-duration")
39 143 1564 - 1616 Select scala.concurrent.duration.Duration.toMillis scala.concurrent.duration.Duration.apply(MakeSettings.this.config.getString("lock-duration")).toMillis
40 170 1681 - 1728 Apply com.typesafe.config.Config.getInt MakeSettings.this.config.getInt("max-history-proposals-per-page")
41 51 1781 - 1839 Apply com.typesafe.config.Config.getString MakeSettings.this.config.getString("user-token.validation-token-expires-in")
41 248 1772 - 1840 Apply scala.concurrent.duration.Duration.apply scala.concurrent.duration.Duration.apply(MakeSettings.this.config.getString("user-token.validation-token-expires-in"))
42 5 1879 - 1942 Apply scala.concurrent.duration.Duration.apply scala.concurrent.duration.Duration.apply(MakeSettings.this.config.getString("user-token.reset-token-expires-in"))
42 136 1888 - 1941 Apply com.typesafe.config.Config.getString MakeSettings.this.config.getString("user-token.reset-token-expires-in")
43 277 1993 - 2050 Apply com.typesafe.config.Config.getString MakeSettings.this.config.getString("user-token.reset-token-b2b-expires-in")
43 144 1984 - 2051 Apply scala.concurrent.duration.Duration.apply scala.concurrent.duration.Duration.apply(MakeSettings.this.config.getString("user-token.reset-token-b2b-expires-in"))
46 21 2116 - 2159 Apply com.typesafe.config.Config.getString MakeSettings.this.config.getString("cookie-session.lifetime")
46 233 2107 - 2160 Apply scala.concurrent.duration.Duration.apply scala.concurrent.duration.Duration.apply(MakeSettings.this.config.getString("cookie-session.lifetime"))
47 166 2184 - 2223 Apply com.typesafe.config.Config.getString MakeSettings.this.config.getString("cookie-session.name")
48 57 2257 - 2307 Apply com.typesafe.config.Config.getString MakeSettings.this.config.getString("cookie-session.expiration-name")
49 250 2336 - 2381 Apply com.typesafe.config.Config.getBoolean MakeSettings.this.config.getBoolean("cookie-session.is-secure")
53 133 2434 - 2472 Apply com.typesafe.config.Config.getString MakeSettings.this.config.getString("cookie-secure.name")
54 6 2506 - 2555 Apply com.typesafe.config.Config.getString MakeSettings.this.config.getString("cookie-secure.expiration-name")
55 278 2584 - 2628 Apply com.typesafe.config.Config.getBoolean MakeSettings.this.config.getBoolean("cookie-secure.is-secure")
59 160 2682 - 2721 Apply com.typesafe.config.Config.getString MakeSettings.this.config.getString("cookie-visitor.name")
60 23 2754 - 2804 Apply com.typesafe.config.Config.getString MakeSettings.this.config.getString("cookie-visitor.created-at-name")
61 240 2833 - 2878 Apply com.typesafe.config.Config.getBoolean MakeSettings.this.config.getBoolean("cookie-visitor.is-secure")
65 111 2931 - 2970 Apply com.typesafe.config.Config.getString MakeSettings.this.config.getString("cookie-user-id.name")
66 58 2999 - 3044 Apply com.typesafe.config.Config.getBoolean MakeSettings.this.config.getBoolean("cookie-user-id.is-secure")
70 262 3089 - 3118 Apply com.typesafe.config.Config.getString MakeSettings.this.config.getString("http.host")
71 135 3139 - 3165 Apply com.typesafe.config.Config.getInt MakeSettings.this.config.getInt("http.port")
72 17 3189 - 3218 Apply com.typesafe.config.Config.getBoolean MakeSettings.this.config.getBoolean("http.ssl")
76 287 3267 - 3310 Apply com.typesafe.config.Config.getStringList MakeSettings.this.config.getStringList("authorized-cors-uri")
76 161 3267 - 3324 Select scala.collection.IterableOnceOps.toSeq scala.jdk.CollectionConverters.ListHasAsScala[String](MakeSettings.this.config.getStringList("authorized-cors-uri")).asScala.toSeq
79 38 3386 - 3438 Apply com.typesafe.config.Config.getString MakeSettings.this.config.getString("authentication.default-client-id")
81 241 3478 - 3534 Apply com.typesafe.config.Config.getString MakeSettings.this.config.getString("authentication.default-client-secret")
84 118 3568 - 3599 Apply com.typesafe.config.Config.getString MakeSettings.this.config.getString("environment")
85 55 3639 - 3684 Apply com.typesafe.config.Config.getString MakeSettings.this.config.getString("tech-swagger-allowed-host")