future-private: add getPendingPositions request

This commit is contained in:
mahdi msr committed 2025-09-29 00:16:55 +03:30
1 parent 8d77aebb64
commit 18966eaad8
6 files changed
+411 -2

No files matched your search

+22 -2
View File
@@ -7,11 +7,12 @@ use Msr\LaravelBitunixApi\Requests\ChangeLeverageRequestContract;
use Msr\LaravelBitunixApi\Requests\ChangeMarginModeRequestContract;
use Msr\LaravelBitunixApi\Requests\FlashClosePositionRequestContract;
use Msr\LaravelBitunixApi\Requests\FutureKLineRequestContract;
use Msr\LaravelBitunixApi\Requests\GetPendingPositionsRequestContract;
use Msr\LaravelBitunixApi\Requests\Header;
use Msr\LaravelBitunixApi\Requests\PlaceOrderRequestContract;
use Psr\Http\Message\ResponseInterface;
class LaravelBitunixApi implements ChangeLeverageRequestContract, ChangeMarginModeRequestContract, FlashClosePositionRequestContract, FutureKLineRequestContract, PlaceOrderRequestContract
class LaravelBitunixApi implements ChangeLeverageRequestContract, ChangeMarginModeRequestContract, FlashClosePositionRequestContract, FutureKLineRequestContract, GetPendingPositionsRequestContract, PlaceOrderRequestContract
{
private Client $publicFutureClient;
@@ -24,7 +25,7 @@ class LaravelBitunixApi implements ChangeLeverageRequestContract, ChangeMarginMo
protected function getPrivateFutureClient(array $queryParams = [], array $body = []): Client
{
$bodyString = json_encode($body);
$bodyString = count($body) ? json_encode($body) : '';
$headers = Header::generateHeaders($queryParams, $bodyString);
return new Client([
@@ -167,4 +168,23 @@ class LaravelBitunixApi implements ChangeLeverageRequestContract, ChangeMarginMo
return $response;
}
public function getPendingPositions(?string $symbol = null, ?string $positionId = null): ResponseInterface
{
$queryParams = [];
if ($symbol != null) {
$queryParams['symbol'] = $symbol;
}
if ($positionId != null) {
$queryParams['positionId'] = $positionId;
}
$response = $this->getPrivateFutureClient($queryParams, [])->get('position/get_pending_positions', [
'query' => $queryParams,
]);
return $response;
}
}
+2
View File
@@ -7,6 +7,7 @@ use Msr\LaravelBitunixApi\Requests\ChangeLeverageRequestContract;
use Msr\LaravelBitunixApi\Requests\ChangeMarginModeRequestContract;
use Msr\LaravelBitunixApi\Requests\FlashClosePositionRequestContract;
use Msr\LaravelBitunixApi\Requests\FutureKLineRequestContract;
use Msr\LaravelBitunixApi\Requests\GetPendingPositionsRequestContract;
use Msr\LaravelBitunixApi\Requests\PlaceOrderRequestContract;
use Spatie\LaravelPackageTools\Package;
use Spatie\LaravelPackageTools\PackageServiceProvider;
@@ -37,5 +38,6 @@ class LaravelBitunixApiServiceProvider extends PackageServiceProvider
$this->app->bind(ChangeMarginModeRequestContract::class, LaravelBitunixApi::class);
$this->app->bind(PlaceOrderRequestContract::class, LaravelBitunixApi::class);
$this->app->bind(FlashClosePositionRequestContract::class, LaravelBitunixApi::class);
$this->app->bind(GetPendingPositionsRequestContract::class, LaravelBitunixApi::class);
}
}
@@ -0,0 +1,17 @@
<?php
namespace Msr\LaravelBitunixApi\Requests;
use Psr\Http\Message\ResponseInterface;
interface GetPendingPositionsRequestContract
{
/**
* Get pending positions
*
* @param string|null $symbol Trading pair (optional)
* @param string|null $positionId Position ID (optional)
* @return ResponseInterface
*/
public function getPendingPositions(?string $symbol = null, ?string $positionId = null): ResponseInterface;
}