call mammon for single scan

This commit is contained in:
Sirttas
2026-06-13 12:31:01 +02:00
parent 3348b9f668
commit cc3bdccd9a
4 changed files with 453 additions and 128 deletions
+299 -55
View File
@@ -19,7 +19,7 @@ paths:
required: true
schema:
type: string
format: uuid
default: ""
responses:
"200":
description: The rule book
@@ -29,6 +29,13 @@ paths:
$ref: "#/components/schemas/RuleBookResponse"
"404":
description: No rule book with this id
content:
'*/*':
schema:
type: string
additionalProperties:
default: ""
default: ""
put:
tags:
- rule-book
@@ -41,7 +48,7 @@ paths:
required: true
schema:
type: string
format: uuid
default: ""
requestBody:
description: New state of the rule book
content:
@@ -61,6 +68,13 @@ paths:
Returned when:
- the request is invalid (e.g. blank name)
- the rule book is the default rule book, which cannot be modified
content:
'*/*':
schema:
type: string
additionalProperties:
default: ""
default: ""
delete:
tags:
- rule-book
@@ -73,15 +87,29 @@ paths:
required: true
schema:
type: string
format: uuid
default: ""
responses:
"204":
description: The rule book was deleted
content:
'*/*':
schema:
type: string
additionalProperties:
default: ""
default: ""
"400":
description: |-
Returned when:
- the rule book is associated to a character
- the rule book is the default rule book, which cannot be deleted
content:
'*/*':
schema:
type: string
additionalProperties:
default: ""
default: ""
/ledgers/main/{ledgerId}:
put:
tags:
@@ -95,7 +123,7 @@ paths:
required: true
schema:
type: string
format: uuid
default: ""
requestBody:
description: New state of the main ledger
content:
@@ -115,8 +143,22 @@ paths:
Returned when:
- the ledger is not a main ledger
- the request is invalid
content:
'*/*':
schema:
type: string
additionalProperties:
default: ""
default: ""
"404":
description: No ledger with this id
content:
'*/*':
schema:
type: string
additionalProperties:
default: ""
default: ""
/ledgers/combined/{ledgerId}:
put:
tags:
@@ -130,7 +172,7 @@ paths:
required: true
schema:
type: string
format: uuid
default: ""
requestBody:
description: New state of the combined ledger
content:
@@ -150,8 +192,22 @@ paths:
Returned when:
- the ledger is not a combined ledger
- the request is invalid
content:
'*/*':
schema:
type: string
additionalProperties:
default: ""
default: ""
"404":
description: No ledger with this id
content:
'*/*':
schema:
type: string
additionalProperties:
default: ""
default: ""
/characters/{characterId}/rule-book:
get:
tags:
@@ -164,8 +220,8 @@ paths:
description: Id of the character
required: true
schema:
type: integer
format: int64
type: string
default: ""
responses:
"200":
description: The rule book assignment of the character
@@ -175,8 +231,22 @@ paths:
$ref: "#/components/schemas/CharacterRuleBookResponse"
"400":
description: Invalid character id
content:
'*/*':
schema:
type: string
additionalProperties:
default: ""
default: ""
"404":
description: No rule book assigned to this character
content:
'*/*':
schema:
type: string
additionalProperties:
default: ""
default: ""
put:
tags:
- character-rule-book
@@ -188,8 +258,8 @@ paths:
description: Id of the character
required: true
schema:
type: integer
format: int64
type: string
default: ""
requestBody:
description: Rule book and ledger bindings to assign
content:
@@ -211,6 +281,13 @@ paths:
- a bound ledger does not exist
- a bound ledger is not a main or system ledger
- a required ledger binding is missing
content:
'*/*':
schema:
type: string
additionalProperties:
default: ""
default: ""
/rule-books:
get:
tags:
@@ -246,14 +323,26 @@ paths:
description: URL of the created rule book
style: simple
schema:
type: string
format: uri
type: array
contains:
default: ""
items:
default: ""
unevaluatedItems:
default: ""
content:
'*/*':
schema:
$ref: "#/components/schemas/RuleBookResponse"
"400":
description: Invalid request (e.g. blank name)
content:
'*/*':
schema:
type: string
additionalProperties:
default: ""
default: ""
/process-activities:
post:
tags:
@@ -284,14 +373,26 @@ paths:
description: URL of the created main ledger
style: simple
schema:
type: string
format: uri
type: array
contains:
default: ""
items:
default: ""
unevaluatedItems:
default: ""
content:
'*/*':
schema:
$ref: "#/components/schemas/MainLedgerResponse"
"400":
description: Invalid request (e.g. blank name)
content:
'*/*':
schema:
type: string
additionalProperties:
default: ""
default: ""
/ledgers/combined:
post:
tags:
@@ -313,8 +414,13 @@ paths:
description: URL of the created combined ledger
style: simple
schema:
type: string
format: uri
type: array
contains:
default: ""
items:
default: ""
unevaluatedItems:
default: ""
content:
'*/*':
schema:
@@ -322,6 +428,13 @@ paths:
"400":
description: "Invalid request (e.g. blank name, a member ledger missing\
\ or already contained)"
content:
'*/*':
schema:
type: string
additionalProperties:
default: ""
default: ""
/activity/fetch:
post:
tags:
@@ -343,13 +456,20 @@ paths:
description: Id of the character
required: true
schema:
type: integer
format: int64
type: string
default: ""
responses:
"200":
description: New activities fetched and stored
"400":
description: No character with this id
content:
'*/*':
schema:
type: string
additionalProperties:
default: ""
default: ""
/rule-books/script-definitions:
get:
tags:
@@ -363,6 +483,65 @@ paths:
text/plain:
schema:
type: string
/market/{marketTypeId}/scan:
get:
tags:
- market
summary: "Scan a single market type, returning its volume-weighted price quartiles"
operationId: scanMarketType
parameters:
- name: marketTypeId
in: path
description: The market type id to scan
required: true
schema:
type: string
default: ""
- name: days
in: query
description: Number of most recent days of history to analyse
required: false
schema:
type: integer
format: int32
default: 365
minimum: 1
- name: brokerFee
in: query
description: "Broker fee as a fraction (e.g. 0.015 for 1.5%), paid on both\
\ buy and sell orders"
required: false
schema:
type: number
default: 0.015
maximum: 1
minimum: 0
- name: salesTax
in: query
description: "Sales tax as a fraction (e.g. 0.036 for 3.6%), paid on sell\
\ orders"
required: false
schema:
type: number
default: 0.036
maximum: 1
minimum: 0
responses:
"200":
description: The scan result for the requested market type
content:
'*/*':
schema:
$ref: "#/components/schemas/MarketScanResponse"
"400":
description: The days parameter is not greater than 0
content:
'*/*':
schema:
type: string
additionalProperties:
default: ""
default: ""
/market/{marketTypeId}/history:
get:
tags:
@@ -375,8 +554,8 @@ paths:
description: Id of the market type
required: true
schema:
type: integer
format: int64
type: string
default: ""
- name: days
in: query
description: Optional number of most recent days to return; omit for the full
@@ -385,6 +564,7 @@ paths:
schema:
type: integer
format: int32
default: ""
minimum: 1
responses:
"200":
@@ -397,6 +577,13 @@ paths:
$ref: "#/components/schemas/MarketHistoryResponse"
"400":
description: The days parameter is not greater than 0
content:
'*/*':
schema:
type: string
additionalProperties:
default: ""
default: ""
/market/scan:
get:
tags:
@@ -445,6 +632,13 @@ paths:
$ref: "#/components/schemas/MarketScanResponse"
"400":
description: The days parameter is not greater than 0
content:
'*/*':
schema:
type: string
additionalProperties:
default: ""
default: ""
/market/prices:
get:
tags:
@@ -458,10 +652,8 @@ paths:
description: "Market type ids to price, e.g. types=34,35"
required: true
schema:
type: array
items:
type: integer
format: int64
type: string
default: ""
responses:
"200":
description: "The order book for each requested type, one entry per type"
@@ -476,6 +668,13 @@ paths:
Returned when:
- the types parameter is missing
- a types value is not a numeric id
content:
'*/*':
schema:
type: string
additionalProperties:
default: ""
default: ""
/ledgers:
get:
tags:
@@ -504,7 +703,7 @@ paths:
required: true
schema:
type: string
format: uuid
default: ""
responses:
"200":
description: The ledger
@@ -514,8 +713,22 @@ paths:
$ref: "#/components/schemas/LedgerResponse"
"400":
description: The ledger cannot be exposed (system ledger)
content:
'*/*':
schema:
type: string
additionalProperties:
default: ""
default: ""
"404":
description: No ledger with this id
content:
'*/*':
schema:
type: string
additionalProperties:
default: ""
default: ""
/ledgers/{ledgerId}/transactions:
get:
tags:
@@ -529,7 +742,7 @@ paths:
required: true
schema:
type: string
format: uuid
default: ""
responses:
"200":
description: All transactions in the ledger
@@ -541,6 +754,13 @@ paths:
$ref: "#/components/schemas/TransactionResponse"
"404":
description: No ledger with this id
content:
'*/*':
schema:
type: string
additionalProperties:
default: ""
default: ""
/ledgers/{ledgerId}/balance:
get:
tags:
@@ -554,7 +774,7 @@ paths:
required: true
schema:
type: string
format: uuid
default: ""
responses:
"200":
description: The balance of the ledger
@@ -564,6 +784,13 @@ paths:
$ref: "#/components/schemas/BalanceResponse"
"404":
description: No ledger with this id
content:
'*/*':
schema:
type: string
additionalProperties:
default: ""
default: ""
/characters:
get:
tags:
@@ -620,9 +847,14 @@ components:
type: boolean
ledgerRefs:
type: array
contains:
default: ""
items:
type: string
default: ""
pattern: "[a-z][a-zA-Z0-9]*"
unevaluatedItems:
default: ""
script:
type: string
required:
@@ -642,9 +874,14 @@ components:
type: boolean
ledgerRefs:
type: array
contains:
default: ""
items:
type: string
default: ""
pattern: "[a-z][a-zA-Z0-9]*"
unevaluatedItems:
default: ""
script:
type: string
required:
@@ -772,9 +1009,14 @@ components:
type: boolean
ledgerRefs:
type: array
contains:
default: ""
items:
type: string
default: ""
pattern: "[a-z][a-zA-Z0-9]*"
unevaluatedItems:
default: ""
script:
type: string
required:
@@ -802,35 +1044,6 @@ components:
required:
- memberLedgerIds
- name
MarketHistoryResponse:
type: object
properties:
marketTypeId:
type: integer
format: int64
date:
type: string
format: date
average:
type: number
highest:
type: number
lowest:
type: number
orderCount:
type: integer
format: int64
volume:
type: integer
format: int64
required:
- average
- date
- highest
- lowest
- marketTypeId
- orderCount
- volume
MarketScanResponse:
type: object
properties:
@@ -864,6 +1077,35 @@ components:
- score
- sell
- totalVolume
MarketHistoryResponse:
type: object
properties:
marketTypeId:
type: integer
format: int64
date:
type: string
format: date
average:
type: number
highest:
type: number
lowest:
type: number
orderCount:
type: integer
format: int64
volume:
type: integer
format: int64
required:
- average
- date
- highest
- lowest
- marketTypeId
- orderCount
- volume
MarketPriceResponse:
type: object
properties:
@@ -883,6 +1125,7 @@ components:
- orderCount
- sell
LedgerResponse:
default: null
discriminator:
propertyName: type
mapping:
@@ -960,6 +1203,7 @@ components:
- transactionId
- transfers
TransferResponse:
default: null
discriminator:
propertyName: type
mapping: