Skip to content

Commit e1ea8d0

Browse files
committed
Response object refactor. Repo URL change
1 parent a9636d3 commit e1ea8d0

5 files changed

Lines changed: 25 additions & 39 deletions

File tree

README.md

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -31,30 +31,24 @@ The following method will download latest disposable email list from [here](http
3131
DisposableEmail.refreshDisposableDomains()
3232
```
3333

34-
Get DNS and disposable details of a email domain
34+
Get DNS and disposable details of a email domain. Response `DomainDetails`
3535
```
36-
DisposableEmail.getDomainDetails("gmail.com")
36+
domainDetails = DisposableEmail.getDomainDetails("gmail.com")
3737
38-
{
39-
"DISPOSABLE_DOMAIN": false,
40-
"DNS_MX_PRESENT": true
41-
}
38+
domainDetails.disposableDomain -> false
39+
domainDetails.mxRecordPresent -> true
4240
```
4341
```
44-
DisposableEmail.getDomainDetails("yopmail.com")
42+
domainDetails = DisposableEmail.getDomainDetails("yopmail.com")
4543
46-
{
47-
"DISPOSABLE_DOMAIN": true,
48-
"DNS_MX_PRESENT": true
49-
}
44+
domainDetails.disposableDomain -> true
45+
domainDetails.mxRecordPresent -> true
5046
```
5147
```
52-
DisposableEmail.getDomainDetails("nonexisting123.com")
48+
domainDetails = DisposableEmail.getDomainDetails("nonexisting123.com")
5349
54-
{
55-
"DISPOSABLE_DOMAIN": false,
56-
"DNS_MX_PRESENT": false
57-
}
50+
domainDetails.disposableDomain -> false
51+
domainDetails.mxRecordPresent -> false
5852
```
5953

6054
Check whether a given email address is disposable address (local check)

build.gradle.kts

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,6 @@ group = "org.valarpirai"
1010
version = "1.0.5"
1111

1212
repositories {
13-
maven {
14-
url = uri("https://maven.pkg.github.com/valarpirai/dns-over-https")
15-
credentials {
16-
username = project.findProperty("gpr.user") as String? ?: System.getenv("USERNAME")
17-
password = project.findProperty("gpr.key") as String? ?: System.getenv("TOKEN")
18-
}
19-
}
2013
mavenCentral()
2114
}
2215

@@ -49,7 +42,7 @@ publishing {
4942
repositories {
5043
maven {
5144
name = "GitHubPackages"
52-
url = uri("https://maven.pkg.github.com/valarpirai/disposable-emails")
45+
url = uri("https://maven.pkg.github.com/valarpirai/disposable-emails-validator-java")
5346
credentials {
5447
username = project.findProperty("gpr.user") as String? ?: System.getenv("USERNAME")
5548
password = project.findProperty("gpr.key") as String? ?: System.getenv("TOKEN")

src/main/kotlin/org/disposableemail/Configurations.kt renamed to src/main/kotlin/org/disposableemail/Constants.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package org.disposableemail;
22

33
import java.util.regex.Pattern
44

5-
class Configurations {
5+
class Constants {
66

77
companion object {
88
val EMAIL_PATTERN: Pattern = Pattern.compile("^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$")

src/main/kotlin/org/disposableemail/DisposableEmail.kt

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import com.squareup.moshi.Moshi
55
import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory
66
import okhttp3.OkHttpClient
77
import okhttp3.Request
8-
import org.disposableemail.Configurations.Companion.EMAIL_PATTERN
9-
import org.disposableemail.Configurations.Companion.GENERIC_DOMAIN_LISTS_TXT
8+
import org.disposableemail.Constants.Companion.EMAIL_PATTERN
9+
import org.disposableemail.Constants.Companion.GENERIC_DOMAIN_LISTS_TXT
1010
import org.disposableemail.bloomfilter.InMemoryBloomFilter
1111
import org.disposableemail.dnsoverhttps.DnsResolverType
1212
import org.disposableemail.dnsoverhttps.Resolver
@@ -38,12 +38,9 @@ class DisposableEmail private constructor() {
3838
return instance as DisposableEmail
3939
}
4040

41-
fun getDomainDetails(email: String, dnsResolver: DnsResolverType = DnsResolverType.CLOUD_FLARE): Map<String, Boolean> {
41+
fun getDomainDetails(email: String, dnsResolver: DnsResolverType = DnsResolverType.CLOUD_FLARE): DomainDetails {
4242
val domain = getInstance().extractDomain(email)
43-
return mapOf(
44-
"DISPOSABLE_DOMAIN" to getInstance().isDisposable(domain),
45-
"DNS_MX_PRESENT" to hasValidMailDomain(domain, dnsResolver)
46-
)
43+
return DomainDetails(getInstance().isDisposable(domain), hasValidMailDomain(domain, dnsResolver))
4744
}
4845

4946
/**
@@ -127,7 +124,7 @@ class DisposableEmail private constructor() {
127124
private fun loadDomainDataFromResourceFile(): LongArray? {
128125
val moshi = Moshi.Builder().addLast(KotlinJsonAdapterFactory()).build()
129126
val jsonAdapter: JsonAdapter<LongArray> = moshi.adapter<LongArray>(LongArray::class.java)
130-
val inputStream = javaClass.classLoader.getResourceAsStream(Configurations.DOMAIN_RESOURCE_FILE_NAME)
127+
val inputStream = javaClass.classLoader.getResourceAsStream(Constants.DOMAIN_RESOURCE_FILE_NAME)
131128
var data: LongArray? = null
132129
inputStream?.bufferedReader()?.use {
133130
val txt = it.readText()
@@ -167,3 +164,5 @@ class DisposableEmail private constructor() {
167164
System.gc()
168165
}
169166
}
167+
168+
data class DomainDetails(val disposableDomain: Boolean, val mxRecordPresent: Boolean) {}

src/test/kotlin/org/disposableemail/DisposableEmailTest.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,16 +50,16 @@ class DisposableEmailTest {
5050
@Test
5151
fun test_get_domain_details() {
5252
var data = DisposableEmail.getDomainDetails("mailsac.com")
53-
Assertions.assertEquals(data["DISPOSABLE_DOMAIN"], true)
54-
Assertions.assertEquals(data["DNS_MX_PRESENT"], true)
53+
Assertions.assertEquals(data.disposableDomain, true)
54+
Assertions.assertEquals(data.mxRecordPresent, true)
5555

5656
data = DisposableEmail.getDomainDetails("gmail.com")
57-
Assertions.assertEquals(data["DISPOSABLE_DOMAIN"], false)
58-
Assertions.assertEquals(data["DNS_MX_PRESENT"], true)
57+
Assertions.assertEquals(data.disposableDomain, false)
58+
Assertions.assertEquals(data.mxRecordPresent, true)
5959

6060
data = DisposableEmail.getDomainDetails("nonexisting123.com")
61-
Assertions.assertEquals(data["DISPOSABLE_DOMAIN"], false)
62-
Assertions.assertEquals(data["DNS_MX_PRESENT"], false)
61+
Assertions.assertEquals(data.disposableDomain, false)
62+
Assertions.assertEquals(data.mxRecordPresent, false)
6363
}
6464

6565
@Test

0 commit comments

Comments
 (0)