roles update and gradle scripts fixes
This commit is contained in:
client/src/commonMain/kotlin/dev/inmo/postssystem/client
features/roles
client
src
commonMain
kotlin
dev
inmo
postssystem
common
src
commonMain
kotlin
dev
inmo
manager
common
src
commonMain
kotlin
dev
inmo
postssystem
features
roles
manager
server
src
jvmMain
kotlin
dev
inmo
postssystem
features
server
src
jvmMain
server/src/main/java/dev/inmo/postssystem/server
@ -4,14 +4,14 @@ import dev.inmo.postssystem.features.roles.common.*
|
||||
import dev.inmo.micro_utils.ktor.client.UnifiedRequester
|
||||
import kotlinx.serialization.KSerializer
|
||||
|
||||
class ClientUsersRolesStorage<T : UserRole>(
|
||||
class ClientRolesStorage<T : Role>(
|
||||
private val baseUrl: String,
|
||||
private val unifiedRequester: UnifiedRequester,
|
||||
private val serializer: KSerializer<T>
|
||||
) : UsersRolesStorage<T>,
|
||||
ReadUsersRolesStorage<T> by ReadClientUsersRolesStorage(
|
||||
) : RolesStorage<T>,
|
||||
ReadRolesStorage<T> by ReadClientRolesStorage(
|
||||
baseUrl, unifiedRequester, serializer
|
||||
),
|
||||
WriteUsersRolesStorage<T> by WriteClientUsersRolesStorage(
|
||||
WriteRolesStorage<T> by WriteClientRolesStorage(
|
||||
baseUrl, unifiedRequester, serializer
|
||||
)
|
||||
|
@ -1,18 +1,17 @@
|
||||
package dev.inmo.postssystem.features.roles.client
|
||||
|
||||
import dev.inmo.postssystem.features.roles.common.*
|
||||
import dev.inmo.postssystem.features.users.common.UserId
|
||||
import dev.inmo.micro_utils.ktor.client.UnifiedRequester
|
||||
import dev.inmo.micro_utils.ktor.common.buildStandardUrl
|
||||
import kotlinx.serialization.KSerializer
|
||||
import kotlinx.serialization.builtins.ListSerializer
|
||||
import kotlinx.serialization.builtins.serializer
|
||||
|
||||
class ReadClientUsersRolesStorage<T : UserRole>(
|
||||
class ReadClientRolesStorage<T : Role>(
|
||||
private val baseUrl: String,
|
||||
private val unifiedRequester: UnifiedRequester,
|
||||
private val serializer: KSerializer<T>
|
||||
) : ReadUsersRolesStorage<T> {
|
||||
) : ReadRolesStorage<T> {
|
||||
private val userRolesSerializer = ListSerializer(serializer)
|
||||
|
||||
private val userRolesFullUrl = buildStandardUrl(
|
||||
@ -20,50 +19,50 @@ class ReadClientUsersRolesStorage<T : UserRole>(
|
||||
usersRolesRootPathPart
|
||||
)
|
||||
|
||||
override suspend fun getUsers(
|
||||
userRole: T
|
||||
): List<UserId> = unifiedRequester.uniget(
|
||||
override suspend fun getSubjects(
|
||||
role: T
|
||||
): List<RoleSubject> = unifiedRequester.uniget(
|
||||
buildStandardUrl(
|
||||
userRolesFullUrl,
|
||||
usersRolesGetUsersPathPart,
|
||||
usersRolesUserRoleQueryParameterName to unifiedRequester.encodeUrlQueryValue(serializer, userRole)
|
||||
usersRolesGetSubjectsPathPart,
|
||||
usersRolesRoleQueryParameterName to unifiedRequester.encodeUrlQueryValue(serializer, role)
|
||||
),
|
||||
UsersIdsSerializer
|
||||
RoleSubjectsSerializer
|
||||
)
|
||||
|
||||
override suspend fun getRoles(
|
||||
userId: UserId
|
||||
subject: RoleSubject
|
||||
): List<T> = unifiedRequester.uniget(
|
||||
buildStandardUrl(
|
||||
userRolesFullUrl,
|
||||
usersRolesGetRolesPathPart,
|
||||
usersRolesUserIdQueryParameterName to unifiedRequester.encodeUrlQueryValue(UserId.serializer(), userId)
|
||||
usersRolesRoleSubjectQueryParameterName to unifiedRequester.encodeUrlQueryValue(RoleSubject.serializer(), subject)
|
||||
),
|
||||
userRolesSerializer
|
||||
)
|
||||
|
||||
override suspend fun contains(
|
||||
userId: UserId,
|
||||
userRole: T
|
||||
subject: RoleSubject,
|
||||
role: T
|
||||
): Boolean = unifiedRequester.uniget(
|
||||
buildStandardUrl(
|
||||
userRolesFullUrl,
|
||||
usersRolesContainsPathPart,
|
||||
usersRolesUserIdQueryParameterName to unifiedRequester.encodeUrlQueryValue(UserId.serializer(), userId),
|
||||
usersRolesUserRoleQueryParameterName to unifiedRequester.encodeUrlQueryValue(serializer, userRole)
|
||||
usersRolesRoleSubjectQueryParameterName to unifiedRequester.encodeUrlQueryValue(RoleSubject.serializer(), subject),
|
||||
usersRolesRoleQueryParameterName to unifiedRequester.encodeUrlQueryValue(serializer, role)
|
||||
),
|
||||
Boolean.serializer()
|
||||
)
|
||||
|
||||
override suspend fun containsAny(
|
||||
userId: UserId,
|
||||
userRoles: List<T>
|
||||
subject: RoleSubject,
|
||||
roles: List<T>
|
||||
): Boolean = unifiedRequester.uniget(
|
||||
buildStandardUrl(
|
||||
userRolesFullUrl,
|
||||
usersRolesContainsAnyPathPart,
|
||||
usersRolesUserIdQueryParameterName to unifiedRequester.encodeUrlQueryValue(UserId.serializer(), userId),
|
||||
usersRolesUserRoleQueryParameterName to unifiedRequester.encodeUrlQueryValue(userRolesSerializer, userRoles)
|
||||
usersRolesRoleSubjectQueryParameterName to unifiedRequester.encodeUrlQueryValue(RoleSubject.serializer(), subject),
|
||||
usersRolesRoleQueryParameterName to unifiedRequester.encodeUrlQueryValue(userRolesSerializer, roles)
|
||||
),
|
||||
Boolean.serializer()
|
||||
)
|
||||
|
@ -1,18 +1,17 @@
|
||||
package dev.inmo.postssystem.features.roles.client
|
||||
|
||||
import dev.inmo.postssystem.features.roles.common.*
|
||||
import dev.inmo.postssystem.features.users.common.UserId
|
||||
import dev.inmo.micro_utils.ktor.client.UnifiedRequester
|
||||
import dev.inmo.micro_utils.ktor.common.buildStandardUrl
|
||||
import kotlinx.serialization.KSerializer
|
||||
import kotlinx.serialization.builtins.serializer
|
||||
|
||||
class WriteClientUsersRolesStorage<T : UserRole>(
|
||||
class WriteClientRolesStorage<T : Role>(
|
||||
private val baseUrl: String,
|
||||
private val unifiedRequester: UnifiedRequester,
|
||||
private val serializer: KSerializer<T>
|
||||
) : WriteUsersRolesStorage<T> {
|
||||
private val wrapperSerializer = UserRolesStorageIncludeExcludeWrapper.serializer(
|
||||
) : WriteRolesStorage<T> {
|
||||
private val wrapperSerializer = RolesStorageIncludeExcludeWrapper.serializer(
|
||||
serializer
|
||||
)
|
||||
private val userRolesFullUrl = buildStandardUrl(
|
||||
@ -29,23 +28,23 @@ class WriteClientUsersRolesStorage<T : UserRole>(
|
||||
)
|
||||
|
||||
override suspend fun include(
|
||||
userId: UserId,
|
||||
userRole: T
|
||||
subject: RoleSubject,
|
||||
role: T
|
||||
): Boolean = unifiedRequester.unipost(
|
||||
includeFullUrl,
|
||||
wrapperSerializer to UserRolesStorageIncludeExcludeWrapper(
|
||||
userId, userRole
|
||||
wrapperSerializer to RolesStorageIncludeExcludeWrapper(
|
||||
subject, role
|
||||
),
|
||||
Boolean.serializer()
|
||||
)
|
||||
|
||||
override suspend fun exclude(
|
||||
userId: UserId,
|
||||
userRole: T
|
||||
subject: RoleSubject,
|
||||
role: T
|
||||
): Boolean = unifiedRequester.unipost(
|
||||
excludeFullUrl,
|
||||
wrapperSerializer to UserRolesStorageIncludeExcludeWrapper(
|
||||
userId, userRole
|
||||
wrapperSerializer to RolesStorageIncludeExcludeWrapper(
|
||||
subject, role
|
||||
),
|
||||
Boolean.serializer()
|
||||
)
|
||||
|
Reference in New Issue
Block a user