Skip to content

Commit da23213

Browse files
committed
Add Messages DSL
1 parent c0bac85 commit da23213

File tree

3 files changed

+132
-35
lines changed

3 files changed

+132
-35
lines changed

pom.xml

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,8 @@
8383
</distributionManagement>
8484

8585
<build>
86+
<sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory>
87+
<testSourceDirectory>${project.basedir}/src/test/kotlin</testSourceDirectory>
8688
<plugins>
8789
<plugin>
8890
<groupId>org.apache.maven.plugins</groupId>
@@ -107,25 +109,6 @@
107109
</execution>
108110
</executions>
109111
</plugin>
110-
<plugin>
111-
<artifactId>kotlin-maven-plugin</artifactId>
112-
<groupId>org.jetbrains.kotlin</groupId>
113-
<version>${kotlin.version}</version>
114-
<extensions>true</extensions>
115-
</plugin>
116-
<plugin>
117-
<groupId>org.jetbrains.dokka</groupId>
118-
<artifactId>dokka-maven-plugin</artifactId>
119-
<version>1.9.20</version>
120-
<executions>
121-
<execution>
122-
<phase>pre-site</phase>
123-
<goals>
124-
<goal>dokka</goal>
125-
</goals>
126-
</execution>
127-
</executions>
128-
</plugin>
129112
<plugin>
130113
<artifactId>maven-source-plugin</artifactId>
131114
<version>3.3.1</version>
@@ -188,6 +171,25 @@
188171
</execution>
189172
</executions>
190173
</plugin>
174+
<plugin>
175+
<groupId>org.jetbrains.dokka</groupId>
176+
<artifactId>dokka-maven-plugin</artifactId>
177+
<version>1.9.20</version>
178+
<executions>
179+
<execution>
180+
<phase>pre-site</phase>
181+
<goals>
182+
<goal>dokka</goal>
183+
</goals>
184+
</execution>
185+
</executions>
186+
</plugin>
187+
<plugin>
188+
<artifactId>kotlin-maven-plugin</artifactId>
189+
<groupId>org.jetbrains.kotlin</groupId>
190+
<version>${kotlin.version}</version>
191+
<extensions>true</extensions>
192+
</plugin>
191193
</plugins>
192194
</build>
193195

Lines changed: 102 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,111 @@
1-
package org.example.com.vonage.client.kt
1+
package com.vonage.client.kt
22

3-
import com.vonage.client.messages.sms.SmsTextRequest
4-
import com.vonage.client.messages.whatsapp.WhatsappTextRequest
3+
import com.vonage.client.messages.*
4+
import com.vonage.client.messages.sms.*
5+
import com.vonage.client.messages.mms.*
6+
import com.vonage.client.messages.whatsapp.*
7+
import com.vonage.client.messages.messenger.*
8+
import com.vonage.client.messages.viber.*
9+
import java.util.UUID
10+
11+
class Messages (private val messagesClient: MessagesClient) {
12+
fun send(message : MessageRequest) : UUID {
13+
return messagesClient.sendMessage(message).messageUuid
14+
}
15+
}
516

617
fun sms(init: SmsTextRequest.Builder.() -> Unit): SmsTextRequest {
718
return SmsTextRequest.builder().apply(init).build()
819
}
920

21+
fun vcard(init: MmsVcardRequest.Builder.() -> Unit): MmsVcardRequest {
22+
return MmsVcardRequest.builder().apply(init).build()
23+
}
24+
25+
fun mmsImage(init: MmsImageRequest.Builder.() -> Unit): MmsImageRequest {
26+
return MmsImageRequest.builder().apply(init).build()
27+
}
28+
29+
fun mmsAudio(init: MmsAudioRequest.Builder.() -> Unit): MmsAudioRequest {
30+
return MmsAudioRequest.builder().apply(init).build()
31+
}
32+
33+
fun mmsVideo(init: MmsVideoRequest.Builder.() -> Unit): MmsVideoRequest {
34+
return MmsVideoRequest.builder().apply(init).build()
35+
}
36+
1037
fun whatsappText(init: WhatsappTextRequest.Builder.() -> Unit): WhatsappTextRequest {
1138
return WhatsappTextRequest.builder().apply(init).build()
39+
}
40+
41+
fun whatsappImage(init: WhatsappImageRequest.Builder.() -> Unit): WhatsappImageRequest {
42+
return WhatsappImageRequest.builder().apply(init).build()
43+
}
44+
45+
fun whatsappAudio(init: WhatsappAudioRequest.Builder.() -> Unit): WhatsappAudioRequest {
46+
return WhatsappAudioRequest.builder().apply(init).build()
47+
}
48+
49+
fun whatsappVideo(init: WhatsappVideoRequest.Builder.() -> Unit): WhatsappVideoRequest {
50+
return WhatsappVideoRequest.builder().apply(init).build()
51+
}
52+
53+
fun whatsappFile(init: WhatsappFileRequest.Builder.() -> Unit): WhatsappFileRequest {
54+
return WhatsappFileRequest.builder().apply(init).build()
55+
}
56+
57+
fun whatsappSticker(init: WhatsappStickerRequest.Builder.() -> Unit): WhatsappStickerRequest {
58+
return WhatsappStickerRequest.builder().apply(init).build()
59+
}
60+
61+
fun whatsappLocation(init: WhatsappLocationRequest.Builder.() -> Unit): WhatsappLocationRequest {
62+
return WhatsappLocationRequest.builder().apply(init).build()
63+
}
64+
65+
fun whatsappSingleProduct(init: WhatsappSingleProductRequest.Builder.() -> Unit): WhatsappSingleProductRequest {
66+
return WhatsappSingleProductRequest.builder().apply(init).build()
67+
}
68+
69+
fun whatsappMultiProduct(init: WhatsappMultiProductRequest.Builder.() -> Unit): WhatsappMultiProductRequest {
70+
return WhatsappMultiProductRequest.builder().apply(init).build()
71+
}
72+
73+
fun whatsappTemplate(init: WhatsappTemplateRequest.Builder.() -> Unit): WhatsappTemplateRequest {
74+
return WhatsappTemplateRequest.builder().apply(init).build()
75+
}
76+
77+
fun messengerText(init: MessengerTextRequest.Builder.() -> Unit): MessengerTextRequest {
78+
return MessengerTextRequest.builder().apply(init).build()
79+
}
80+
81+
fun messengerImage(init: MessengerImageRequest.Builder.() -> Unit): MessengerImageRequest {
82+
return MessengerImageRequest.builder().apply(init).build()
83+
}
84+
85+
fun messengerAudio(init: MessengerAudioRequest.Builder.() -> Unit): MessengerAudioRequest {
86+
return MessengerAudioRequest.builder().apply(init).build()
87+
}
88+
89+
fun messengerVideo(init: MessengerVideoRequest.Builder.() -> Unit): MessengerVideoRequest {
90+
return MessengerVideoRequest.builder().apply(init).build()
91+
}
92+
93+
fun messengerFile(init: MessengerFileRequest.Builder.() -> Unit): MessengerFileRequest {
94+
return MessengerFileRequest.builder().apply(init).build()
95+
}
96+
97+
fun viberText(init: ViberTextRequest.Builder.() -> Unit): ViberTextRequest {
98+
return ViberTextRequest.builder().apply(init).build()
99+
}
100+
101+
fun viberImage(init: ViberImageRequest.Builder.() -> Unit): ViberImageRequest {
102+
return ViberImageRequest.builder().apply(init).build()
103+
}
104+
105+
fun viberVideo(init: ViberVideoRequest.Builder.() -> Unit): ViberVideoRequest {
106+
return ViberVideoRequest.builder().apply(init).build()
107+
}
108+
109+
fun viberFile(init: ViberFileRequest.Builder.() -> Unit): ViberFileRequest {
110+
return ViberFileRequest.builder().apply(init).build()
12111
}

src/main/kotlin/com/vonage/client/kt/Vonage.kt

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,12 @@ package org.example.com.vonage.client.kt
22

33
import com.vonage.client.HttpConfig
44
import com.vonage.client.VonageClient
5-
import com.vonage.client.messages.MessageRequest
6-
import com.vonage.client.verify2.Verify2Client
7-
import java.time.Instant
8-
import java.util.*
5+
import com.vonage.client.kt.Messages
96

107
class Vonage constructor(init: VonageClient.Builder.() -> Unit) {
118
private val vonageClient : VonageClient = VonageClient.builder().apply(init).build();
12-
val verify: Verify2Client = vonageClient.verify2Client
13-
14-
fun sendMessage(request: MessageRequest) : UUID {
15-
return vonageClient.messagesClient.sendMessage(request).messageUuid
16-
}
17-
18-
fun simSwapDate(phoneNumber: String): Instant {
19-
return vonageClient.simSwapClient.retrieveSimSwapDate(phoneNumber)
20-
}
9+
val verify = vonageClient.verify2Client
10+
val messages = Messages(vonageClient.messagesClient)
2111
}
2212

2313
fun VonageClient.Builder.authFromEnv() : VonageClient.Builder {
@@ -35,4 +25,10 @@ fun httpConfig(init: HttpConfig.Builder.() -> Unit): HttpConfig {
3525

3626
private fun env(variable : String) : String {
3727
return System.getenv(variable)
28+
}
29+
30+
fun main() {
31+
val client = Vonage {
32+
authFromEnv()
33+
}
3834
}

0 commit comments

Comments
 (0)