-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[server][client] client에서 필요한 pagination data API요청 #226
Comments
typeorm reference conditional where clause in querybuilder
|
위의 예시에서 totalCDSs는 전체 CDS인가요? status 등의 필터가 적용된 후의 CDS 개수인가요 |
전체 CDS의 갯수입니다. client에서는 CDS swaps를 페이지별로 1번부터 10번, 11번 부터 20번 끊어서 그때그때 서버에 get을 요청하기 때문에 |
알겠습니다. 그리고 CDS라고 말하면 용어가 헷갈리는데, CDS로 부터 파생된 개별 계약은 swap이라고 정의했으면 좋겠습니다. 따라서 api 응답도 아래와 같이 드리면 안될까요?
|
네 알겠습니다. 위와 같이 주시면 감사하겠습니다! |
LIMIT를 명시하지 않고 OFFSET을 입력했을 경우 아래와 같은 오류 발생하므로
아니면 기본 LIMIT를 서버에서 정의할 수도 있습니다. |
LIMIT을 기본적으로 서버에서 정해주는 편이 더 간단할듯 합니다. LIMIT이 입력되지 않은 경우 10개로 넘겨주시면 감사하겠습니다. |
반환 양식은 아래와 같습니다. {
"totalSwapCount":39,
"filteredSwapCount":39,
"swaps":[<swap data>],
"offset":0,
"limit":10,
"statusFilter":"all",
"addressFilter":null
} 현재 쿼리로 보낼 수 있는 인자는 다음과 같습니다. offset 다음 배포판에서는 seller, buyer 기준으로 필터도 가능합니다. address > buyer > seller 순으로 우선순위가 적용되어 하나의 필터만 작동하며, 상위 필터가 있는 경우 하위 필터는 무시됩니다. |
위 엔드포인트로 get요청을 보내면 아래와 같은 데이터가 전달됩니다. {
"totalSwapCount":39,
"offset":0,
"limit":10,
"statusFilter":"all",
"addressFilter":null,
"sellerFilter":null,
"buyerFilter":null
} |
status가 잘못 지정되어서 그렇습니다. inactive, pending, 등등 인데 컨트랙트 참조 바랍니다. |
아아 staus 가 오타군요 |
아래와 같은 데이터를 반환합니다😭 {
"totalSwapCount":39,
"offset":0,
"limit":10,
"statusFilter":"pending",
"addressFilter":null,
"sellerFilter":null,
"buyerFilter":null
} |
앗 바로 수정해서 올리겠습니다. |
오래 기다리셨습니다. 수정하고 배포했습니다. |
아닙니다 빠른 조치 감사합니다! |
두 개의 라우터가 추가되었습니다. GET /users/my/swaps : 나와 관련 있는 모든 스왑의 정보를 응답으로 줍니다. {
"address": "0x73baecc02919c375ad756de355d89538720d725c",
"totalSwapCount": 11,
"swaps": [
{
"swapId": 8,
"contractAddress": "0x39beb4cce2dd17eee785609a1f905c96e0ad6e31",
"initialAssetPrice": 24000,
"amountOfAssets": 2,
"totalAssets": 48000,
"premium": 96,
"premiumRate": 2,
"dropRate": "0.1000",
"premiumInterval": 2419200,
"remainPremiumRounds": 1,
"totalPremiumRounds": 1,
"sellerDeposit": "4800",
"buyerDeposit": "288",
"claimPrice": "21600",
"liquidationPrice": "21600",
"status": "active",
"updatableStatus": null,
"createdAt": 1675524144,
"updatedAt": 1675524144,
"lastPaidAt": null,
"terminatedAt": null,
"deletedAt": null,
"seller": "0x2ef6e388a4f3ad0d3b11773528705d40b9a0d4ff",
"buyer": "0x73baecc02919c375ad756de355d89538720d725c"
},
{
"swapId": 9,
"contractAddress": "0x7b7ff84bd9cf3adf547af8d424cb7fc09a689180",
"initialAssetPrice": 24000,
"amountOfAssets": 3,
"totalAssets": 72000,
"premium": 360,
"premiumRate": 2,
"dropRate": "0.2500",
"premiumInterval": 2419200,
"remainPremiumRounds": 4,
"totalPremiumRounds": 4,
"sellerDeposit": "18000",
"buyerDeposit": "1080",
"claimPrice": "18000",
"liquidationPrice": "18000",
"status": "inactive",
"updatableStatus": null,
"createdAt": 1675524444,
"updatedAt": 1675560589,
"lastPaidAt": null,
"terminatedAt": 1675560589,
"deletedAt": null,
"seller": "0x73baecc02919c375ad756de355d89538720d725c",
"buyer": null
},
]
} GET /users/my/transactions : 나와 관련있는 모든 스왑의 트랜잭션 정보를 응답으로 줍니다. 응답으로 받은 트랜잭션은 내가 아니라 거래상대방이 발생시킨 트랜잭션일 수 있습니다. {
"address": "0x73baecc02919c375ad756de355d89538720d725c",
"totaltransactionCount": 21,
"transactions": [
{
"txHash": "0xa3a22e42a6996f1f3d61fcdd2443d577a20d8c4b4eaa3301e2bc8e0a2f4d0fb3",
"blockNum": 53798,
"event": "AcceptSwap",
"createdAt": 1675583684,
"updatedAt": 1675583684,
"deletedAt": null,
"swapId": 8
},
{
"txHash": "0xd54a8dc766e2e59a1ffec261429969087b80cce50d502f0c98dc7ac06c59e73e",
"blockNum": 41890,
"event": "CreateSwap",
"createdAt": 1675524144,
"updatedAt": 1675524144,
"deletedAt": null,
"swapId": 8
},
]
} |
하는김에 유사한 두 개의 라우터가 더 추가되었습니다. GET /users/:address/swaps |
완료되었으므로 닫습니다. |
1. mypage에 필요한 API
https://nodeauction.42msnsnsfoav6.ap-northeast-2.cs.amazonlightsail.com/users/my
위와 같은 엔드포인트로 mypage data를 요청합니다.
현재 API응답은 아래와 같은 data로 들어오는데 address, boughtCount, email, nickname, soldCount를 사용할 예정입니다.
크게 변경하실 사항 없이 그대로 데이터 넘겨주시면 됩니다.
2.swaps filtering에 필요한 API
see more page에서 한 페이지에 10개의 CDS card를 보여줄려합니다.
제일 나중에 들어온 CDS가 1번으로 나올 수 있도록 해주시면 감사하겠습니다.
(현재는 모든 swaps데이터를 들고온다음 client에서 필터링하고 있습니다.)
ex)
proposed swaps를 1번부터 10번까지 API 호출합니다.
https://nodeauction.42msnsnsfoav6.ap-northeast-2.cs.amazonlightsail.com/swaps?staus=proposed&offset=0&limit=10
아래와 같은 데이터를 얻기를 원합니다.
마찬가지로
proposed swaps를 11번부터 20번까지 API호출합니다.
https://nodeauction.42msnsnsfoav6.ap-northeast-2.cs.amazonlightsail.com/swaps?staus=proposed&offset=11&limit=20
accepted swaps를 1번부터 10번까지 API호출합니다.
https://nodeauction.42msnsnsfoav6.ap-northeast-2.cs.amazonlightsail.com/swaps?staus=accepted&offset=0&limit=10
2-1.user address filtering
2번의 API데이터에서 user address를 추가로 필터링합니다.
ex)
'0x3434324384738291473289' address를 가진 유저가 연관되어있는 accepted swaps를 1번부터 10번까지 API 호출합니다.
https://nodeauction.42msnsnsfoav6.ap-northeast-2.cs.amazonlightsail.com/swaps?staus=proposed&address=0x3434324384738291473289&offset=0&limit=10
The text was updated successfully, but these errors were encountered: