update activity call

This commit is contained in:
Sirttas
2026-06-18 15:57:42 +02:00
parent 4b24f433a5
commit 35779d2b3d
5 changed files with 219 additions and 34 deletions
+96 -5
View File
@@ -254,15 +254,38 @@ paths:
$ref: "#/components/schemas/RuleBookResponse" $ref: "#/components/schemas/RuleBookResponse"
"400": "400":
description: Invalid request (e.g. blank name) description: Invalid request (e.g. blank name)
/process-activities: /reprocessing:
post: post:
tags: tags:
- processing - reprocessing
summary: Process new activities for all characters with a usable token summary: "Reprocess the given item stacks for a character, appraising the input\
operationId: processNewActivities \ and resulting materials"
operationId: reprocessItems
parameters:
- name: locationId
in: query
description: Location to derive reprocessing efficiency at; defaults to the
character's current location when omitted
required: false
schema:
type: integer
format: int64
requestBody:
description: Character and item stacks to reprocess
content:
application/json:
schema:
$ref: "#/components/schemas/ReprocessItemsRequest"
required: true
responses: responses:
"200": "200":
description: New activities processed description: The reprocessing result for each input stack
content:
'*/*':
schema:
type: array
items:
$ref: "#/components/schemas/ReprocessingResultResponse"
/ledgers/main: /ledgers/main:
post: post:
tags: tags:
@@ -350,6 +373,15 @@ paths:
description: New activities fetched and stored description: New activities fetched and stored
"400": "400":
description: No character with this id description: No character with this id
/activities/process:
post:
tags:
- activity
summary: Process new activities for all characters with a usable token
operationId: processNewActivities
responses:
"200":
description: New activities processed
/rule-books/script-definitions: /rule-books/script-definitions:
get: get:
tags: tags:
@@ -901,6 +933,65 @@ components:
- name - name
- script - script
- usedForAcquisitions - usedForAcquisitions
MarketTypeStackRequest:
type: object
properties:
marketTypeId:
type: integer
format: int64
quantity:
type: integer
format: int64
required:
- marketTypeId
- quantity
ReprocessItemsRequest:
type: object
properties:
characterId:
type: integer
format: int64
items:
type: array
items:
$ref: "#/components/schemas/MarketTypeStackRequest"
required:
- characterId
- items
MarketTypeStackAppraisalResponse:
type: object
properties:
marketTypeId:
type: integer
format: int64
quantity:
type: integer
format: int64
buy:
type: number
sell:
type: number
orderCount:
type: integer
format: int64
required:
- buy
- marketTypeId
- orderCount
- quantity
- sell
ReprocessingResultResponse:
type: object
properties:
input:
$ref: "#/components/schemas/MarketTypeStackAppraisalResponse"
output:
type: array
items:
$ref: "#/components/schemas/MarketTypeStackAppraisalResponse"
required:
- input
- output
CreateMainLedgerRequest: CreateMainLedgerRequest:
type: object type: object
properties: properties:
+119 -23
View File
@@ -136,6 +136,25 @@ export interface MarketTypeResponse {
'portionSize': number; 'portionSize': number;
'iconId': number; 'iconId': number;
} }
export interface MarketTypeStackAppraisalResponse {
'marketTypeId': number;
'quantity': number;
'buy': number;
'sell': number;
'orderCount': number;
}
export interface MarketTypeStackRequest {
'marketTypeId': number;
'quantity': number;
}
export interface ReprocessItemsRequest {
'characterId': number;
'items': Array<MarketTypeStackRequest>;
}
export interface ReprocessingResultResponse {
'input': MarketTypeStackAppraisalResponse;
'output': Array<MarketTypeStackAppraisalResponse>;
}
export interface RuleBookResponse { export interface RuleBookResponse {
'ruleBookId': string; 'ruleBookId': string;
'name': string; 'name': string;
@@ -329,6 +348,35 @@ export const ActivityApiAxiosParamCreator = function (configuration?: Configurat
const localVarQueryParameter = {} as any; const localVarQueryParameter = {} as any;
setSearchParams(localVarUrlObj, localVarQueryParameter);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
return {
url: toPathString(localVarUrlObj),
options: localVarRequestOptions,
};
},
/**
*
* @summary Process new activities for all characters with a usable token
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
processNewActivities: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
const localVarPath = `/activities/process`;
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
let baseOptions;
if (configuration) {
baseOptions = configuration.baseOptions;
}
const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
setSearchParams(localVarUrlObj, localVarQueryParameter); setSearchParams(localVarUrlObj, localVarQueryParameter);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
@@ -372,6 +420,18 @@ export const ActivityApiFp = function(configuration?: Configuration) {
const localVarOperationServerBasePath = operationServerMap['ActivityApi.fetchNewActivitiesForCharacter']?.[localVarOperationServerIndex]?.url; const localVarOperationServerBasePath = operationServerMap['ActivityApi.fetchNewActivitiesForCharacter']?.[localVarOperationServerIndex]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
}, },
/**
*
* @summary Process new activities for all characters with a usable token
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async processNewActivities(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.processNewActivities(options);
const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
const localVarOperationServerBasePath = operationServerMap['ActivityApi.processNewActivities']?.[localVarOperationServerIndex]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
},
} }
}; };
@@ -400,6 +460,15 @@ export const ActivityApiFactory = function (configuration?: Configuration, baseP
fetchNewActivitiesForCharacter(characterId: number, options?: RawAxiosRequestConfig): AxiosPromise<void> { fetchNewActivitiesForCharacter(characterId: number, options?: RawAxiosRequestConfig): AxiosPromise<void> {
return localVarFp.fetchNewActivitiesForCharacter(characterId, options).then((request) => request(axios, basePath)); return localVarFp.fetchNewActivitiesForCharacter(characterId, options).then((request) => request(axios, basePath));
}, },
/**
*
* @summary Process new activities for all characters with a usable token
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
processNewActivities(options?: RawAxiosRequestConfig): AxiosPromise<void> {
return localVarFp.processNewActivities(options).then((request) => request(axios, basePath));
},
}; };
}; };
@@ -427,6 +496,16 @@ export class ActivityApi extends BaseAPI {
public fetchNewActivitiesForCharacter(characterId: number, options?: RawAxiosRequestConfig) { public fetchNewActivitiesForCharacter(characterId: number, options?: RawAxiosRequestConfig) {
return ActivityApiFp(this.configuration).fetchNewActivitiesForCharacter(characterId, options).then((request) => request(this.axios, this.basePath)); return ActivityApiFp(this.configuration).fetchNewActivitiesForCharacter(characterId, options).then((request) => request(this.axios, this.basePath));
} }
/**
*
* @summary Process new activities for all characters with a usable token
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
public processNewActivities(options?: RawAxiosRequestConfig) {
return ActivityApiFp(this.configuration).processNewActivities(options).then((request) => request(this.axios, this.basePath));
}
} }
@@ -1791,18 +1870,22 @@ export class MarketApi extends BaseAPI {
/** /**
* ProcessingApi - axios parameter creator * ReprocessingApi - axios parameter creator
*/ */
export const ProcessingApiAxiosParamCreator = function (configuration?: Configuration) { export const ReprocessingApiAxiosParamCreator = function (configuration?: Configuration) {
return { return {
/** /**
* *
* @summary Process new activities for all characters with a usable token * @summary Reprocess the given item stacks for a character, appraising the input and resulting materials
* @param {ReprocessItemsRequest} reprocessItemsRequest Character and item stacks to reprocess
* @param {number} [locationId] Location to derive reprocessing efficiency at; defaults to the character\&#39;s current location when omitted
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
processNewActivities: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => { reprocessItems: async (reprocessItemsRequest: ReprocessItemsRequest, locationId?: number, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
const localVarPath = `/process-activities`; // verify required parameter 'reprocessItemsRequest' is not null or undefined
assertParamExists('reprocessItems', 'reprocessItemsRequest', reprocessItemsRequest)
const localVarPath = `/reprocessing`;
// use dummy base URL string because the URL constructor only accepts absolute URLs. // use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
let baseOptions; let baseOptions;
@@ -1814,10 +1897,17 @@ export const ProcessingApiAxiosParamCreator = function (configuration?: Configur
const localVarHeaderParameter = {} as any; const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any; const localVarQueryParameter = {} as any;
if (locationId !== undefined) {
localVarQueryParameter['locationId'] = locationId;
}
localVarHeaderParameter['Content-Type'] = 'application/json';
localVarHeaderParameter['Accept'] = '*/*';
setSearchParams(localVarUrlObj, localVarQueryParameter); setSearchParams(localVarUrlObj, localVarQueryParameter);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
localVarRequestOptions.data = serializeDataIfNeeded(reprocessItemsRequest, localVarRequestOptions, configuration)
return { return {
url: toPathString(localVarUrlObj), url: toPathString(localVarUrlObj),
@@ -1828,56 +1918,62 @@ export const ProcessingApiAxiosParamCreator = function (configuration?: Configur
}; };
/** /**
* ProcessingApi - functional programming interface * ReprocessingApi - functional programming interface
*/ */
export const ProcessingApiFp = function(configuration?: Configuration) { export const ReprocessingApiFp = function(configuration?: Configuration) {
const localVarAxiosParamCreator = ProcessingApiAxiosParamCreator(configuration) const localVarAxiosParamCreator = ReprocessingApiAxiosParamCreator(configuration)
return { return {
/** /**
* *
* @summary Process new activities for all characters with a usable token * @summary Reprocess the given item stacks for a character, appraising the input and resulting materials
* @param {ReprocessItemsRequest} reprocessItemsRequest Character and item stacks to reprocess
* @param {number} [locationId] Location to derive reprocessing efficiency at; defaults to the character\&#39;s current location when omitted
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
async processNewActivities(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> { async reprocessItems(reprocessItemsRequest: ReprocessItemsRequest, locationId?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<ReprocessingResultResponse>>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.processNewActivities(options); const localVarAxiosArgs = await localVarAxiosParamCreator.reprocessItems(reprocessItemsRequest, locationId, options);
const localVarOperationServerIndex = configuration?.serverIndex ?? 0; const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
const localVarOperationServerBasePath = operationServerMap['ProcessingApi.processNewActivities']?.[localVarOperationServerIndex]?.url; const localVarOperationServerBasePath = operationServerMap['ReprocessingApi.reprocessItems']?.[localVarOperationServerIndex]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
}, },
} }
}; };
/** /**
* ProcessingApi - factory interface * ReprocessingApi - factory interface
*/ */
export const ProcessingApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { export const ReprocessingApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
const localVarFp = ProcessingApiFp(configuration) const localVarFp = ReprocessingApiFp(configuration)
return { return {
/** /**
* *
* @summary Process new activities for all characters with a usable token * @summary Reprocess the given item stacks for a character, appraising the input and resulting materials
* @param {ReprocessItemsRequest} reprocessItemsRequest Character and item stacks to reprocess
* @param {number} [locationId] Location to derive reprocessing efficiency at; defaults to the character\&#39;s current location when omitted
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
processNewActivities(options?: RawAxiosRequestConfig): AxiosPromise<void> { reprocessItems(reprocessItemsRequest: ReprocessItemsRequest, locationId?: number, options?: RawAxiosRequestConfig): AxiosPromise<Array<ReprocessingResultResponse>> {
return localVarFp.processNewActivities(options).then((request) => request(axios, basePath)); return localVarFp.reprocessItems(reprocessItemsRequest, locationId, options).then((request) => request(axios, basePath));
}, },
}; };
}; };
/** /**
* ProcessingApi - object-oriented interface * ReprocessingApi - object-oriented interface
*/ */
export class ProcessingApi extends BaseAPI { export class ReprocessingApi extends BaseAPI {
/** /**
* *
* @summary Process new activities for all characters with a usable token * @summary Reprocess the given item stacks for a character, appraising the input and resulting materials
* @param {ReprocessItemsRequest} reprocessItemsRequest Character and item stacks to reprocess
* @param {number} [locationId] Location to derive reprocessing efficiency at; defaults to the character\&#39;s current location when omitted
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
public processNewActivities(options?: RawAxiosRequestConfig) { public reprocessItems(reprocessItemsRequest: ReprocessItemsRequest, locationId?: number, options?: RawAxiosRequestConfig) {
return ProcessingApiFp(this.configuration).processNewActivities(options).then((request) => request(this.axios, this.basePath)); return ReprocessingApiFp(this.configuration).reprocessItems(reprocessItemsRequest, locationId, options).then((request) => request(this.axios, this.basePath));
} }
} }
-2
View File
@@ -7,7 +7,6 @@ import {
CharacterRuleBookApi, CharacterRuleBookApi,
LedgerApi, LedgerApi,
MarketApi, MarketApi,
ProcessingApi,
RuleBookApi, RuleBookApi,
TransactionApi TransactionApi
} from "@/generated/mammon"; } from "@/generated/mammon";
@@ -30,6 +29,5 @@ export const characterApi = new CharacterApi(undefined, mammonUrl, mammonAxiosIn
export const ruleBookApi = new RuleBookApi(undefined, mammonUrl, mammonAxiosInstance); export const ruleBookApi = new RuleBookApi(undefined, mammonUrl, mammonAxiosInstance);
export const characterRuleBookApi = new CharacterRuleBookApi(undefined, mammonUrl, mammonAxiosInstance); export const characterRuleBookApi = new CharacterRuleBookApi(undefined, mammonUrl, mammonAxiosInstance);
export const activityApi = new ActivityApi(undefined, mammonUrl, mammonAxiosInstance); export const activityApi = new ActivityApi(undefined, mammonUrl, mammonAxiosInstance);
export const processingApi = new ProcessingApi(undefined, mammonUrl, mammonAxiosInstance);
export const acquisitionApi = new AcquisitionApi(undefined, mammonUrl, mammonAxiosInstance); export const acquisitionApi = new AcquisitionApi(undefined, mammonUrl, mammonAxiosInstance);
export const marketApi = new MarketApi(undefined, mammonUrl, mammonAxiosInstance); export const marketApi = new MarketApi(undefined, mammonUrl, mammonAxiosInstance);
+2 -2
View File
@@ -2,7 +2,7 @@
import {RouterView} from 'vue-router'; import {RouterView} from 'vue-router';
import {EditLedgerModal, useLedgersStore} from "@/ledger"; import {EditLedgerModal, useLedgersStore} from "@/ledger";
import {ref} from "vue"; import {ref} from "vue";
import {activityApi, processingApi} from "@/mammon"; import {activityApi} from "@/mammon";
const ledgersStore = useLedgersStore(); const ledgersStore = useLedgersStore();
@@ -10,7 +10,7 @@ const editLedgerModal = ref<typeof EditLedgerModal>();
const processActivities = async () => { const processActivities = async () => {
await activityApi.fetchAllNewActivities(); await activityApi.fetchAllNewActivities();
await processingApi.processNewActivities(); await activityApi.processNewActivities();
await ledgersStore.refresh(); await ledgersStore.refresh();
} }
</script> </script>
+2 -2
View File
@@ -2,7 +2,7 @@
import {getMarketTypes, MarketTypePrice, useApraisalStore} from "@/market"; import {getMarketTypes, MarketTypePrice, useApraisalStore} from "@/market";
import {AcquiredType, AcquisitionResultTable, BuyModal, SellModal, useAcquiredTypesStore} from '@/market/acquisition'; import {AcquiredType, AcquisitionResultTable, BuyModal, SellModal, useAcquiredTypesStore} from '@/market/acquisition';
import {ref, watch} from 'vue'; import {ref, watch} from 'vue';
import {activityApi, processingApi} from "@/mammon"; import {activityApi} from "@/mammon";
const buyModal = ref<typeof BuyModal>(); const buyModal = ref<typeof BuyModal>();
const sellModal = ref<typeof SellModal>(); const sellModal = ref<typeof SellModal>();
@@ -13,7 +13,7 @@ const items = ref<AcquiredType[]>([]);
const refresh = async () => { const refresh = async () => {
await activityApi.fetchAllNewActivities(); await activityApi.fetchAllNewActivities();
await processingApi.processNewActivities(); await activityApi.processNewActivities();
await acquiredTypesStore.refresh(); await acquiredTypesStore.refresh();
} }