From 9b469155c4e72bc18fe251cdef7b079ebfd27f9b Mon Sep 17 00:00:00 2001 From: Sirttas Date: Fri, 17 May 2024 22:54:27 +0200 Subject: [PATCH] integration with marbas --- Dockerfile | 3 +- src/market/acquisition/AcquiredItem.ts | 8 ---- src/market/acquisition/AcquiredType.ts | 8 ++++ .../acquisition/AcquisitionResultTable.vue | 4 +- src/market/acquisition/BuyModal.vue | 6 +-- src/market/acquisition/SellModal.vue | 6 +-- src/market/acquisition/acquisition.ts | 30 +++++++-------- src/market/acquisition/index.ts | 2 +- src/market/tracking/tracking.ts | 14 ++++++- src/pages/market/Acquisitions.vue | 8 ++-- src/pages/market/TypeInfo.vue | 2 +- src/service.ts | 37 ++++++++----------- 12 files changed, 67 insertions(+), 61 deletions(-) delete mode 100644 src/market/acquisition/AcquiredItem.ts create mode 100644 src/market/acquisition/AcquiredType.ts diff --git a/Dockerfile b/Dockerfile index 750d0bd..3b06563 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,5 +8,6 @@ RUN npm run build FROM nginx:alpine ENV NGINX_ENVSUBST_OUTPUT_DIR=/usr/share/nginx/html COPY --from=build /app/dist /usr/share/nginx/html -RUN mv -rf /usr/share/nginx/html/index.html /etc/nginx/templates/index.html.template +RUN mkdir etc/nginx/templates && \ + mv /usr/share/nginx/html/index.html /etc/nginx/templates/index.html.template COPY nginx.conf /etc/nginx/conf.d/default.conf \ No newline at end of file diff --git a/src/market/acquisition/AcquiredItem.ts b/src/market/acquisition/AcquiredItem.ts deleted file mode 100644 index b6debaf..0000000 --- a/src/market/acquisition/AcquiredItem.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { MarketType } from ".."; -import { AcquiredMarketItem } from "./acquisition"; - -export type AcquiredItem = Omit & { - type: MarketType, - buy: number, - sell: number -} \ No newline at end of file diff --git a/src/market/acquisition/AcquiredType.ts b/src/market/acquisition/AcquiredType.ts new file mode 100644 index 0000000..358015f --- /dev/null +++ b/src/market/acquisition/AcquiredType.ts @@ -0,0 +1,8 @@ +import { MarketType } from ".."; +import { AcquiredMarketType } from "./acquisition"; + +export type AcquiredType = Omit & { + type: MarketType, + buy: number, + sell: number +} \ No newline at end of file diff --git a/src/market/acquisition/AcquisitionResultTable.vue b/src/market/acquisition/AcquisitionResultTable.vue index ffb87f2..8f04eeb 100644 --- a/src/market/acquisition/AcquisitionResultTable.vue +++ b/src/market/acquisition/AcquisitionResultTable.vue @@ -5,7 +5,7 @@ import { MarketType, MarketTypeLabel, TaxInput, useMarketTaxStore } from "@/mark import { MinusIcon, PlusIcon } from '@heroicons/vue/24/outline'; import { useStorage } from '@vueuse/core'; import { computed, ref } from 'vue'; -import { AcquiredItem } from './AcquiredItem'; +import { AcquiredType } from './AcquiredType'; import AcquisitionQuantilsTooltip from './AcquisitionQuantilsTooltip.vue'; type Result = { @@ -21,7 +21,7 @@ type Result = { } interface Props { - items?: AcquiredItem[]; + items?: AcquiredType[]; } interface Emits { diff --git a/src/market/acquisition/BuyModal.vue b/src/market/acquisition/BuyModal.vue index 41d7b5c..6ecc9d8 100644 --- a/src/market/acquisition/BuyModal.vue +++ b/src/market/acquisition/BuyModal.vue @@ -3,10 +3,10 @@ import { Modal } from '@/components'; import { formatIsk } from '@/formaters'; import { MarketType, MarketTypeLabel } from '@/market'; import { ref } from 'vue'; -import { useAcquiredItemStore } from './acquisition'; +import { useAcquiredTypesStore } from './acquisition'; -const acquiredItemStore = useAcquiredItemStore(); +const acquiredTypesStore = useAcquiredTypesStore(); const modalOpen = ref(false); const type = ref(); @@ -38,7 +38,7 @@ const add = () => { return; } - acquiredItemStore.addAcquiredItem(id, count.value, price.value); + acquiredTypesStore.addType(id, count.value, price.value); modalOpen.value = false; } diff --git a/src/market/acquisition/SellModal.vue b/src/market/acquisition/SellModal.vue index e61cdd6..80514a1 100644 --- a/src/market/acquisition/SellModal.vue +++ b/src/market/acquisition/SellModal.vue @@ -2,10 +2,10 @@ import { Modal } from '@/components'; import { MarketType, MarketTypeLabel } from '@/market'; import { ref } from 'vue'; -import { useAcquiredItemStore } from './acquisition'; +import { useAcquiredTypesStore } from './acquisition'; -const acquiredItemStore = useAcquiredItemStore(); +const acquiredTypesStore = useAcquiredTypesStore(); const modalOpen = ref(false); const type = ref(); @@ -24,7 +24,7 @@ const remove = () => { return; } - acquiredItemStore.removeAcquiredItem(id, count.value); + acquiredTypesStore.removeType(id, count.value); modalOpen.value = false; } diff --git a/src/market/acquisition/acquisition.ts b/src/market/acquisition/acquisition.ts index 3c451fc..3116830 100644 --- a/src/market/acquisition/acquisition.ts +++ b/src/market/acquisition/acquisition.ts @@ -2,7 +2,7 @@ import { marbasAxiosInstance } from "@/service"; import { defineStore } from "pinia"; import { computed, ref } from "vue"; -export type AcquiredMarketItem = { +export type AcquiredMarketType = { id: number; type: number; quantity: number; @@ -13,34 +13,34 @@ export type AcquiredMarketItem = { user: number; } -const endpoint = '/api/acquisitions'; +const endpoint = '/api/acquisitions/'; -export const useAcquiredItemStore = defineStore('market-acquisition', () => { - const acquiredItems = ref([]); +export const useAcquiredTypesStore = defineStore('market-acquisition', () => { + const acquiredTypes = ref([]); - const types = computed(() => acquiredItems.value); - const addAcquiredItem = async (type: number, quantity: number, price: number) => { - acquiredItems.value = [...acquiredItems.value, (await marbasAxiosInstance.post(endpoint, { + const types = computed(() => acquiredTypes.value); + const addType = async (type: number, quantity: number, price: number) => { + acquiredTypes.value = [...acquiredTypes.value, (await marbasAxiosInstance.post(endpoint, { type: type, quantity: quantity, remaining: quantity, price: price, date: new Date(), - source: 'bo', + source: 'bo' })).data]; }; - const removeAcquiredItem = async (type: number, quantity: number) => { - const found = acquiredItems.value.find(item => item.type === type); + const removeType = async (type: number, quantity: number) => { + const found = acquiredTypes.value.find(item => item.type === type); if (!found) { return; } if (found.remaining <= 0) { - acquiredItems.value = acquiredItems.value.filter(i => i.type !== type); + acquiredTypes.value = acquiredTypes.value.filter(i => i.type !== type); } else { - acquiredItems.value = acquiredItems.value.map(i => { + acquiredTypes.value = acquiredTypes.value.map(i => { if (i.type === item.type) { return item; } else { @@ -54,10 +54,10 @@ export const useAcquiredItemStore = defineStore('market-acquisition', () => { remaining: found.remaining - quantity }; - await marbasAxiosInstance.put(`${endpoint}/${item.id}`, item); + await marbasAxiosInstance.put(`${endpoint}${item.id}`, item); }; - marbasAxiosInstance.get(endpoint).then(res => acquiredItems.value = res.data.filter(item => item.remaining > 0)); + marbasAxiosInstance.get(endpoint).then(res => acquiredTypes.value = res.data.filter(item => item.remaining > 0)); - return { types, addAcquiredItem, removeAcquiredItem }; + return { types, addType, removeType }; }); \ No newline at end of file diff --git a/src/market/acquisition/index.ts b/src/market/acquisition/index.ts index 6768d05..77d427d 100644 --- a/src/market/acquisition/index.ts +++ b/src/market/acquisition/index.ts @@ -1,4 +1,4 @@ -export * from './AcquiredItem'; +export * from './AcquiredType'; export * from './acquisition'; export { default as AcquisitionResultTable } from './AcquisitionResultTable.vue'; diff --git a/src/market/tracking/tracking.ts b/src/market/tracking/tracking.ts index 17de9c7..701ffb9 100644 --- a/src/market/tracking/tracking.ts +++ b/src/market/tracking/tracking.ts @@ -11,20 +11,30 @@ export type TrackingResult = { orderCount: number, } +type MarketTracking = { + id: number, + type: number +}; + +const endpoint = '/api/types_tracking/'; + export const useMarketTrackingStore = defineStore('marketTracking', () => { const trackedTypes = ref([]); const types = computed(() => trackedTypes.value ?? []); const addType = async (type: number) => { if (!trackedTypes.value.includes(type)) { - await marbasAxiosInstance.post(`/api/types_tracked`, { type }); + await marbasAxiosInstance.post(endpoint, { type }); } } const removeType = async (type: number) => { if (trackedTypes.value.includes(type)) { - await marbasAxiosInstance.delete(`/api/types_tracked/${type}`); + await marbasAxiosInstance.delete(`${endpoint}${type}`); } } + + marbasAxiosInstance.get(endpoint).then(res => trackedTypes.value = res.data.map(item => item.type)); + return { types, addType, removeType }; }); diff --git a/src/pages/market/Acquisitions.vue b/src/pages/market/Acquisitions.vue index 0f43fa3..97ce356 100644 --- a/src/pages/market/Acquisitions.vue +++ b/src/pages/market/Acquisitions.vue @@ -1,6 +1,6 @@