@@ -78,23 +78,62 @@ interface TradeHistoryAPIResponse {
7878 status : number ;
7979 assets_given ?: HistoryAsset [ ] ;
8080 assets_received ?: HistoryAsset [ ] ;
81+ time_init : number ;
8182 time_escrow_end ?: string ;
8283 time_settlement ?: number ;
8384 rollback_trade ?: string ;
8485 } [ ] ;
8586 } ;
8687}
8788
88- export async function getTradeHistoryFromAPI ( maxTrades : number ) : Promise < TradeHistoryStatus [ ] > {
89+ export async function getTradeHistoryFromAPI (
90+ maxTrades : number ,
91+ opts ?: {
92+ startAfterTime ?: number ;
93+ startAfterTradeID ?: string ;
94+ navigatingBack ?: boolean ;
95+ getDescriptions ?: boolean ;
96+ includeFailed ?: boolean ;
97+ includeTotal ?: boolean ;
98+ language ?: string ;
99+ }
100+ ) : Promise < TradeHistoryStatus [ ] > {
89101 const access = await getAccessToken ( ) ;
90102
103+ let url = `https://api.steampowered.com/IEconService/GetTradeHistory/v1/?access_token=${ access . token } &max_trades=${ maxTrades } ` ;
104+
105+ if ( opts ?. startAfterTime ) {
106+ url += `&start_after_time=${ opts . startAfterTime } ` ;
107+ }
108+
109+ if ( opts ?. startAfterTradeID ) {
110+ url += `&start_after_tradeid=${ opts . startAfterTradeID } ` ;
111+ }
112+
113+ if ( opts ?. navigatingBack !== undefined ) {
114+ url += `&navigating_back=${ opts . navigatingBack } ` ;
115+ }
116+
117+ if ( opts ?. getDescriptions !== undefined ) {
118+ url += `&get_descriptions=${ opts . getDescriptions } ` ;
119+ }
120+
121+ if ( opts ?. includeFailed !== undefined ) {
122+ url += `&include_failed=${ opts . includeFailed } ` ;
123+ }
124+
125+ if ( opts ?. includeTotal !== undefined ) {
126+ url += `&include_total=${ opts . includeTotal } ` ;
127+ }
128+
129+ if ( opts ?. language ) {
130+ url += `&language=${ opts . language } ` ;
131+ }
132+
91133 // This only works if they have granted permission for https://api.steampowered.com
92- const resp = await fetch (
93- `https://api.steampowered.com/IEconService/GetTradeHistory/v1/?access_token=${ access . token } &max_trades=${ maxTrades } ` ,
94- {
95- credentials : 'include' ,
96- }
97- ) ;
134+ const resp = await fetch ( url , {
135+ credentials : 'include' ,
136+ } ) ;
98137
99138 if ( resp . status !== 200 ) {
100139 throw new Error ( 'invalid status' ) ;
@@ -119,6 +158,7 @@ export async function getTradeHistoryFromAPI(maxTrades: number): Promise<TradeHi
119158 } ) ,
120159 trade_id : e . tradeid ,
121160 time_settlement : e . time_settlement ,
161+ time_init : e . time_init ,
122162 status : e . status ,
123163 rollback_trade : e . rollback_trade ,
124164 } as TradeHistoryStatus ;
@@ -156,6 +196,7 @@ function parseTradeHistoryHTML(body: string): TradeHistoryStatus[] {
156196 given_assets : [ ] ,
157197 trade_id : '' ,
158198 time_settlement : 0 ,
199+ time_init : 0 ,
159200 status : 0 ,
160201 rollback_trade : '' ,
161202 } as TradeHistoryStatus ;
0 commit comments