fixed all bugs
This commit is contained in:
parent
cc6178a845
commit
042350ca59
@ -3,7 +3,20 @@
|
||||
<component name="deploymentTargetDropDown">
|
||||
<value>
|
||||
<entry key="app">
|
||||
<State />
|
||||
<State>
|
||||
<runningDeviceTargetSelectedWithDropDown>
|
||||
<Target>
|
||||
<type value="RUNNING_DEVICE_TARGET" />
|
||||
<deviceKey>
|
||||
<Key>
|
||||
<type value="SERIAL_NUMBER" />
|
||||
<value value="5l55mnq48hlndua6" />
|
||||
</Key>
|
||||
</deviceKey>
|
||||
</Target>
|
||||
</runningDeviceTargetSelectedWithDropDown>
|
||||
<timeTargetWasSelectedWithDropDown value="2023-12-15T06:33:52.521291494Z" />
|
||||
</State>
|
||||
</entry>
|
||||
</value>
|
||||
</component>
|
||||
|
@ -1,41 +0,0 @@
|
||||
<component name="InspectionProjectProfileManager">
|
||||
<profile version="1.0">
|
||||
<option name="myName" value="Project Default" />
|
||||
<inspection_tool class="PreviewAnnotationInFunctionWithParameters" enabled="true" level="ERROR" enabled_by_default="true">
|
||||
<option name="composableFile" value="true" />
|
||||
<option name="previewFile" value="true" />
|
||||
</inspection_tool>
|
||||
<inspection_tool class="PreviewApiLevelMustBeValid" enabled="true" level="ERROR" enabled_by_default="true">
|
||||
<option name="composableFile" value="true" />
|
||||
<option name="previewFile" value="true" />
|
||||
</inspection_tool>
|
||||
<inspection_tool class="PreviewDimensionRespectsLimit" enabled="true" level="WARNING" enabled_by_default="true">
|
||||
<option name="composableFile" value="true" />
|
||||
<option name="previewFile" value="true" />
|
||||
</inspection_tool>
|
||||
<inspection_tool class="PreviewFontScaleMustBeGreaterThanZero" enabled="true" level="ERROR" enabled_by_default="true">
|
||||
<option name="composableFile" value="true" />
|
||||
<option name="previewFile" value="true" />
|
||||
</inspection_tool>
|
||||
<inspection_tool class="PreviewMultipleParameterProviders" enabled="true" level="ERROR" enabled_by_default="true">
|
||||
<option name="composableFile" value="true" />
|
||||
<option name="previewFile" value="true" />
|
||||
</inspection_tool>
|
||||
<inspection_tool class="PreviewMustBeTopLevelFunction" enabled="true" level="ERROR" enabled_by_default="true">
|
||||
<option name="composableFile" value="true" />
|
||||
<option name="previewFile" value="true" />
|
||||
</inspection_tool>
|
||||
<inspection_tool class="PreviewNeedsComposableAnnotation" enabled="true" level="ERROR" enabled_by_default="true">
|
||||
<option name="composableFile" value="true" />
|
||||
<option name="previewFile" value="true" />
|
||||
</inspection_tool>
|
||||
<inspection_tool class="PreviewNotSupportedInUnitTestFiles" enabled="true" level="ERROR" enabled_by_default="true">
|
||||
<option name="composableFile" value="true" />
|
||||
<option name="previewFile" value="true" />
|
||||
</inspection_tool>
|
||||
<inspection_tool class="PreviewPickerAnnotation" enabled="true" level="ERROR" enabled_by_default="true">
|
||||
<option name="composableFile" value="true" />
|
||||
<option name="previewFile" value="true" />
|
||||
</inspection_tool>
|
||||
</profile>
|
||||
</component>
|
@ -8,7 +8,7 @@
|
||||
<uses-permission android:name="com.google.android.gms.persmission.AD_ID" />
|
||||
<application
|
||||
android:name=".CoffeeApplication"
|
||||
android:allowBackup="true"
|
||||
android:allowBackup="false"
|
||||
android:dataExtractionRules="@xml/data_extraction_rules"
|
||||
android:fullBackupContent="@xml/backup_rules"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
|
@ -29,18 +29,18 @@ interface MyServerService {
|
||||
): UserRemote
|
||||
|
||||
@GET("user/tryLogin")
|
||||
fun tryLogin(
|
||||
suspend fun tryLogin(
|
||||
@Query("login") login: String,
|
||||
@Query("password") password: String,
|
||||
): UserRemote?
|
||||
@Query("password") password: String
|
||||
): UserRemote
|
||||
|
||||
@POST("user/")
|
||||
fun createUser(
|
||||
suspend fun createUser(
|
||||
@Body user: UserRemote,
|
||||
): UserRemote
|
||||
|
||||
@PUT("user/{id}/")
|
||||
fun updateUser(
|
||||
suspend fun updateUser(
|
||||
@Path("id") id: Int,
|
||||
@Body user: UserRemote,
|
||||
): UserRemote
|
||||
@ -62,12 +62,12 @@ interface MyServerService {
|
||||
): CoffeeRemote
|
||||
|
||||
@POST("coffee/")
|
||||
fun createCoffee(
|
||||
suspend fun createCoffee(
|
||||
@Body coffee: CoffeeRemote,
|
||||
): CoffeeRemote
|
||||
|
||||
@PUT("coffee/{id}/")
|
||||
fun updateCoffee(
|
||||
suspend fun updateCoffee(
|
||||
@Path("id") id: Int,
|
||||
@Body coffee: CoffeeRemote,
|
||||
): CoffeeRemote
|
||||
@ -78,7 +78,7 @@ interface MyServerService {
|
||||
): CoffeeRemote
|
||||
|
||||
companion object {
|
||||
private const val BASE_URL = "http://192.168.0.100:8080/api/"
|
||||
private const val BASE_URL = "http://192.168.42.48:8080/api/"
|
||||
|
||||
@Volatile
|
||||
private var INSTANCE: MyServerService? = null
|
||||
|
@ -46,11 +46,11 @@ class RestCoffeeRepository(
|
||||
override suspend fun getByUid(uid: Int): Coffee =
|
||||
service.getCoffee(uid).toCoffee()
|
||||
|
||||
override fun insert(coffee: Coffee): Long {
|
||||
override suspend fun insert(coffee: Coffee): Long {
|
||||
return service.createCoffee(coffee.toCoffeeRemote()).toCoffee().uid.toLong()
|
||||
}
|
||||
|
||||
override fun update(coffee: Coffee): Int {
|
||||
override suspend fun update(coffee: Coffee): Int {
|
||||
return service.updateCoffee(coffee.uid, coffee.toCoffeeRemote()).toCoffee().uid
|
||||
}
|
||||
|
||||
|
@ -10,7 +10,7 @@ data class UserRemote(
|
||||
val fio: String = "",
|
||||
val phone: String = "",
|
||||
val password: String = "",
|
||||
val role: String = "user"
|
||||
val role: String = ""
|
||||
)
|
||||
|
||||
fun UserRemote.toUser(): User = User(
|
||||
|
@ -7,6 +7,7 @@ import androidx.paging.PagingConfig
|
||||
import androidx.paging.PagingData
|
||||
import com.zyzf.coffeepreorder.api.MyServerService
|
||||
import com.zyzf.coffeepreorder.api.coffee.CoffeeRemoteMediator
|
||||
import com.zyzf.coffeepreorder.api.model.UserRemote
|
||||
import com.zyzf.coffeepreorder.api.model.toCoffee
|
||||
import com.zyzf.coffeepreorder.api.model.toCoffeeRemote
|
||||
import com.zyzf.coffeepreorder.api.model.toUser
|
||||
@ -49,18 +50,18 @@ class RestUserRepository(
|
||||
).flow
|
||||
}
|
||||
|
||||
override suspend fun getByUid(uid: Int): User? =
|
||||
override suspend fun getByUid(uid: Int): User =
|
||||
service.getUser(uid).toUser()
|
||||
|
||||
override fun tryLogin(login: String, password: String): User? =
|
||||
service.tryLogin(login, password)?.toUser()
|
||||
override suspend fun tryLogin(login: String, password: String): User =
|
||||
service.tryLogin(login, password).toUser()
|
||||
|
||||
|
||||
override fun insert(user: User): Long {
|
||||
override suspend fun insert(user: User): Long {
|
||||
return service.createUser(user.toUserRemote()).toUser().uid.toLong()
|
||||
}
|
||||
|
||||
override fun update(user: User): Int? {
|
||||
override suspend fun update(user: User): Int {
|
||||
return service.updateUser(user.uid, user.toUserRemote()).toUser().uid
|
||||
}
|
||||
|
||||
|
@ -17,10 +17,10 @@ interface CartDao {
|
||||
@Query("select coffee.uid, coffee.name, coffee.cost, coffee.ingredients from cart join coffee on coffee.uid = cart.coffee_id and cart.count > 0 collate nocase")
|
||||
fun getAllInCart(): PagingSource<Int, Coffee>
|
||||
|
||||
@Query("select sum(coffee.cost) from cart JOIN coffee on coffee.uid = cart.coffee_id and cart.count > 0")
|
||||
@Query("select sum(coffee.cost * cart.count) from cart JOIN coffee on coffee.uid = cart.coffee_id and cart.count > 0")
|
||||
fun getSumInCart(): Double
|
||||
|
||||
@Query("select coffee.cost from cart JOIN coffee on coffee.uid = cart.coffee_id where coffee.uid = :coffeeId")
|
||||
@Query("select cart.count from cart JOIN coffee on coffee.uid = cart.coffee_id where coffee.uid = :coffeeId")
|
||||
fun getCountForCoffee(coffeeId: Int): Double
|
||||
|
||||
@Insert
|
||||
|
@ -17,7 +17,7 @@ interface UserDao {
|
||||
fun getAll(): PagingSource<Int, User>
|
||||
|
||||
@Query("select * from user where login = :login and password = :password")
|
||||
fun tryLogin(login: String, password: String): User?
|
||||
suspend fun tryLogin(login: String, password: String): User?
|
||||
|
||||
@Query("select * from user where uid = :uid")
|
||||
suspend fun getByUid(uid: Int): User?
|
||||
|
@ -7,7 +7,7 @@ import kotlinx.coroutines.flow.Flow
|
||||
interface CoffeeRepository {
|
||||
fun getAllCoffees(): Flow<PagingData<Coffee>>
|
||||
suspend fun getByUid(uid: Int): Coffee?
|
||||
fun insert(coffee: Coffee): Long
|
||||
fun update(coffee: Coffee): Int
|
||||
suspend fun insert(coffee: Coffee): Long
|
||||
suspend fun update(coffee: Coffee): Int
|
||||
suspend fun delete(coffee: Coffee)
|
||||
}
|
@ -21,9 +21,9 @@ class OfflineCoffeeRepository(private val coffeeDao: CoffeeDao) : CoffeeReposito
|
||||
fun getAllCoffeesPagingSource(): PagingSource<Int, Coffee> = coffeeDao.getAllCoffees()
|
||||
suspend fun clearCoffees() = coffeeDao.deleteAll()
|
||||
override suspend fun getByUid(uid: Int): Coffee? = coffeeDao.getByUid(uid)
|
||||
override fun insert(coffee: Coffee): Long = coffeeDao.insert(coffee)
|
||||
override suspend fun insert(coffee: Coffee): Long = coffeeDao.insert(coffee)
|
||||
suspend fun insertCoffees(coffees: List<Coffee>) =
|
||||
coffeeDao.insert(*coffees.toTypedArray())
|
||||
override fun update(coffee: Coffee): Int = coffeeDao.update(coffee)
|
||||
override suspend fun update(coffee: Coffee): Int = coffeeDao.update(coffee)
|
||||
override suspend fun delete(coffee: Coffee) = coffeeDao.delete(coffee)
|
||||
}
|
@ -20,11 +20,11 @@ class OfflineUserRepository(private val userDao: UserDao) : UserRepository {
|
||||
).flow
|
||||
fun getAllUserPagingSource(): PagingSource<Int, User> = userDao.getAll()
|
||||
override suspend fun getByUid(uid: Int): User? = userDao.getByUid(uid)
|
||||
override fun tryLogin(login: String, password: String): User? = userDao.tryLogin(login, password)
|
||||
override fun insert(user: User): Long = userDao.insert(user)
|
||||
override suspend fun tryLogin(login: String, password: String): User? = userDao.tryLogin(login, password)
|
||||
override suspend fun insert(user: User): Long = userDao.insert(user)
|
||||
fun insertUsers(users: List<User>) =
|
||||
userDao.insert(*users.toTypedArray())
|
||||
override fun update(user: User): Int? = userDao.update(user)
|
||||
override suspend fun update(user: User): Int? = userDao.update(user)
|
||||
override suspend fun delete(user: User) = userDao.delete(user)
|
||||
suspend fun clearUsers() = userDao.deleteAll()
|
||||
}
|
@ -7,8 +7,8 @@ import kotlinx.coroutines.flow.Flow
|
||||
interface UserRepository {
|
||||
fun getAll(): Flow<PagingData<User>>
|
||||
suspend fun getByUid(uid: Int): User?
|
||||
fun tryLogin(login: String, password: String): User?
|
||||
fun insert(user: User): Long
|
||||
fun update(user: User) : Int?
|
||||
suspend fun tryLogin(login: String, password: String): User?
|
||||
suspend fun insert(user: User): Long
|
||||
suspend fun update(user: User) : Int?
|
||||
suspend fun delete(user: User)
|
||||
}
|
@ -8,7 +8,7 @@ import com.zyzf.coffeepreorder.database.repository.UserRepository
|
||||
class LoginViewModel(
|
||||
private val userRepository: UserRepository
|
||||
) : ViewModel() {
|
||||
fun tryLogin(login: String, password: String): User? {
|
||||
suspend fun tryLogin(login: String, password: String): User? {
|
||||
return userRepository.tryLogin(login, password)
|
||||
}
|
||||
}
|
||||
|
@ -8,7 +8,7 @@ import com.zyzf.coffeepreorder.database.repository.UserRepository
|
||||
class RegisterViewModel(
|
||||
private val userRepository: UserRepository
|
||||
) : ViewModel() {
|
||||
fun register(user: User): User? {
|
||||
suspend fun register(user: User): User? {
|
||||
userRepository.insert(user)
|
||||
return userRepository.tryLogin(user.login, user.password)
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<network-security-config>
|
||||
<domain-config cleartextTrafficPermitted="true">
|
||||
<domain includeSubdomains="true">192.168.0.100</domain>
|
||||
<domain includeSubdomains="true">192.168.42.48</domain>
|
||||
</domain-config>
|
||||
</network-security-config>
|
@ -7,6 +7,7 @@ import jakarta.validation.Valid;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
@RestController
|
||||
@RequestMapping(WebConfiguration.REST_API + "/user")
|
||||
@ -29,7 +30,7 @@ public class UserController {
|
||||
return userService.findAllUsers(pageNo, pageSize, sortBy, sortDir);
|
||||
}
|
||||
@GetMapping("/tryLogin")
|
||||
public User tryLogin(
|
||||
public Optional<User> tryLogin(
|
||||
@RequestParam(value = "login") String login,
|
||||
@RequestParam(value = "password") String password
|
||||
){
|
||||
|
@ -8,7 +8,7 @@ import org.springframework.data.repository.query.Param;
|
||||
import java.util.Optional;
|
||||
|
||||
public interface UserRepository extends JpaRepository<User, Long> {
|
||||
@Query(value = "select * from user_u where \"LOGIN\" = :login and \"PASSWORD\" = :password", nativeQuery = true)
|
||||
@Query(value = "select * from \"USER_U\" where \"LOGIN\" = :login and \"PASSWORD\" = :password", nativeQuery = true)
|
||||
public Optional<User> tryLogin(@Param("login") String login,
|
||||
@Param("password") String password);
|
||||
|
||||
|
@ -52,9 +52,9 @@ public class UserService {
|
||||
return user.orElseThrow(() -> new UserNotFoundException(id));
|
||||
}
|
||||
@Transactional(readOnly = true)
|
||||
public User tryLogin(String login, String password) {
|
||||
public Optional<User> tryLogin(String login, String password) {
|
||||
final Optional<User> user = userRepository.tryLogin(login, password);
|
||||
return user.orElseThrow(() -> new UserNotFoundException((long)0));
|
||||
return user;
|
||||
}
|
||||
@Transactional(readOnly = true)
|
||||
public List<UserDto> findAllUsers(int pageNo, int pageSize, String sortBy, String sortDir) {
|
||||
|
@ -8,4 +8,4 @@ spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
|
||||
spring.jpa.hibernate.ddl-auto=update
|
||||
spring.h2.console.enabled=true
|
||||
spring.h2.console.settings.trace=false
|
||||
spring.h2.console.settings.web-allow-others=false
|
||||
spring.h2.console.settings.web-allow-others=true
|
Loading…
Reference in New Issue
Block a user