Skip to content
This repository was archived by the owner on Oct 21, 2024. It is now read-only.

Commit fd9aaa2

Browse files
author
kahverengi
committed
Add name and surname fields to register and UserDao
1 parent 88b8411 commit fd9aaa2

File tree

5 files changed

+89
-13
lines changed

5 files changed

+89
-13
lines changed

src/main/kotlin/com/parnote/db/DatabaseManager.kt

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
package com.parnote.db
22

33
import com.parnote.config.ConfigManager
4-
import com.parnote.db.migration.DatabaseMigration_1_2
5-
import com.parnote.db.migration.DatabaseMigration_2_3
6-
import com.parnote.db.migration.DatabaseMigration_3_4
7-
import com.parnote.db.migration.DatabaseMigration_4_5
4+
import com.parnote.db.migration.*
85
import io.vertx.core.AsyncResult
96
import io.vertx.core.Vertx
107
import io.vertx.core.logging.Logger
@@ -29,13 +26,14 @@ class DatabaseManager(
2926
DatabaseMigration_1_2(),
3027
DatabaseMigration_2_3(),
3128
DatabaseMigration_3_4(),
32-
DatabaseMigration_4_5()
29+
DatabaseMigration_4_5(),
30+
DatabaseMigration_5_6()
3331
)
3432
}
3533

3634
companion object {
37-
const val DATABASE_SCHEME_VERSION = 5
38-
const val DATABASE_SCHEME_VERSION_INFO = "Add note table"
35+
const val DATABASE_SCHEME_VERSION = 6
36+
const val DATABASE_SCHEME_VERSION_INFO = "Add name and surname fields to user table"
3937
}
4038

4139
init {

src/main/kotlin/com/parnote/db/entity/UserDaoImpl.kt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ class UserDaoImpl(override val tableName: String = "user") : DaoImpl(), UserDao
2121
"""
2222
CREATE TABLE IF NOT EXISTS `${getTablePrefix() + tableName}` (
2323
`id` int NOT NULL AUTO_INCREMENT,
24+
`name` varchar(255) NOT NULL,
25+
`surname` varchar(255) NOT NULL,
2426
`username` varchar(16) NOT NULL UNIQUE,
2527
`email` varchar(255) NOT NULL UNIQUE,
2628
`password` varchar(255) NOT NULL,
@@ -113,14 +115,16 @@ class UserDaoImpl(override val tableName: String = "user") : DaoImpl(), UserDao
113115
handler: (isSuccessful: Result?, asyncResult: AsyncResult<*>) -> Unit
114116
) {
115117
val query =
116-
"INSERT INTO `${getTablePrefix() + tableName}` (username, email, password, permission_id, registered_ip, secret_key, public_key, register_date) " +
117-
" VALUES (?, ?, ?, ?, ?, ?, ?, ?); "
118+
"INSERT INTO `${getTablePrefix() + tableName}` (name, surname, username, email, password, permission_id, registered_ip, secret_key, public_key, register_date) " +
119+
" VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?); "
118120

119121
val key = Keys.keyPairFor(SignatureAlgorithm.RS256)
120122

121123
sqlConnection.queryWithParams(
122124
query,
123125
JsonArray()
126+
.add(user.name)
127+
.add(user.surname)
124128
.add(user.username)
125129
.add(user.email)
126130
.add(DigestUtils.md5Hex(user.password))
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package com.parnote.db.migration
2+
3+
import com.parnote.db.DatabaseMigration
4+
import io.vertx.core.AsyncResult
5+
import io.vertx.ext.sql.SQLConnection
6+
7+
@Suppress("ClassName")
8+
class DatabaseMigration_5_6 : DatabaseMigration() {
9+
override val FROM_SCHEME_VERSION = 5
10+
override val SCHEME_VERSION = 6
11+
override val SCHEME_VERSION_INFO = "Add name and surname fields to user table"
12+
13+
override val handlers: List<(sqlConnection: SQLConnection, handler: (asyncResult: AsyncResult<*>) -> Unit) -> SQLConnection> =
14+
listOf(
15+
addNameFieldToUserTable(),
16+
addSurnameFieldToUserTable()
17+
)
18+
19+
private fun addNameFieldToUserTable(): (sqlConnection: SQLConnection, handler: (asyncResult: AsyncResult<*>) -> Unit) -> SQLConnection =
20+
{ sqlConnection, handler ->
21+
sqlConnection.query(
22+
"""
23+
ALTER TABLE `${getTablePrefix()}user`
24+
ADD `name` varchar(255) NOT NULL;
25+
"""
26+
) {
27+
handler.invoke(it)
28+
}
29+
}
30+
31+
private fun addSurnameFieldToUserTable(): (sqlConnection: SQLConnection, handler: (asyncResult: AsyncResult<*>) -> Unit) -> SQLConnection =
32+
{ sqlConnection, handler ->
33+
sqlConnection.query(
34+
"""
35+
ALTER TABLE `${getTablePrefix()}user`
36+
ADD `surname` varchar(255) NOT NULL;
37+
"""
38+
) {
39+
handler.invoke(it)
40+
}
41+
}
42+
}

src/main/kotlin/com/parnote/db/model/User.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ package com.parnote.db.model
22

33
data class User(
44
val id: Int,
5+
val name: String,
6+
val surname: String,
57
val username: String,
68
val email: String,
79
val password: String,

src/main/kotlin/com/parnote/route/api/RegisterAPI.kt

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ class RegisterAPI : Api() {
6363
termsBox,
6464
reCaptcha,
6565
handler,
66-
(this::validateFormHandler)(lang, handler, email, username, password, ipAddress)
66+
(this::validateFormHandler)(lang, handler, email, name, surname, username, password, ipAddress)
6767
)
6868
}
6969

@@ -186,6 +186,8 @@ class RegisterAPI : Api() {
186186
lang: String,
187187
handler: (result: Result) -> Unit,
188188
email: String,
189+
name: String,
190+
surname: String,
189191
username: String,
190192
password: String,
191193
ipAddress: String
@@ -195,6 +197,8 @@ class RegisterAPI : Api() {
195197
lang,
196198
handler,
197199
email,
200+
name,
201+
surname,
198202
username,
199203
password,
200204
ipAddress
@@ -206,6 +210,8 @@ class RegisterAPI : Api() {
206210
lang: String,
207211
handler: (result: Result) -> Unit,
208212
email: String,
213+
name: String,
214+
surname: String,
209215
username: String,
210216
password: String,
211217
ipAddress: String
@@ -219,14 +225,26 @@ class RegisterAPI : Api() {
219225
databaseManager.getDatabase().userDao.isEmailExists(
220226
email,
221227
sqlConnection,
222-
(this::isEmailExistsHandler)(lang, handler, email, username, password, ipAddress, sqlConnection)
228+
(this::isEmailExistsHandler)(
229+
lang,
230+
handler,
231+
email,
232+
name,
233+
surname,
234+
username,
235+
password,
236+
ipAddress,
237+
sqlConnection
238+
)
223239
)
224240
}
225241

226242
private fun isEmailExistsHandler(
227243
lang: String,
228244
handler: (result: Result) -> Unit,
229245
email: String,
246+
name: String,
247+
surname: String,
230248
username: String,
231249
password: String,
232250
ipAddress: String,
@@ -251,14 +269,26 @@ class RegisterAPI : Api() {
251269
databaseManager.getDatabase().userDao.isUsernameExists(
252270
username,
253271
sqlConnection,
254-
(this::isUsernameExistsHandler)(lang, handler, email, username, password, ipAddress, sqlConnection)
272+
(this::isUsernameExistsHandler)(
273+
lang,
274+
handler,
275+
email,
276+
name,
277+
surname,
278+
username,
279+
password,
280+
ipAddress,
281+
sqlConnection
282+
)
255283
)
256284
}
257285

258286
private fun isUsernameExistsHandler(
259287
lang: String,
260288
handler: (result: Result) -> Unit,
261289
email: String,
290+
name: String,
291+
surname: String,
262292
username: String,
263293
password: String,
264294
ipAddress: String,
@@ -282,7 +312,7 @@ class RegisterAPI : Api() {
282312

283313
RegisterUtil.register(
284314
databaseManager,
285-
User(-1, username, email, password, ipAddress),
315+
User(-1, name, surname, username, email, password, ipAddress),
286316
sqlConnection,
287317
(this::registerHandler)(lang, handler, username, sqlConnection)
288318
)

0 commit comments

Comments
 (0)