Skip to content
This repository was archived by the owner on Feb 26, 2023. It is now read-only.

Commit 6a4a7ab

Browse files
committed
2 parents de2b2c8 + a81d65f commit 6a4a7ab

File tree

7 files changed

+393
-4
lines changed

7 files changed

+393
-4
lines changed

build.gradle.kts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,11 @@ repositories {
1414

1515
dependencies {
1616
testImplementation(kotlin("test"))
17+
18+
19+
implementation("com.squareup.okhttp3:okhttp:4.10.0")
20+
implementation("com.moandjiezana.toml:toml4j:0.7.2")
21+
implementation("io.github.cdimascio:dotenv-kotlin:6.4.1")
1722
}
1823

1924
tasks.test {

src/main/kotlin/Environement.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import io.github.cdimascio.dotenv.dotenv
2+
3+
class Environement {
4+
companion object {
5+
val url by lazy {
6+
val dotenv = dotenv()
7+
dotenv["URL"]
8+
}
9+
}
10+
}

src/main/kotlin/Main.kt

Lines changed: 243 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,246 @@
1+
import models.BookModel
2+
import models.ReaderModel
3+
import okhttp3.OkHttpClient
4+
import okhttp3.Request
5+
import requests.BookRequest
6+
import requests.ReaderRequest
7+
import java.io.IOException
8+
9+
val client = OkHttpClient();
10+
111
fun main(args: Array<String>) {
2-
println("Hello World!")
312

4-
// Try adding program arguments via Run/Debug configuration.
5-
// Learn more about running applications: https://www.jetbrains.com/help/idea/running-applications.html.
6-
println("Program arguments: ${args.joinToString()}")
13+
newBook()
14+
15+
newReader()
16+
17+
}
18+
19+
fun newBook() : BookModel {
20+
val title: String
21+
var author: String
22+
var year: Int
23+
var pages: Int
24+
var language: String
25+
var publisher: String
26+
var isbn: String
27+
var price: Double
28+
var format: String
29+
var genre: String
30+
var description: String
31+
var cover: String
32+
var url: String
33+
var id: Int
34+
35+
println("Enter the title of the book")
36+
title = readLine()!!
37+
println("Enter the author of the book")
38+
author = readLine()!!
39+
println("Enter the year of the book")
40+
year = readLine()!!.toInt()
41+
println("Enter the number of pages of the book")
42+
pages = readLine()!!.toInt()
43+
println("Enter the language of the book")
44+
language = readLine()!!
45+
println("Enter the publisher of the book")
46+
publisher = readLine()!!
47+
println("Enter the ISBN of the book")
48+
isbn = readLine()!!
49+
println("Enter the price of the book")
50+
price = readLine()!!.toDouble()
51+
println("Enter the format of the book")
52+
format = readLine()!!
53+
println("Enter the genre of the book")
54+
genre = readLine()!!
55+
println("Enter the description of the book")
56+
description = readLine()!!
57+
println("Enter the cover of the book")
58+
cover = readLine()!!
59+
println("Enter the url of the book")
60+
url = readLine()!!
61+
println("Enter the id of the book")
62+
id = readLine()!!.toInt()
63+
64+
val book = BookModel(title, author, year, pages, language, publisher, isbn, price, format, genre, description, cover, url, id)
65+
return book
66+
}
67+
68+
fun newReader(): ReaderModel {
69+
var id: Int
70+
var name: String
71+
var email: String
72+
var password: String
73+
var role: String
74+
var token: String
75+
var books: List<BookModel>
76+
var booksBorrowed: List<BookModel>
77+
var booksReserved: List<BookModel>
78+
var booksReturned: List<BookModel>
79+
var booksLost: List<BookModel>
80+
var booksDamaged: List<BookModel>
81+
var booksBorrowedHistory: List<BookModel>
82+
var booksReservedHistory: List<BookModel>
83+
var booksReturnedHistory: List<BookModel>
84+
var booksLostHistory: List<BookModel>
85+
var booksDamagedHistory: List<BookModel>
86+
var booksBorrowedHistoryCount: Int
87+
var booksReservedHistoryCount: Int
88+
var booksReturnedHistoryCount: Int
89+
var booksLostHistoryCount: Int
90+
var booksDamagedHistoryCount: Int
91+
var booksBorrowedCount: Int
92+
var booksReservedCount: Int
93+
var booksReturnedCount: Int
94+
var booksLostCount: Int
95+
var booksDamagedCount: Int
96+
var booksCount: Int
97+
var booksBorrowedHistoryPage: Int
98+
var booksReservedHistoryPage: Int
99+
var booksReturnedHistoryPage: Int
100+
var booksLostHistoryPage: Int
101+
var booksDamagedHistoryPage: Int
102+
var booksBorrowedPage: Int
103+
var booksReservedPage: Int
104+
var booksReturnedPage: Int
105+
var booksLostPage: Int
106+
var booksDamagedPage: Int
107+
var booksPage: Int
108+
var booksBorrowedHistoryPageCount: Int
109+
var booksReservedHistoryPageCount: Int
110+
var booksReturnedHistoryPageCount: Int
111+
var booksLostHistoryPageCount: Int
112+
113+
println("Enter the id of the reader")
114+
id = readLine()!!.toInt()
115+
println("Enter the name of the reader")
116+
name = readLine()!!
117+
println("Enter the email of the reader")
118+
email = readLine()!!
119+
println("Enter the password of the reader")
120+
password = readLine()!!
121+
println("Enter the role of the reader")
122+
role = readLine()!!
123+
println("Enter the token of the reader")
124+
token = readLine()!!
125+
println("Enter the books of the reader")
126+
books = readLine()!!.split(",").map { it.trim() }.map { BookModel(it, "", 0, 0, "", "", "", 0.0, "", "", "", "", "", 0) }
127+
println("Enter the booksBorrowed of the reader")
128+
booksBorrowed = readLine()!!.split(",").map { it.trim() }.map { BookModel(it, "", 0, 0, "", "", "", 0.0, "", "", "", "", "", 0) }
129+
println("Enter the booksReserved of the reader")
130+
booksReserved = readLine()!!.split(",").map { it.trim() }.map { BookModel(it, "", 0, 0, "", "", "", 0.0, "", "", "", "", "", 0) }
131+
println("Enter the booksReturned of the reader")
132+
booksReturned = readLine()!!.split(",").map { it.trim() }.map { BookModel(it, "", 0, 0, "", "", "", 0.0, "", "", "", "", "", 0) }
133+
println("Enter the booksLost of the reader")
134+
booksLost = readLine()!!.split(",").map { it.trim() }.map { BookModel(it, "", 0, 0, "", "", "", 0.0, "", "", "", "", "", 0) }
135+
println("Enter the booksDamaged of the reader")
136+
booksDamaged = readLine()!!.split(",").map { it.trim() }.map { BookModel(it, "", 0, 0, "", "", "", 0.0, "", "", "", "", "", 0) }
137+
println("Enter the booksBorrowedHistory of the reader")
138+
booksBorrowedHistory = readLine()!!.split(",").map { it.trim() }.map { BookModel(it, "", 0, 0, "", "", "", 0.0, "", "", "", "", "", 0) }
139+
println("Enter the booksReservedHistory of the reader")
140+
booksReservedHistory = readLine()!!.split(",").map { it.trim() }.map { BookModel(it, "", 0, 0, "", "", "", 0.0, "", "", "", "", "", 0) }
141+
println("Enter the booksReturnedHistory of the reader")
142+
booksReturnedHistory = readLine()!!.split(",").map { it.trim() }.map { BookModel(it, "", 0, 0, "", "", "", 0.0, "", "", "", "", "", 0) }
143+
println("Enter the booksLostHistory of the reader")
144+
booksLostHistory = readLine()!!.split(",").map { it.trim() }.map { BookModel(it, "", 0, 0, "", "", "", 0.0, "", "", "", "", "", 0) }
145+
println("Enter the booksDamagedHistory of the reader")
146+
booksDamagedHistory = readLine()!!.split(",").map { it.trim() }.map { BookModel(it, "", 0, 0, "", "", "", 0.0, "", "", "", "", "", 0) }
147+
println("Enter the booksBorrowedHistoryCount of the reader")
148+
booksBorrowedHistoryCount = readLine()!!.toInt()
149+
println("Enter the booksReservedHistoryCount of the reader")
150+
booksReservedHistoryCount = readLine()!!.toInt()
151+
println("Enter the booksReturnedHistoryCount of the reader")
152+
booksReturnedHistoryCount = readLine()!!.toInt()
153+
println("Enter the booksLostHistoryCount of the reader")
154+
booksLostHistoryCount = readLine()!!.toInt()
155+
println("Enter the booksDamagedHistoryCount of the reader")
156+
booksDamagedHistoryCount = readLine()!!.toInt()
157+
println("Enter the booksBorrowedCount of the reader")
158+
booksBorrowedCount = readLine()!!.toInt()
159+
println("Enter the booksReservedCount of the reader")
160+
booksReservedCount = readLine()!!.toInt()
161+
println("Enter the booksReturnedCount of the reader")
162+
booksReturnedCount = readLine()!!.toInt()
163+
println("Enter the booksLostCount of the reader")
164+
booksLostCount = readLine()!!.toInt()
165+
println("Enter the booksDamagedCount of the reader")
166+
booksDamagedCount = readLine()!!.toInt()
167+
println("Enter the booksCount of the reader")
168+
booksCount = readLine()!!.toInt()
169+
println("Enter the booksBorrowedHistoryPage of the reader")
170+
booksBorrowedHistoryPage = readLine()!!.toInt()
171+
println("Enter the booksReservedHistoryPage of the reader")
172+
booksReservedHistoryPage = readLine()!!.toInt()
173+
println("Enter the booksReturnedHistoryPage of the reader")
174+
booksReturnedHistoryPage = readLine()!!.toInt()
175+
println("Enter the booksLostHistoryPage of the reader")
176+
booksLostHistoryPage = readLine()!!.toInt()
177+
println("Enter the booksDamagedHistoryPage of the reader")
178+
booksDamagedHistoryPage = readLine()!!.toInt()
179+
println("Enter the booksBorrowedPage of the reader")
180+
booksBorrowedPage = readLine()!!.toInt()
181+
println("Enter the booksReservedPage of the reader")
182+
booksReservedPage = readLine()!!.toInt()
183+
println("Enter the booksReturnedPage of the reader")
184+
booksReturnedPage = readLine()!!.toInt()
185+
println("Enter the booksLostPage of the reader")
186+
booksLostPage = readLine()!!.toInt()
187+
println("Enter the booksDamagedPage of the reader")
188+
booksDamagedPage = readLine()!!.toInt()
189+
println("Enter the booksPage of the reader")
190+
booksPage = readLine()!!.toInt()
191+
println("Enter the booksBorrowedHistoryPageCount of the reader")
192+
booksBorrowedHistoryPageCount = readLine()!!.toInt()
193+
println("Enter the booksReservedHistoryPageCount of the reader")
194+
booksReservedHistoryPageCount = readLine()!!.toInt()
195+
println("Enter the booksReturnedHistoryPageCount of the reader")
196+
booksReturnedHistoryPageCount = readLine()!!.toInt()
197+
println("Enter the booksLostHistoryPageCount of the reader")
198+
booksLostHistoryPageCount = readLine()!!.toInt()
199+
200+
val reader = ReaderModel(
201+
id,
202+
name,
203+
email,
204+
password,
205+
role,
206+
token,
207+
books,
208+
booksBorrowed,
209+
booksReserved,
210+
booksReturned,
211+
booksLost,
212+
booksDamaged,
213+
booksBorrowedHistory,
214+
booksReservedHistory,
215+
booksReturnedHistory,
216+
booksLostHistory,
217+
booksDamagedHistory,
218+
booksBorrowedHistoryCount,
219+
booksReservedHistoryCount,
220+
booksReturnedHistoryCount,
221+
booksLostHistoryCount,
222+
booksDamagedHistoryCount,
223+
booksBorrowedCount,
224+
booksReservedCount,
225+
booksReturnedCount,
226+
booksLostCount,
227+
booksDamagedCount,
228+
booksCount,
229+
booksBorrowedHistoryPage,
230+
booksReservedHistoryPage,
231+
booksReturnedHistoryPage,
232+
booksLostHistoryPage,
233+
booksDamagedHistoryPage,
234+
booksBorrowedPage,
235+
booksReservedPage,
236+
booksReturnedPage,
237+
booksLostPage,
238+
booksDamagedPage,
239+
booksPage,
240+
booksBorrowedHistoryPageCount,
241+
booksReservedHistoryPageCount,
242+
booksReturnedHistoryPageCount,
243+
booksLostHistoryPageCount
244+
)
245+
return reader
7246
}

src/main/kotlin/models/BookModel.kt

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package models
2+
3+
import com.moandjiezana.toml.TomlWriter
4+
5+
6+
7+
8+
class BookModel(
9+
val title: String,
10+
var author: String,
11+
var year: Int,
12+
var pages: Int,
13+
var language: String,
14+
var publisher: String,
15+
var isbn: String,
16+
var price: Double,
17+
var format: String,
18+
var genre: String,
19+
var description: String,
20+
var cover: String,
21+
var url: String,
22+
var id: Int
23+
) {
24+
fun toToml(): String = TomlWriter().write(this)
25+
26+
override fun toString(): String {
27+
return "models.Book(title='$title', author='$author', year=$year, pages=$pages, language='$language', publisher='$publisher', isbn='$isbn', price=$price, format='$format', genre='$genre', description='$description', cover='$cover', url='$url', id=$id)"
28+
}
29+
}

src/main/kotlin/models/ReaderModel.kt

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package models
2+
3+
import com.moandjiezana.toml.TomlWriter
4+
5+
class ReaderModel(
6+
var id: Int,
7+
var name: String,
8+
var email: String,
9+
var password: String,
10+
var role: String,
11+
var token: String,
12+
var books: List<BookModel>,
13+
var booksBorrowed: List<BookModel>,
14+
var booksReserved: List<BookModel>,
15+
var booksReturned: List<BookModel>,
16+
var booksLost: List<BookModel>,
17+
var booksDamaged: List<BookModel>,
18+
var booksBorrowedHistory: List<BookModel>,
19+
var booksReservedHistory: List<BookModel>,
20+
var booksReturnedHistory: List<BookModel>,
21+
var booksLostHistory: List<BookModel>,
22+
var booksDamagedHistory: List<BookModel>,
23+
var booksBorrowedHistoryCount: Int,
24+
var booksReservedHistoryCount: Int,
25+
var booksReturnedHistoryCount: Int,
26+
var booksLostHistoryCount: Int,
27+
var booksDamagedHistoryCount: Int,
28+
var booksBorrowedCount: Int,
29+
var booksReservedCount: Int,
30+
var booksReturnedCount: Int,
31+
var booksLostCount: Int,
32+
var booksDamagedCount: Int,
33+
var booksCount: Int,
34+
var booksBorrowedHistoryPage: Int,
35+
var booksReservedHistoryPage: Int,
36+
var booksReturnedHistoryPage: Int,
37+
var booksLostHistoryPage: Int,
38+
var booksDamagedHistoryPage: Int,
39+
var booksBorrowedPage: Int,
40+
var booksReservedPage: Int,
41+
var booksReturnedPage: Int,
42+
var booksLostPage: Int,
43+
var booksDamagedPage: Int,
44+
var booksPage: Int,
45+
var booksBorrowedHistoryPageCount: Int,
46+
var booksReservedHistoryPageCount: Int,
47+
var booksReturnedHistoryPageCount: Int,
48+
var booksLostHistoryPageCount: Int
49+
) {
50+
fun toToml(): String = TomlWriter().write(this)
51+
52+
override fun toString(): String {
53+
return "models.Reader(id=$id, name='$name', email='$email', password='$password', role='$role', token='$token', books=$books, booksBorrowed=$booksBorrowed, booksReserved=$booksReserved, booksReturned=$booksReturned, booksLost=$booksLost, booksDamaged=$booksDamaged, booksBorrowedHistory=$booksBorrowedHistory, booksReservedHistory=$booksReservedHistory, booksReturnedHistory=$booksReturnedHistory, booksLostHistory=$booksLostHistory, booksDamagedHistory=$booksDamagedHistory, booksBorrowedHistoryCount=$booksBorrowedHistoryCount, booksReservedHistoryCount=$booksReservedHistoryCount, booksReturnedHistoryCount=$booksReturnedHistoryCount, booksLostHistoryCount=$booksLostHistoryCount, booksDamagedHistoryCount=$booksDamagedHistoryCount, booksBorrowedCount=$booksBorrowedCount, booksReservedCount=$booksReservedCount, booksReturnedCount=$booksReturnedCount, booksLostCount=$booksLostCount, booksDamagedCount=$booksDamagedCount, booksCount=$booksCount, booksBorrowedHistoryPage=$booksBorrowedHistoryPage, booksReservedHistoryPage=$booksReservedHistoryPage, booksReturnedHistoryPage=$booksReturnedHistoryPage, booksLostHistoryPage=$booksLostHistoryPage, booksDamagedHistoryPage=$booksDamagedHistoryPage, booksBorrowedPage=$booksBorrowedPage, booksReservedPage=$booksReservedPage, booksReturnedPage=$booksReturnedPage, booksLostPage=$booksLostPage, booksDamagedPage=$booksDamagedPage, booksPage=$booksPage, booksBorrowedHistoryPageCount=$booksBorrowedHistoryPageCount, booksReservedHistoryPageCount=$booksReservedHistoryPageCount, booksReturnedHistoryPageCount=$booksReturnedHistoryPageCount, booksLostHistoryPageCount=$booksLostHistoryPageCount)"
54+
}
55+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package requests
2+
3+
import Environement
4+
import models.BookModel
5+
import okhttp3.*
6+
import okhttp3.MediaType.Companion.toMediaTypeOrNull
7+
import okhttp3.RequestBody.Companion.toRequestBody
8+
9+
class BookRequest {
10+
fun post(book: BookModel, callback: Callback) {
11+
val toml = book.toToml()
12+
13+
val okHttpClient = OkHttpClient()
14+
val requestBody = toml.toRequestBody("application/json".toMediaTypeOrNull())
15+
val request = Request.Builder()
16+
.method("POST", requestBody)
17+
.url(url)
18+
.build()
19+
okHttpClient.newCall(request).enqueue(callback)
20+
}
21+
22+
companion object {
23+
private var url = Environement.url + "/book"
24+
}
25+
}

0 commit comments

Comments
 (0)