diff --git a/docs/mammon-api.yml b/docs/mammon-api.yml index f85d475..f8171cb 100644 --- a/docs/mammon-api.yml +++ b/docs/mammon-api.yml @@ -43,8 +43,7 @@ paths: "400": description: |- Returned when: - - a binding references a ledger the caller does not own - - a binding references a ledger that is not a main ledger + - a ledger scope reference is not one of the caller's own main ledgers /ledgers/main/{ledgerId}: put: tags: @@ -438,11 +437,38 @@ paths: get: tags: - rule-script - summary: Download the TypeScript definitions for the rule script runtime - operationId: getScriptDefinitions + summary: List the available rule script type definition files + operationId: listScriptDefinitions responses: "200": - description: The rule-runner.d.ts type definitions + description: The names of the available .d.ts type definitions + content: + '*/*': + schema: + type: array + items: + type: string + /rule-scripts/definitions/{name}: + get: + tags: + - rule-script + summary: Download a rule script type definition file by name + operationId: getScriptDefinition + parameters: + - name: name + in: path + required: true + schema: + type: string + responses: + "200": + description: The requested .d.ts type definitions + content: + text/plain: + schema: + type: string + "404": + description: No type definition with that name exists content: text/plain: schema: @@ -974,8 +1000,10 @@ paths: format: uuid responses: "200": - description: "Daily realized profit for the ledger, ascending by date, only\ - \ for days with a sale" + description: "Daily FIFO-realized profit for the ledger, ascending by date,\ + \ only for days with a sale. iskIn is the sum of that day's profitable\ + \ trades, iskOut is the sum of that day's losing trades (as a positive\ + \ deficit); profit is iskIn minus iskOut." content: '*/*': schema: @@ -1127,50 +1155,180 @@ paths: $ref: "#/components/schemas/AcquisitionResponse" components: schemas: - UpdateRuleBookRequest: + RuleScopeRequest: type: object - description: Request to update the caller's rule book; replaces its mutable - fields. + description: The ledgers and other resources to bind to a rule script. properties: - bindings: + ledgers: type: object additionalProperties: type: string format: uuid description: "Ledger references the script writes to, each bound to one\ - \ of the user's ledgers." + \ of the user's own main ledgers." + characters: + type: object + additionalProperties: + type: integer + format: int64 + description: "Character references the script can read, each bound to one\ + \ of the user's own characters." + corporations: + type: object + additionalProperties: + type: integer + format: int64 + description: "Corporation references the script can read, each bound to\ + \ a corporation of one of the user's own characters." + walletDivisions: + type: object + additionalProperties: + $ref: "#/components/schemas/WalletDivisionTargetRequest" + description: "Corporation wallet division references the script can read,\ + \ each bound to a corporation of one of the user's own characters." + required: + - characters + - corporations + - ledgers + - walletDivisions + RuleScriptRequest: + type: object + description: "A named rule script to store in the book, together with its scope." + properties: + name: + type: string + description: Unique script name within the book; a lowercase alphanumeric + identifier. + example: sales + scope: + $ref: "#/components/schemas/RuleScopeRequest" + description: The ledgers and other resources bound to this script. script: type: string description: The classification script source. - example: transfer.to('sales') + example: transfer.to('wallet') required: - - bindings + - name + - scope - script + UpdateRuleBookRequest: + type: object + description: Request to update the caller's rule book; replaces its rule scripts. + properties: + scripts: + type: array + description: The rule scripts making up the book. + items: + $ref: "#/components/schemas/RuleScriptRequest" + required: + - scripts + WalletDivisionTargetRequest: + type: object + description: A corporation wallet division to bind. + properties: + corporationId: + type: integer + format: int64 + description: The corporation the wallet division belongs to. + example: 98000001 + division: + type: integer + format: int32 + description: "The wallet division number, from 1 to 7." + example: 1 + required: + - corporationId + - division RuleBookResponse: type: object - description: "The caller's rule book: a script that classifies transactions,\ - \ together with its ledger bindings." + description: "The caller's rule book: the named rule scripts that classify transactions,\ + \ each with its scope." properties: userId: type: string format: uuid description: Owning user identifier. example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 - bindings: + scripts: + type: array + description: The rule scripts making up the book. + items: + $ref: "#/components/schemas/RuleScriptResponse" + required: + - scripts + - userId + RuleScopeResponse: + type: object + description: The ledgers and other resources bound to a rule script. + properties: + ledgers: type: object additionalProperties: type: string format: uuid description: "Ledger references the script writes to, each bound to one\ - \ of the user's ledgers." + \ of the user's own main ledgers." + characters: + type: object + additionalProperties: + type: integer + format: int64 + description: "Character references the script can read, each bound to one\ + \ of the user's own characters." + corporations: + type: object + additionalProperties: + type: integer + format: int64 + description: "Corporation references the script can read, each bound to\ + \ a corporation of one of the user's own characters." + walletDivisions: + type: object + additionalProperties: + $ref: "#/components/schemas/WalletDivisionTargetResponse" + description: "Corporation wallet division references the script can read,\ + \ each bound to a corporation of one of the user's own characters." + required: + - characters + - corporations + - ledgers + - walletDivisions + RuleScriptResponse: + type: object + description: "A named rule script within the book, together with its scope." + properties: + name: + type: string + description: Unique script name within the book. + example: sales + scope: + $ref: "#/components/schemas/RuleScopeResponse" + description: The ledgers and other resources bound to this script. script: type: string description: The classification script source. - example: transfer.to('sales') + example: transfer.to('wallet') required: - - bindings + - name + - scope - script - - userId + WalletDivisionTargetResponse: + type: object + description: A corporation wallet division bound to the script. + properties: + corporationId: + type: integer + format: int64 + description: The corporation the wallet division belongs to. + example: 98000001 + division: + type: integer + format: int32 + description: "The wallet division number, from 1 to 7." + example: 1 + required: + - corporationId + - division UpdateMainLedgerRequest: type: object description: Request to update an existing main ledger. diff --git a/src/components/Dropdown.vue b/src/components/Dropdown.vue index ce68a8e..4b3e5bb 100644 --- a/src/components/Dropdown.vue +++ b/src/components/Dropdown.vue @@ -41,12 +41,11 @@ useEventListener('keyup', e => {