roles update and gradle scripts fixes
This commit is contained in:
@@ -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