mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-12 18:27:23 +01:00
feat(Network): implement full listing deletion process
This commit is contained in:
parent
6eb9dfefe1
commit
89314e0c0e
5 changed files with 63 additions and 17 deletions
|
|
@ -22,7 +22,7 @@ namespace Dalamud.Game.Network.MarketBoardUploaders
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Upload information about a purchase this client has made.
|
/// Upload information about a purchase this client has made.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="purchase">That thing with Louisiana.</param>
|
/// <param name="purchaseHandler">The purchase handler data associated with the sale.</param>
|
||||||
void UploadPurchase(MarketBoardPurchase purchase);
|
void UploadPurchase(MarketBoardPurchaseHandler purchaseHandler);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,46 @@
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
|
namespace Dalamud.Game.Network.MarketBoardUploaders.Universalis
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Request payload for market board purchases.
|
||||||
|
/// </summary>
|
||||||
|
public class UniversalisItemListingDeleteRequest
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the object ID of the retainer associated with the sale.
|
||||||
|
/// </summary>
|
||||||
|
[JsonProperty("retainerID")]
|
||||||
|
public ulong RetainerId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the object ID of the item listing.
|
||||||
|
/// </summary>
|
||||||
|
[JsonProperty("listingID")]
|
||||||
|
public ulong ListingId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the item ID of the item that was purchased.
|
||||||
|
/// </summary>
|
||||||
|
[JsonProperty("itemID")]
|
||||||
|
public uint ItemId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the quantity of the item that was purchased.
|
||||||
|
/// </summary>
|
||||||
|
[JsonProperty("quantity")]
|
||||||
|
public uint Quantity { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the unit price of the item.
|
||||||
|
/// </summary>
|
||||||
|
[JsonProperty("pricePerUnit")]
|
||||||
|
public uint PricePerUnit { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the uploader ID.
|
||||||
|
/// </summary>
|
||||||
|
[JsonProperty("uploaderID")]
|
||||||
|
public string UploaderId { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
namespace Dalamud.Game.Network.MarketBoardUploaders.Universalis
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Request payload for market board purchases.
|
|
||||||
/// </summary>
|
|
||||||
public class UniversalisMarketBoardPurchaseRequest
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -138,21 +138,30 @@ namespace Dalamud.Game.Network.Universalis.MarketBoardUploaders
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public void UploadPurchase(MarketBoardPurchase purchase)
|
public void UploadPurchase(MarketBoardPurchaseHandler purchaseHandler)
|
||||||
{
|
{
|
||||||
using var client = new WebClient();
|
using var client = new WebClient();
|
||||||
client.Headers.Add(HttpRequestHeader.ContentType, "application/json");
|
client.Headers.Add(HttpRequestHeader.ContentType, "application/json");
|
||||||
client.Headers.Add(HttpRequestHeader.Authorization, ApiKey);
|
client.Headers.Add(HttpRequestHeader.Authorization, ApiKey);
|
||||||
|
|
||||||
var purchaseRequest = new UniversalisMarketBoardPurchaseRequest();
|
var itemId = purchaseHandler.CatalogId;
|
||||||
|
|
||||||
var worldId = this.dalamud.ClientState.LocalPlayer?.CurrentWorld.Id ?? 0;
|
var worldId = this.dalamud.ClientState.LocalPlayer?.CurrentWorld.Id ?? 0;
|
||||||
|
|
||||||
|
var purchaseRequest = new UniversalisItemListingDeleteRequest
|
||||||
|
{
|
||||||
|
ItemId = itemId,
|
||||||
|
PricePerUnit = purchaseHandler.PricePerUnit,
|
||||||
|
Quantity = purchaseHandler.ItemQuantity,
|
||||||
|
ListingId = purchaseHandler.ListingId,
|
||||||
|
RetainerId = purchaseHandler.RetainerId,
|
||||||
|
UploaderId = this.dalamud.ClientState.LocalContentId.ToString(),
|
||||||
|
};
|
||||||
|
|
||||||
var purchaseUpload = JsonConvert.SerializeObject(purchaseRequest);
|
var purchaseUpload = JsonConvert.SerializeObject(purchaseRequest);
|
||||||
client.UploadString(ApiBase + $"/{purchase.CatalogId}/{worldId}/delete", "POST", purchaseUpload);
|
client.UploadString(ApiBase + $"/{itemId}/{worldId}/delete", "POST", purchaseUpload);
|
||||||
Log.Verbose(purchaseUpload);
|
Log.Verbose(purchaseUpload);
|
||||||
|
|
||||||
Log.Verbose("Universalis tax upload completed.");
|
Log.Verbose("Universalis purchase upload completed.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -282,7 +282,7 @@ namespace Dalamud.Game.Network
|
||||||
|| purchase.CatalogId == this.marketBoardPurchaseHandler.CatalogId + 1000000))
|
|| purchase.CatalogId == this.marketBoardPurchaseHandler.CatalogId + 1000000))
|
||||||
{ // HQ
|
{ // HQ
|
||||||
Log.Information("Bought " + purchase.ItemQuantity + "x " + this.marketBoardPurchaseHandler.CatalogId + " for " + (this.marketBoardPurchaseHandler.PricePerUnit * purchase.ItemQuantity) + " gils, listing id is " + this.marketBoardPurchaseHandler.ListingId);
|
Log.Information("Bought " + purchase.ItemQuantity + "x " + this.marketBoardPurchaseHandler.CatalogId + " for " + (this.marketBoardPurchaseHandler.PricePerUnit * purchase.ItemQuantity) + " gils, listing id is " + this.marketBoardPurchaseHandler.ListingId);
|
||||||
Task.Run(() => this.uploader.UploadPurchase(purchase));
|
Task.Run(() => this.uploader.UploadPurchase(this.marketBoardPurchaseHandler));
|
||||||
}
|
}
|
||||||
|
|
||||||
this.marketBoardPurchaseHandler = null;
|
this.marketBoardPurchaseHandler = null;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue