🐛 Fix can repeat using a same order
This commit is contained in:
		@@ -43,6 +43,7 @@ class SnCommand(private val sn: SnService, private val eco: Economy?) : CommandE
 | 
			
		||||
                    val order: SnOrder
 | 
			
		||||
                    try {
 | 
			
		||||
                        order = orderSrv.getOrder(orderNumber);
 | 
			
		||||
                        orderSrv.cancelOrder(orderNumber);
 | 
			
		||||
                    } catch (_: Exception) {
 | 
			
		||||
                        p0.sendMessage(ChatColor.RED.toString() + "An error occurred while pulling transaction. Make sure the order is exists then try again later.")
 | 
			
		||||
                        return true;
 | 
			
		||||
 
 | 
			
		||||
@@ -19,6 +19,14 @@ data class SnOrderRequest(
 | 
			
		||||
    val amount: Double
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@Serializable
 | 
			
		||||
data class SnOrderCancelRequest(
 | 
			
		||||
    @SerialName("client_id")
 | 
			
		||||
    val clientId: String,
 | 
			
		||||
    @SerialName("client_secret")
 | 
			
		||||
    val clientSecret: String,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@Serializable
 | 
			
		||||
data class SnOrder(
 | 
			
		||||
    val id: Long,
 | 
			
		||||
@@ -80,4 +88,23 @@ class SnOrderService(private val sn: SnService) {
 | 
			
		||||
            return out
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fun cancelOrder(id: Long): SnOrder {
 | 
			
		||||
        val body = SnOrderCancelRequest(
 | 
			
		||||
            sn.clientId,
 | 
			
		||||
            sn.clientSecret,
 | 
			
		||||
        );
 | 
			
		||||
        val request = Request.Builder()
 | 
			
		||||
            .url(sn.getUrl("wa", "/orders/$id/cancel"))
 | 
			
		||||
            .post(Json.encodeToString(body).toRequestBody("application/json".toMediaTypeOrNull()))
 | 
			
		||||
            .build()
 | 
			
		||||
 | 
			
		||||
        sn.client.newCall(request).execute().use { response ->
 | 
			
		||||
            if (!response.isSuccessful) throw IOException("Unexpected code $response")
 | 
			
		||||
            val responseBody = response.body!!.string()
 | 
			
		||||
            val out = json.decodeFromString<SnOrder>(responseBody)
 | 
			
		||||
 | 
			
		||||
            return out
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user