Fix swagger deps

This commit is contained in:
Florian Hoss 2023-07-04 23:18:05 +02:00
parent 28f068c890
commit f63210272d
28 changed files with 307 additions and 310 deletions

View file

@ -31,7 +31,7 @@
<script lang="ts"> <script lang="ts">
import { computed, defineComponent, onMounted, PropType, ref } from "vue"; import { computed, defineComponent, onMounted, PropType, ref } from "vue";
import { BillsService, service_Bill, service_BillItem } from "@/services/openapi"; import { BillsService, controller_Bill, controller_BillItem } from "@/services/openapi";
import { convertToEur } from "@/utils"; import { convertToEur } from "@/utils";
import WaveSpinner from "@/components/UI/WaveSpinner.vue"; import WaveSpinner from "@/components/UI/WaveSpinner.vue";
import moment from "moment"; import moment from "moment";
@ -39,10 +39,10 @@ import moment from "moment";
export default defineComponent({ export default defineComponent({
name: "BillModal", name: "BillModal",
components: { WaveSpinner }, components: { WaveSpinner },
props: { bill: { type: Object as PropType<service_Bill>, required: true } }, props: { bill: { type: Object as PropType<controller_Bill>, required: true } },
setup(props) { setup(props) {
const isLoading = ref(true); const isLoading = ref(true);
const billItems = ref<service_BillItem[]>(); const billItems = ref<controller_BillItem[]>();
const date = computed(() => props.bill.created_at && moment.unix(props.bill.created_at).format("DD.MM.YYYY")); const date = computed(() => props.bill.created_at && moment.unix(props.bill.created_at).format("DD.MM.YYYY"));
const time = computed(() => props.bill.created_at && moment.unix(props.bill.created_at).format("HH:mm") + " Uhr"); const time = computed(() => props.bill.created_at && moment.unix(props.bill.created_at).format("HH:mm") + " Uhr");
onMounted(() => { onMounted(() => {

View file

@ -77,7 +77,7 @@
<script lang="ts"> <script lang="ts">
import { defineComponent, PropType, ref, watch } from "vue"; import { defineComponent, PropType, ref, watch } from "vue";
import BaseCard from "@/components/UI/BaseCard.vue"; import BaseCard from "@/components/UI/BaseCard.vue";
import { OrderItemsService, service_OrderItem } from "@/services/openapi"; import { OrderItemsService, controller_OrderItem } from "@/services/openapi";
import InputText from "primevue/inputtext"; import InputText from "primevue/inputtext";
import { FilterMatchMode } from "primevue/api"; import { FilterMatchMode } from "primevue/api";
import DataTable from "primevue/datatable"; import DataTable from "primevue/datatable";
@ -95,8 +95,8 @@ export default defineComponent({
// eslint-disable-next-line // eslint-disable-next-line
components: { BaseCard, InputText, DataTable, Column, Button, Dialog, InputNumber, ConfirmDialog }, components: { BaseCard, InputText, DataTable, Column, Button, Dialog, InputNumber, ConfirmDialog },
props: { props: {
orderItems: { type: Array as PropType<service_OrderItem[]>, default: () => [] }, orderItems: { type: Array as PropType<controller_OrderItem[]>, default: () => [] },
emptyOrderItem: { type: Object as PropType<service_OrderItem>, default: () => ({}) }, emptyOrderItem: { type: Object as PropType<controller_OrderItem>, default: () => ({}) },
title: { type: String, default: "" }, title: { type: String, default: "" },
}, },
emits: ["orderItemChanged", "orderItemDeleted", "orderItemCreated"], emits: ["orderItemChanged", "orderItemDeleted", "orderItemCreated"],
@ -108,8 +108,8 @@ export default defineComponent({
const filters = ref({ const filters = ref({
global: { value: null, matchMode: FilterMatchMode.CONTAINS }, global: { value: null, matchMode: FilterMatchMode.CONTAINS },
}); });
const orderItem = ref<service_OrderItem>({ ...props.emptyOrderItem }); const orderItem = ref<controller_OrderItem>({ ...props.emptyOrderItem });
function editOrderItem(item: service_OrderItem) { function editOrderItem(item: controller_OrderItem) {
orderItem.value = { ...item }; orderItem.value = { ...item };
modal.value = true; modal.value = true;
} }
@ -130,7 +130,7 @@ export default defineComponent({
} }
} }
function confirmDeleteProduct(item: service_OrderItem) { function confirmDeleteProduct(item: controller_OrderItem) {
if (isDisabled.value) return; if (isDisabled.value) return;
confirm.require({ confirm.require({
message: item.description + " löschen?", message: item.description + " löschen?",

View file

@ -14,7 +14,7 @@
<script lang="ts"> <script lang="ts">
import { computed, defineComponent, onMounted, onUnmounted, PropType, ref } from "vue"; import { computed, defineComponent, onMounted, onUnmounted, PropType, ref } from "vue";
import { service_Order, types_ItemType } from "@/services/openapi"; import { controller_Order, controller_ItemType } from "@/services/openapi";
import { convertToEur, getCurrentTimeSince, lessThan15SecondsAgo } from "@/utils"; import { convertToEur, getCurrentTimeSince, lessThan15SecondsAgo } from "@/utils";
import Button from "primevue/button"; import Button from "primevue/button";
import moment from "moment"; import moment from "moment";
@ -26,9 +26,9 @@ export default defineComponent({
// eslint-disable-next-line // eslint-disable-next-line
components: { SmallCard, TheBadge, Button }, components: { SmallCard, TheBadge, Button },
props: { props: {
order: { type: Object as PropType<service_Order>, required: true }, order: { type: Object as PropType<controller_Order>, required: true },
isDisabled: { type: Boolean, default: false }, isDisabled: { type: Boolean, default: false },
itemType: { type: Number as PropType<types_ItemType>, required: false }, itemType: { type: Number as PropType<controller_ItemType>, required: false },
}, },
emits: ["orderDone"], emits: ["orderDone"],
setup(props) { setup(props) {
@ -37,7 +37,7 @@ export default defineComponent({
let ticker: any; let ticker: any;
const since = ref(getCurrentTimeSince(props.order.updated_at)); const since = ref(getCurrentTimeSince(props.order.updated_at));
const newOrder = ref(lessThan15SecondsAgo(props.order.updated_at)); const newOrder = ref(lessThan15SecondsAgo(props.order.updated_at));
const badgeTwo = computed(() => props.itemType === types_ItemType.ColdDrink); const badgeTwo = computed(() => props.itemType === controller_ItemType.ColdDrink);
onMounted(() => { onMounted(() => {
ticker = setInterval(() => { ticker = setInterval(() => {

View file

@ -17,7 +17,7 @@
<script lang="ts"> <script lang="ts">
import { computed, defineComponent, inject, PropType, ref } from "vue"; import { computed, defineComponent, inject, PropType, ref } from "vue";
import { OrdersService, service_Order, types_ItemType } from "@/services/openapi"; import { OrdersService, controller_Order, controller_ItemType } from "@/services/openapi";
import { detailedItemTypeIcon, detailedItemTypeString, errorToast, lessThan15SecondsAgo } from "@/utils"; import { detailedItemTypeIcon, detailedItemTypeString, errorToast, lessThan15SecondsAgo } from "@/utils";
import OrderCard from "@/components/Orders/OrderCard.vue"; import OrderCard from "@/components/Orders/OrderCard.vue";
import BaseToolbar from "@/components/UI/BaseToolbar.vue"; import BaseToolbar from "@/components/UI/BaseToolbar.vue";
@ -28,10 +28,10 @@ export default defineComponent({
name: "OrderSection", name: "OrderSection",
components: { OrderCard, BaseToolbar }, components: { OrderCard, BaseToolbar },
props: { props: {
orders: { type: Object as PropType<service_Order[]>, required: true }, orders: { type: Object as PropType<controller_Order[]>, required: true },
icon: { type: String, required: false }, icon: { type: String, required: false },
title: { type: String, required: false }, title: { type: String, required: false },
itemType: { type: Number as PropType<types_ItemType>, required: false }, itemType: { type: Number as PropType<controller_ItemType>, required: false },
}, },
emits: ["filterOrders"], emits: ["filterOrders"],
setup(props, { emit }) { setup(props, { emit }) {
@ -46,7 +46,7 @@ export default defineComponent({
}); });
} }
function orderDone(order: service_Order) { function orderDone(order: controller_Order) {
isDisabled.value = true; isDisabled.value = true;
order.is_served = true; order.is_served = true;
OrdersService.putOrders(order) OrdersService.putOrders(order)

View file

@ -12,12 +12,12 @@
<script lang="ts"> <script lang="ts">
import { defineComponent, PropType } from "vue"; import { defineComponent, PropType } from "vue";
import { service_Order } from "@/services/openapi"; import { controller_Order } from "@/services/openapi";
export default defineComponent({ export default defineComponent({
name: "OrderAmountChange", name: "OrderAmountChange",
props: { props: {
order: { type: Object as PropType<service_Order>, required: true }, order: { type: Object as PropType<controller_Order>, required: true },
isDisabled: { type: Boolean, default: false }, isDisabled: { type: Boolean, default: false },
}, },
emits: ["incrementOrder", "decrementOrder"], emits: ["incrementOrder", "decrementOrder"],

View file

@ -13,7 +13,7 @@
<script lang="ts"> <script lang="ts">
import { computed, defineComponent, inject, PropType, ref } from "vue"; import { computed, defineComponent, inject, PropType, ref } from "vue";
import { OrdersService, service_Order } from "@/services/openapi"; import { OrdersService, controller_Order } from "@/services/openapi";
import { convertToEur, generalItemTypeString, generalItemTypeIcon } from "@/utils"; import { convertToEur, generalItemTypeString, generalItemTypeIcon } from "@/utils";
import BaseToolbar from "@/components/UI/BaseToolbar.vue"; import BaseToolbar from "@/components/UI/BaseToolbar.vue";
import TableOrderCard from "@/components/Tables/TableOrderCard.vue"; import TableOrderCard from "@/components/Tables/TableOrderCard.vue";
@ -24,7 +24,7 @@ export default defineComponent({
name: "OverviewPerType", name: "OverviewPerType",
components: { TableOrderCard, BaseToolbar, OrderAmountChange }, components: { TableOrderCard, BaseToolbar, OrderAmountChange },
props: { props: {
orders: { type: Array as PropType<service_Order[]>, default: () => [] }, orders: { type: Array as PropType<controller_Order[]>, default: () => [] },
type: { type: Array as PropType<number[]>, required: true }, type: { type: Array as PropType<number[]>, required: true },
}, },
emits: ["openModal", "getData"], emits: ["openModal", "getData"],
@ -32,12 +32,12 @@ export default defineComponent({
const OrdersForType = computed(() => props.orders.filter((order) => props.type.includes(order.order_item.item_type))); const OrdersForType = computed(() => props.orders.filter((order) => props.type.includes(order.order_item.item_type)));
const isLoading = inject(loading, ref(false)); const isLoading = inject(loading, ref(false));
function incrementOrder(order: service_Order) { function incrementOrder(order: controller_Order) {
isLoading.value = true; isLoading.value = true;
OrdersService.postOrders(order.order_item_id, order.table_id).finally(() => emit("getData")); OrdersService.postOrders(order.order_item_id, order.table_id).finally(() => emit("getData"));
} }
function decrementOrder(order: service_Order) { function decrementOrder(order: controller_Order) {
isLoading.value = true; isLoading.value = true;
OrdersService.deleteOrders(order.order_item_id, order.table_id).finally(() => emit("getData")); OrdersService.deleteOrders(order.order_item_id, order.table_id).finally(() => emit("getData"));
} }

View file

@ -13,7 +13,7 @@
<script lang="ts"> <script lang="ts">
import { defineComponent, onMounted, onUnmounted, PropType, ref } from "vue"; import { defineComponent, onMounted, onUnmounted, PropType, ref } from "vue";
import { service_Table } from "@/services/openapi"; import { controller_Table } from "@/services/openapi";
import moment from "moment"; import moment from "moment";
import { convertToEur, getCurrentTimeSince } from "@/utils"; import { convertToEur, getCurrentTimeSince } from "@/utils";
import TheBadge from "@/components/UI/TheBadge.vue"; import TheBadge from "@/components/UI/TheBadge.vue";
@ -22,7 +22,7 @@ import SmallCard from "@/components/UI/SmallCard.vue";
export default defineComponent({ export default defineComponent({
name: "TableCard", name: "TableCard",
components: { TheBadge, SmallCard }, components: { TheBadge, SmallCard },
props: { table: { type: Object as PropType<service_Table>, required: true } }, props: { table: { type: Object as PropType<controller_Table>, required: true } },
setup(props) { setup(props) {
moment.locale("de"); moment.locale("de");
// eslint-disable-next-line // eslint-disable-next-line

View file

@ -11,7 +11,7 @@
<script lang="ts"> <script lang="ts">
import { computed, defineComponent, PropType } from "vue"; import { computed, defineComponent, PropType } from "vue";
import { service_Order, types_ItemType } from "@/services/openapi"; import { controller_Order, controller_ItemType } from "@/services/openapi";
import { convertToEur } from "@/utils"; import { convertToEur } from "@/utils";
import SmallCard from "@/components/UI/SmallCard.vue"; import SmallCard from "@/components/UI/SmallCard.vue";
@ -19,12 +19,12 @@ export default defineComponent({
name: "TableOrderCard", name: "TableOrderCard",
components: { SmallCard }, components: { SmallCard },
props: { props: {
order: { type: Object as PropType<service_Order>, required: true }, order: { type: Object as PropType<controller_Order>, required: true },
}, },
emits: ["decrementOrder", "incrementOrder"], emits: ["decrementOrder", "incrementOrder"],
setup(props) { setup(props) {
const showTotal = computed(() => props.order.order_item.price !== props.order.total); const showTotal = computed(() => props.order.order_item.price !== props.order.total);
return { convertToEur, types_ItemType, showTotal }; return { convertToEur, controller_ItemType, showTotal };
}, },
}); });
</script> </script>

View file

@ -3,8 +3,13 @@
<Transition> <Transition>
<WaveSpinner v-if="initialLoading" /> <WaveSpinner v-if="initialLoading" />
<div v-else> <div v-else>
<OverviewPerType :type="[types_ItemType.Food]" :orders="orders" @getData="getData" @openModal="(t) => addBeverage(t)" /> <OverviewPerType :type="[controller_ItemType.Food]" :orders="orders" @getData="getData" @openModal="(t) => addBeverage(t)" />
<OverviewPerType :type="[types_ItemType.ColdDrink, types_ItemType.HotDrink]" :orders="orders" @getData="getData" @openModal="(t) => addBeverage(t)" /> <OverviewPerType
:type="[controller_ItemType.ColdDrink, controller_ItemType.HotDrink]"
:orders="orders"
@getData="getData"
@openModal="(t) => addBeverage(t)"
/>
<div class="h-4rem"></div> <div class="h-4rem"></div>
<BottomNavigation> <BottomNavigation>
@ -56,7 +61,7 @@
import { computed, defineComponent, provide, ref } from "vue"; import { computed, defineComponent, provide, ref } from "vue";
import BaseCard from "@/components/UI/BaseCard.vue"; import BaseCard from "@/components/UI/BaseCard.vue";
import { useStore } from "vuex"; import { useStore } from "vuex";
import { OrdersService, service_Order, service_OrderItem, types_ItemType } from "@/services/openapi"; import { OrdersService, controller_Order, controller_OrderItem, controller_ItemType } from "@/services/openapi";
import BottomNavigation from "@/components/UI/BottomNavigation.vue"; import BottomNavigation from "@/components/UI/BottomNavigation.vue";
import Button from "primevue/button"; import Button from "primevue/button";
import { convertToEur } from "@/utils"; import { convertToEur } from "@/utils";
@ -82,7 +87,7 @@ export default defineComponent({
const total = ref(0); const total = ref(0);
const orderItems = computed(() => store.getters.getOrderItems); const orderItems = computed(() => store.getters.getOrderItems);
const options = ref(); const options = ref();
const orders = ref<service_Order[]>([]); const orders = ref<controller_Order[]>([]);
store.dispatch("getAllOrderItems"); store.dispatch("getAllOrderItems");
@ -110,13 +115,13 @@ export default defineComponent({
total.value = temp; total.value = temp;
} }
function addBeverage(itemType: types_ItemType[]) { function addBeverage(itemType: controller_ItemType[]) {
newOrderModal.value = true; newOrderModal.value = true;
options.value = []; options.value = [];
itemType.forEach((type) => { itemType.forEach((type) => {
options.value = options.value.concat(orderItems.value.get(type)); options.value = options.value.concat(orderItems.value.get(type));
}); });
options.value.sort((a: service_OrderItem, b: service_OrderItem) => { options.value.sort((a: controller_OrderItem, b: controller_OrderItem) => {
const x = a.description.toLowerCase(); const x = a.description.toLowerCase();
const y = b.description.toLowerCase(); const y = b.description.toLowerCase();
if (x < y) return -1; if (x < y) return -1;
@ -142,7 +147,7 @@ export default defineComponent({
total, total,
convertToEur, convertToEur,
addBeverage, addBeverage,
types_ItemType, controller_ItemType,
postOrder, postOrder,
orders, orders,
getData, getData,

View file

@ -24,7 +24,7 @@ import Menubar from "primevue/menubar";
import { useStore } from "vuex"; import { useStore } from "vuex";
import Button from "primevue/button"; import Button from "primevue/button";
import { useRoute } from "vue-router"; import { useRoute } from "vue-router";
import { TablesService, types_ItemType } from "@/services/openapi"; import { TablesService, controller_ItemType } from "@/services/openapi";
import { detailedItemTypeString, errorToast } from "@/utils"; import { detailedItemTypeString, errorToast } from "@/utils";
import { useToast } from "primevue/usetoast"; import { useToast } from "primevue/usetoast";
import { visible } from "@/keys"; import { visible } from "@/keys";
@ -84,9 +84,9 @@ export default defineComponent({
label: "Artikel", label: "Artikel",
icon: "pi pi-fw pi-shopping-cart", icon: "pi pi-fw pi-shopping-cart",
items: [ items: [
{ label: detailedItemTypeString(types_ItemType.Food), icon: "pi pi-fw pi-shopping-cart", to: "/items/" + types_ItemType.Food }, { label: detailedItemTypeString(controller_ItemType.Food), icon: "pi pi-fw pi-shopping-cart", to: "/items/" + controller_ItemType.Food },
{ label: detailedItemTypeString(types_ItemType.ColdDrink), icon: "pi pi-fw pi-shopping-cart", to: "/items/" + types_ItemType.ColdDrink }, { label: detailedItemTypeString(controller_ItemType.ColdDrink), icon: "pi pi-fw pi-shopping-cart", to: "/items/" + controller_ItemType.ColdDrink },
{ label: detailedItemTypeString(types_ItemType.HotDrink), icon: "pi pi-fw pi-shopping-cart", to: "/items/" + types_ItemType.HotDrink }, { label: detailedItemTypeString(controller_ItemType.HotDrink), icon: "pi pi-fw pi-shopping-cart", to: "/items/" + controller_ItemType.HotDrink },
], ],
visible: () => editor.value, visible: () => editor.value,
}, },

View file

@ -16,7 +16,7 @@
import { computed, defineComponent, inject, ref } from "vue"; import { computed, defineComponent, inject, ref } from "vue";
import Sidebar from "primevue/sidebar"; import Sidebar from "primevue/sidebar";
import { visible } from "@/keys"; import { visible } from "@/keys";
import { user_User, UsersService } from "@/services/openapi"; import { controller_User, UsersService } from "@/services/openapi";
import InputSwitch from "primevue/inputswitch"; import InputSwitch from "primevue/inputswitch";
import { useStore } from "vuex"; import { useStore } from "vuex";
import { errorToast } from "@/utils"; import { errorToast } from "@/utils";
@ -30,7 +30,7 @@ export default defineComponent({
const toast = useToast(); const toast = useToast();
const isLoading = ref(false); const isLoading = ref(false);
const isVisible = inject(visible, ref(false)); const isVisible = inject(visible, ref(false));
const user = computed<user_User>(() => store.getters.getUser); const user = computed<controller_User>(() => store.getters.getUser);
function updateUser() { function updateUser() {
isLoading.value = true; isLoading.value = true;

View file

@ -1,10 +1,10 @@
import { createStore } from "vuex"; import { createStore } from "vuex";
import tableStore from "@/store/tables"; import tableStore from "@/store/tables";
import orderItemStore from "@/store/orderItems"; import orderItemStore from "@/store/orderItems";
import { user_User } from "@/services/openapi"; import { controller_User } from "@/services/openapi";
interface AppStateModel { interface AppStateModel {
user: user_User; user: controller_User;
groups: string[]; groups: string[];
} }
export default createStore({ export default createStore({
@ -28,7 +28,7 @@ export default createStore({
}, },
}, },
mutations: { mutations: {
setUser(state: AppStateModel, _user: user_User) { setUser(state: AppStateModel, _user: controller_User) {
state.user = _user; state.user = _user;
}, },
setGroups(state: AppStateModel, groups: string[]) { setGroups(state: AppStateModel, groups: string[]) {

View file

@ -1,17 +1,17 @@
import { OrderItemsService, service_OrderItem, types_ItemType } from "@/services/openapi"; import { OrderItemsService, controller_OrderItem, controller_ItemType } from "@/services/openapi";
interface AppStateModel { interface AppStateModel {
orderItems: Map<number, service_OrderItem[]>; orderItems: Map<number, controller_OrderItem[]>;
} }
interface mutationOrderItems { interface mutationOrderItems {
orderItems: service_OrderItem[]; orderItems: controller_OrderItem[];
orderType: types_ItemType; orderType: controller_ItemType;
} }
const orderItemStore = { const orderItemStore = {
state: () => ({ state: () => ({
orderItems: new Map<number, service_OrderItem[]>(), orderItems: new Map<number, controller_OrderItem[]>(),
}), }),
getters: { getters: {
getOrderItems(state: AppStateModel) { getOrderItems(state: AppStateModel) {
@ -22,52 +22,52 @@ const orderItemStore = {
setOrderItems(state: AppStateModel, payload: mutationOrderItems) { setOrderItems(state: AppStateModel, payload: mutationOrderItems) {
state.orderItems.set(payload.orderType, payload.orderItems); state.orderItems.set(payload.orderType, payload.orderItems);
}, },
pushOrderItem(state: AppStateModel, orderItem: service_OrderItem) { pushOrderItem(state: AppStateModel, orderItem: controller_OrderItem) {
const tempOrderItems = state.orderItems.get(orderItem.item_type); const tempOrderItems = state.orderItems.get(orderItem.item_type);
tempOrderItems && tempOrderItems.push(orderItem); tempOrderItems && tempOrderItems.push(orderItem);
}, },
filterOrderItem(state: AppStateModel, orderItem: service_OrderItem) { filterOrderItem(state: AppStateModel, orderItem: controller_OrderItem) {
const tempOrderItems = state.orderItems.get(orderItem.item_type); const tempOrderItems = state.orderItems.get(orderItem.item_type);
tempOrderItems && tempOrderItems &&
state.orderItems.set( state.orderItems.set(
orderItem.item_type, orderItem.item_type,
tempOrderItems.filter((origItem: service_OrderItem) => origItem.id !== orderItem.id) tempOrderItems.filter((origItem: controller_OrderItem) => origItem.id !== orderItem.id)
); );
}, },
putOrderItem(state: AppStateModel, orderItem: service_OrderItem) { putOrderItem(state: AppStateModel, orderItem: controller_OrderItem) {
const tempOrderItems = state.orderItems.get(orderItem.item_type); const tempOrderItems = state.orderItems.get(orderItem.item_type);
tempOrderItems && tempOrderItems &&
state.orderItems.set( state.orderItems.set(
orderItem.item_type, orderItem.item_type,
tempOrderItems.map((origItem: service_OrderItem) => (origItem.id === orderItem.id ? orderItem : origItem)) tempOrderItems.map((origItem: controller_OrderItem) => (origItem.id === orderItem.id ? orderItem : origItem))
); );
}, },
}, },
actions: { actions: {
// eslint-disable-next-line // eslint-disable-next-line
async getAllOrderItems(context: any) { async getAllOrderItems(context: any) {
await context.dispatch("getOrderItems", types_ItemType.Food); await context.dispatch("getOrderItems", controller_ItemType.Food);
await context.dispatch("getOrderItems", types_ItemType.ColdDrink); await context.dispatch("getOrderItems", controller_ItemType.ColdDrink);
await context.dispatch("getOrderItems", types_ItemType.HotDrink); await context.dispatch("getOrderItems", controller_ItemType.HotDrink);
}, },
// eslint-disable-next-line // eslint-disable-next-line
async getOrderItems(context: any, orderType: types_ItemType) { async getOrderItems(context: any, orderType: controller_ItemType) {
const orderTypeArray = context.getters.getOrderItems; const orderTypeArray = context.getters.getOrderItems;
if (!orderTypeArray.get(orderType)) { if (!orderTypeArray.get(orderType)) {
const orderItems: service_OrderItem[] | null = await OrderItemsService.getOrdersItems(orderType); const orderItems: controller_OrderItem[] | null = await OrderItemsService.getOrdersItems(orderType);
context.commit("setOrderItems", { orderItems, orderType }); context.commit("setOrderItems", { orderItems, orderType });
} }
}, },
// eslint-disable-next-line // eslint-disable-next-line
addOrderItem(context: any, orderItem: service_OrderItem) { addOrderItem(context: any, orderItem: controller_OrderItem) {
context.commit("pushOrderItem", orderItem); context.commit("pushOrderItem", orderItem);
}, },
// eslint-disable-next-line // eslint-disable-next-line
deleteOrderItem(context: any, orderItem: service_OrderItem) { deleteOrderItem(context: any, orderItem: controller_OrderItem) {
context.commit("filterOrderItem", orderItem); context.commit("filterOrderItem", orderItem);
}, },
// eslint-disable-next-line // eslint-disable-next-line
updateOrderItem(context: any, orderItem: service_OrderItem) { updateOrderItem(context: any, orderItem: controller_OrderItem) {
context.commit("putOrderItem", orderItem); context.commit("putOrderItem", orderItem);
}, },
}, },

View file

@ -1,7 +1,7 @@
import { service_Table, TablesService } from "@/services/openapi"; import { controller_Table, TablesService } from "@/services/openapi";
interface AppStateModel { interface AppStateModel {
tables: service_Table[] | null; tables: controller_Table[] | null;
} }
const tableStore = { const tableStore = {
@ -17,13 +17,13 @@ const tableStore = {
}, },
}, },
mutations: { mutations: {
setTables(state: AppStateModel, tables: service_Table[]) { setTables(state: AppStateModel, tables: controller_Table[]) {
state.tables = tables; state.tables = tables;
}, },
popTables(state: AppStateModel) { popTables(state: AppStateModel) {
state.tables && state.tables.pop(); state.tables && state.tables.pop();
}, },
pushTable(state: AppStateModel, table: service_Table) { pushTable(state: AppStateModel, table: controller_Table) {
state.tables && state.tables.push(table); state.tables && state.tables.push(table);
}, },
}, },
@ -38,7 +38,7 @@ const tableStore = {
context.commit("popTables"); context.commit("popTables");
}, },
// eslint-disable-next-line // eslint-disable-next-line
addTable(context: any, table: service_Table) { addTable(context: any, table: controller_Table) {
context.commit("pushTable", table); context.commit("pushTable", table);
}, },
}, },

View file

@ -1,44 +1,44 @@
import { service_Bill, service_Order, types_ItemType } from "@/services/openapi"; import { controller_Bill, controller_Order, controller_ItemType } from "@/services/openapi";
export function convertToEur(value: number | undefined) { export function convertToEur(value: number | undefined) {
const temp: number = value ? value : 0; const temp: number = value ? value : 0;
return temp.toLocaleString("de-DE", { style: "currency", currency: "EUR" }); return temp.toLocaleString("de-DE", { style: "currency", currency: "EUR" });
} }
export function detailedItemTypeString(type: types_ItemType | undefined) { export function detailedItemTypeString(type: controller_ItemType | undefined) {
switch (type) { switch (type) {
case types_ItemType.Food: case controller_ItemType.Food:
return "Speisen"; return "Speisen";
case types_ItemType.ColdDrink: case controller_ItemType.ColdDrink:
return "Kaltgetränke"; return "Kaltgetränke";
default: default:
return "Heiß/Eiskaffee"; return "Heiß/Eiskaffee";
} }
} }
export function generalItemTypeString(type: types_ItemType[]) { export function generalItemTypeString(type: controller_ItemType[]) {
if (type.includes(types_ItemType.Food)) { if (type.includes(controller_ItemType.Food)) {
return "Speisen"; return "Speisen";
} else { } else {
return "Getränke"; return "Getränke";
} }
} }
export function detailedItemTypeIcon(type: types_ItemType | undefined) { export function detailedItemTypeIcon(type: controller_ItemType | undefined) {
switch (type) { switch (type) {
case types_ItemType.Food: case controller_ItemType.Food:
return "fa-cheese"; return "fa-cheese";
case types_ItemType.ColdDrink: case controller_ItemType.ColdDrink:
return "fa-champagne-glasses"; return "fa-champagne-glasses";
case types_ItemType.HotDrink: case controller_ItemType.HotDrink:
return "fa-mug-hot"; return "fa-mug-hot";
default: default:
return ""; return "";
} }
} }
export function generalItemTypeIcon(type: types_ItemType[]) { export function generalItemTypeIcon(type: controller_ItemType[]) {
if (type.includes(types_ItemType.Food)) { if (type.includes(controller_ItemType.Food)) {
return "fa-cheese"; return "fa-cheese";
} else { } else {
return "fa-champagne-glasses"; return "fa-champagne-glasses";
@ -47,7 +47,7 @@ export function generalItemTypeIcon(type: types_ItemType[]) {
export interface WebSocketMsg { export interface WebSocketMsg {
type: NotifierType; type: NotifierType;
payload: service_Order[]; payload: controller_Order[];
} }
export enum NotifierType { export enum NotifierType {
@ -75,4 +75,4 @@ export function lessThan15SecondsAgo(updated_at: number | undefined) {
return moment().diff(updated, "seconds") < 15; return moment().diff(updated, "seconds") < 15;
} }
export const emptyBill: service_Bill = { table_id: 0, total: 0 }; export const emptyBill: controller_Bill = { table_id: 0, total: 0 };

View file

@ -59,7 +59,7 @@
import { defineComponent, ref, watch } from "vue"; import { defineComponent, ref, watch } from "vue";
import BaseCard from "@/components/UI/BaseCard.vue"; import BaseCard from "@/components/UI/BaseCard.vue";
import Calendar from "primevue/calendar"; import Calendar from "primevue/calendar";
import { BillsService, service_Bill } from "@/services/openapi"; import { BillsService, controller_Bill } from "@/services/openapi";
import Sidebar from "primevue/sidebar"; import Sidebar from "primevue/sidebar";
import BillModal from "@/components/Bills/BillModal.vue"; import BillModal from "@/components/Bills/BillModal.vue";
import { convertToEur, emptyBill, errorToast } from "@/utils"; import { convertToEur, emptyBill, errorToast } from "@/utils";
@ -80,11 +80,11 @@ export default defineComponent({
const confirm = useConfirm(); const confirm = useConfirm();
const toast = useToast(); const toast = useToast();
const today = ref(new Date()); const today = ref(new Date());
const bills = ref<service_Bill[]>([]); const bills = ref<controller_Bill[]>([]);
const isLoading = ref(false); const isLoading = ref(false);
const isDisabled = ref(false); const isDisabled = ref(false);
const billModal = ref(false); const billModal = ref(false);
const bill = ref<service_Bill>({ ...emptyBill }); const bill = ref<controller_Bill>({ ...emptyBill });
const filters = ref({ const filters = ref({
global: { value: null, matchMode: FilterMatchMode.CONTAINS }, global: { value: null, matchMode: FilterMatchMode.CONTAINS },
}); });
@ -104,7 +104,7 @@ export default defineComponent({
function openBill(billId: number) { function openBill(billId: number) {
if (isDisabled.value) return; if (isDisabled.value) return;
const temp: service_Bill | undefined = bills.value.find((bill) => bill.id === billId); const temp: controller_Bill | undefined = bills.value.find((bill) => bill.id === billId);
temp && (bill.value = temp); temp && (bill.value = temp);
billModal.value = true; billModal.value = true;
} }

View file

@ -55,7 +55,7 @@
<script lang="ts"> <script lang="ts">
import { computed, defineComponent, ref, watch } from "vue"; import { computed, defineComponent, ref, watch } from "vue";
import { BillsService, OrdersService, service_Bill, service_Order } from "@/services/openapi"; import { BillsService, OrdersService, controller_Bill, controller_Order } from "@/services/openapi";
import Checkbox from "primevue/checkbox"; import Checkbox from "primevue/checkbox";
import { convertToEur, emptyBill, errorToast } from "@/utils"; import { convertToEur, emptyBill, errorToast } from "@/utils";
import Button from "primevue/button"; import Button from "primevue/button";
@ -80,13 +80,13 @@ export default defineComponent({
const toast = useToast(); const toast = useToast();
const router = useRouter(); const router = useRouter();
const table = computed(() => parseInt(props.id)); const table = computed(() => parseInt(props.id));
const orders = ref<service_Order[]>([]); const orders = ref<controller_Order[]>([]);
const orderFilter = ref<number[]>([]); const orderFilter = ref<number[]>([]);
const isLoading = ref(false); const isLoading = ref(false);
const applyFilterLoading = ref(false); const applyFilterLoading = ref(false);
const checkAll = ref(false); const checkAll = ref(false);
const total = ref(0); const total = ref(0);
const bill = ref<service_Bill>({ ...emptyBill }); const bill = ref<controller_Bill>({ ...emptyBill });
const billModal = ref(false); const billModal = ref(false);
function checkAllCheck() { function checkAllCheck() {

View file

@ -17,7 +17,7 @@
<script lang="ts"> <script lang="ts">
import { computed, defineComponent, reactive, ref, watch } from "vue"; import { computed, defineComponent, reactive, ref, watch } from "vue";
import BaseCard from "@/components/UI/BaseCard.vue"; import BaseCard from "@/components/UI/BaseCard.vue";
import { service_OrderItem, types_ItemType } from "@/services/openapi"; import { controller_OrderItem, controller_ItemType } from "@/services/openapi";
import OrderItemList from "@/components/OrderItem/OrderItemList.vue"; import OrderItemList from "@/components/OrderItem/OrderItemList.vue";
import { useStore } from "vuex"; import { useStore } from "vuex";
import WaveSpinner from "@/components/UI/WaveSpinner.vue"; import WaveSpinner from "@/components/UI/WaveSpinner.vue";
@ -31,8 +31,8 @@ export default defineComponent({
const isLoading = ref(true); const isLoading = ref(true);
const orderItems = computed(() => store.getters.getOrderItems); const orderItems = computed(() => store.getters.getOrderItems);
const currentOrderItems = ref(); const currentOrderItems = ref();
const emptyOrderItem = reactive<service_OrderItem>({ description: "", item_type: 0, price: 0 }); const emptyOrderItem = reactive<controller_OrderItem>({ description: "", item_type: 0, price: 0 });
const intId = ref<types_ItemType>(parseInt(props.id)); const intId = ref<controller_ItemType>(parseInt(props.id));
getData(); getData();
async function getData() { async function getData() {
@ -50,15 +50,15 @@ export default defineComponent({
watch(props, () => getData()); watch(props, () => getData());
function orderItemChanged(item: service_OrderItem) { function orderItemChanged(item: controller_OrderItem) {
store.dispatch("updateOrderItem", item); store.dispatch("updateOrderItem", item);
refreshMap(); refreshMap();
} }
function orderItemDeleted(item: service_OrderItem) { function orderItemDeleted(item: controller_OrderItem) {
store.dispatch("deleteOrderItem", item); store.dispatch("deleteOrderItem", item);
refreshMap(); refreshMap();
} }
function orderItemCreated(item: service_OrderItem) { function orderItemCreated(item: controller_OrderItem) {
store.dispatch("addOrderItem", item); store.dispatch("addOrderItem", item);
refreshMap(); refreshMap();
} }

View file

@ -15,7 +15,7 @@
/> />
</template> </template>
<template v-if="user.show_cold_drinks"> <template v-if="user.show_cold_drinks">
<OrderSection :orders="coldOrders" :itemType="types_ItemType.ColdDrink" @filterOrders="(id) => filterOrder(id)" /> <OrderSection :orders="coldOrders" :itemType="controller_ItemType.ColdDrink" @filterOrders="(id) => filterOrder(id)" />
</template> </template>
</div> </div>
</Transition> </Transition>
@ -25,7 +25,7 @@
<script lang="ts"> <script lang="ts">
import { computed, defineComponent, onUnmounted, provide, ref } from "vue"; import { computed, defineComponent, onUnmounted, provide, ref } from "vue";
import BaseCard from "@/components/UI/BaseCard.vue"; import BaseCard from "@/components/UI/BaseCard.vue";
import { OrdersService, service_Order, types_ItemType, user_User } from "@/services/openapi"; import { OrdersService, controller_Order, controller_ItemType, controller_User } from "@/services/openapi";
import { detailedItemTypeIcon, detailedItemTypeString, NotifierType, WebSocketMsg } from "@/utils"; import { detailedItemTypeIcon, detailedItemTypeString, NotifierType, WebSocketMsg } from "@/utils";
import { API_ENDPOINT_URL } from "@/main"; import { API_ENDPOINT_URL } from "@/main";
import EmptyView from "@/views/Empty.vue"; import EmptyView from "@/views/Empty.vue";
@ -43,8 +43,8 @@ export default defineComponent({
const isDisabled = ref(false); const isDisabled = ref(false);
provide(disabled, isDisabled); provide(disabled, isDisabled);
provide(loading, isDisabled); provide(loading, isDisabled);
const orders = ref<service_Order[]>([]); const orders = ref<controller_Order[]>([]);
const user = computed<user_User>(() => store.getters.getUser); const user = computed<controller_User>(() => store.getters.getUser);
const empty = computed(() => { const empty = computed(() => {
return ( return (
@ -55,9 +55,9 @@ export default defineComponent({
}); });
const otherOrders = computed(() => { const otherOrders = computed(() => {
const temp = new Map<number, service_Order[]>(); const temp = new Map<number, controller_Order[]>();
orders.value.forEach((order) => { orders.value.forEach((order) => {
if (order.order_item.item_type === types_ItemType.ColdDrink) return; if (order.order_item.item_type === controller_ItemType.ColdDrink) return;
const existing = temp.get(order.table_id); const existing = temp.get(order.table_id);
if (existing) { if (existing) {
existing.push(order); existing.push(order);
@ -67,7 +67,7 @@ export default defineComponent({
}); });
return new Map([...temp.entries()].sort()); return new Map([...temp.entries()].sort());
}); });
const coldOrders = computed(() => orders.value.filter((order) => order.order_item.item_type === types_ItemType.ColdDrink)); const coldOrders = computed(() => orders.value.filter((order) => order.order_item.item_type === controller_ItemType.ColdDrink));
const sse = ref<EventSource | null>(null); const sse = ref<EventSource | null>(null);
getData(); getData();
@ -118,7 +118,7 @@ export default defineComponent({
otherOrders, otherOrders,
coldOrders, coldOrders,
filterOrder, filterOrder,
types_ItemType, controller_ItemType,
isLoading, isLoading,
isDisabled, isDisabled,
detailedItemTypeString, detailedItemTypeString,

View file

@ -4,8 +4,6 @@ import (
"fmt" "fmt"
"strconv" "strconv"
"time" "time"
"gitlab.unjx.de/flohoss/cafe-plaetschwiesle/internal/types"
) )
type ( type (
@ -23,7 +21,7 @@ type (
Total float32 `json:"total" validate:"required"` Total float32 `json:"total" validate:"required"`
Price float32 `json:"price" validate:"required"` Price float32 `json:"price" validate:"required"`
Amount uint64 `json:"amount" validate:"required"` Amount uint64 `json:"amount" validate:"required"`
ItemType types.ItemType `json:"item_type" validate:"required"` ItemType ItemType `json:"item_type" validate:"required"`
} }
) )
@ -31,7 +29,7 @@ func (c *Controller) DoesBillExist(id string) (Bill, error) {
var bill Bill var bill Bill
result := c.orm.Limit(1).Find(&bill, id) result := c.orm.Limit(1).Find(&bill, id)
if result.RowsAffected == 0 { if result.RowsAffected == 0 {
return bill, fmt.Errorf(types.CannotFind.String()) return bill, fmt.Errorf(CannotFind.String())
} }
return bill, nil return bill, nil
} }
@ -40,7 +38,7 @@ func (c *Controller) GetAllBillItems(billId uint64) ([]BillItem, error) {
var billItems []BillItem var billItems []BillItem
result := c.orm.Where("bill_id = ?", billId).Find(&billItems) result := c.orm.Where("bill_id = ?", billId).Find(&billItems)
if result.RowsAffected == 0 { if result.RowsAffected == 0 {
return billItems, fmt.Errorf(types.CannotFind.String()) return billItems, fmt.Errorf(CannotFind.String())
} }
return billItems, nil return billItems, nil
} }
@ -48,19 +46,19 @@ func (c *Controller) GetAllBillItems(billId uint64) ([]BillItem, error) {
func getDate(year string, month string, day string) (time.Time, error) { func getDate(year string, month string, day string) (time.Time, error) {
yearI, yearErr := strconv.Atoi(year) yearI, yearErr := strconv.Atoi(year)
if yearErr != nil { if yearErr != nil {
return time.Time{}, fmt.Errorf("jahr " + types.CannotParse.String()) return time.Time{}, fmt.Errorf("jahr " + CannotParse.String())
} }
monthI, monthErr := strconv.Atoi(month) monthI, monthErr := strconv.Atoi(month)
if monthErr != nil { if monthErr != nil {
return time.Time{}, fmt.Errorf("monat " + types.CannotParse.String()) return time.Time{}, fmt.Errorf("monat " + CannotParse.String())
} }
dayI, dayErr := strconv.Atoi(day) dayI, dayErr := strconv.Atoi(day)
if dayErr != nil { if dayErr != nil {
return time.Time{}, fmt.Errorf("tag " + types.CannotParse.String()) return time.Time{}, fmt.Errorf("tag " + CannotParse.String())
} }
loc, locErr := time.LoadLocation("Local") loc, locErr := time.LoadLocation("Local")
if locErr != nil { if locErr != nil {
return time.Time{}, fmt.Errorf("timezone " + types.CannotParse.String()) return time.Time{}, fmt.Errorf("timezone " + CannotParse.String())
} }
return time.Date(yearI, time.Month(monthI), dayI, 0, 0, 0, 0, loc), nil return time.Date(yearI, time.Month(monthI), dayI, 0, 0, 0, 0, loc), nil
} }
@ -88,7 +86,7 @@ func (c *Controller) createBill(options GetOrderOptions) (Bill, error) {
bill.Total = total bill.Total = total
err := c.orm.Create(&bill).Error err := c.orm.Create(&bill).Error
if err != nil { if err != nil {
return bill, fmt.Errorf(types.CannotCreate.String()) return bill, fmt.Errorf(CannotCreate.String())
} }
for _, order := range orders { for _, order := range orders {
billItem := BillItem{ billItem := BillItem{
@ -104,10 +102,10 @@ func (c *Controller) createBill(options GetOrderOptions) (Bill, error) {
ordersToDelete := c.getAllOrdersForTable(GetOrderOptions{TableId: options.TableId, Grouped: false, Filter: options.Filter}) ordersToDelete := c.getAllOrdersForTable(GetOrderOptions{TableId: options.TableId, Grouped: false, Filter: options.Filter})
err = c.orm.Delete(&ordersToDelete).Error err = c.orm.Delete(&ordersToDelete).Error
if err != nil { if err != nil {
return bill, fmt.Errorf(types.CannotDelete.String()) return bill, fmt.Errorf(CannotDelete.String())
} }
c.publishMessage(StatusMessage{ c.publishMessage(StatusMessage{
Type: types.DeleteAll, Type: DeleteAll,
Payload: ordersToDelete, Payload: ordersToDelete,
}) })
return bill, nil return bill, nil
@ -116,7 +114,7 @@ func (c *Controller) createBill(options GetOrderOptions) (Bill, error) {
func (c *Controller) deleteBill(bill *Bill) error { func (c *Controller) deleteBill(bill *Bill) error {
err := c.orm.Delete(bill).Error err := c.orm.Delete(bill).Error
if err != nil { if err != nil {
return fmt.Errorf(types.CannotDelete.String()) return fmt.Errorf(CannotDelete.String())
} }
billItemsToDelete, _ := c.GetAllBillItems(bill.ID) billItemsToDelete, _ := c.GetAllBillItems(bill.ID)
c.orm.Delete(&billItemsToDelete) c.orm.Delete(&billItemsToDelete)

View file

@ -4,13 +4,20 @@ import (
"encoding/json" "encoding/json"
"github.com/r3labs/sse/v2" "github.com/r3labs/sse/v2"
"gitlab.unjx.de/flohoss/cafe-plaetschwiesle/internal/types"
) )
const ServerSideEvent = "sse" const ServerSideEvent = "sse"
type NotifierType uint
const (
Create NotifierType = iota
Delete
DeleteAll
)
type StatusMessage struct { type StatusMessage struct {
Type types.NotifierType `json:"type"` Type NotifierType `json:"type"`
Payload []Order `json:"payload"` Payload []Order `json:"payload"`
} }

View file

@ -4,7 +4,6 @@ import (
"fmt" "fmt"
"time" "time"
"gitlab.unjx.de/flohoss/cafe-plaetschwiesle/internal/types"
"gorm.io/gorm" "gorm.io/gorm"
) )
@ -22,7 +21,7 @@ type (
OrderItem struct { OrderItem struct {
ID uint64 `gorm:"primaryKey" json:"id" validate:"optional"` ID uint64 `gorm:"primaryKey" json:"id" validate:"optional"`
ItemType types.ItemType `json:"item_type" validate:"required"` ItemType ItemType `json:"item_type" validate:"required"`
Description string `json:"description" validate:"required"` Description string `json:"description" validate:"required"`
Price float32 `json:"price" validate:"required"` Price float32 `json:"price" validate:"required"`
} }
@ -55,7 +54,7 @@ func (c *Controller) doesOrderItemExist(id string) (OrderItem, error) {
var orderItem OrderItem var orderItem OrderItem
result := c.orm.Limit(1).Find(&orderItem, id) result := c.orm.Limit(1).Find(&orderItem, id)
if result.RowsAffected == 0 { if result.RowsAffected == 0 {
return orderItem, fmt.Errorf(types.CannotFind.String()) return orderItem, fmt.Errorf(CannotFind.String())
} }
return orderItem, nil return orderItem, nil
} }
@ -64,7 +63,7 @@ func (c *Controller) doesOrderExist(id string) (Order, error) {
var order Order var order Order
result := c.orm.Limit(1).Find(&order, id) result := c.orm.Limit(1).Find(&order, id)
if result.RowsAffected == 0 { if result.RowsAffected == 0 {
return order, fmt.Errorf(types.CannotFind.String()) return order, fmt.Errorf(CannotFind.String())
} }
return order, nil return order, nil
} }
@ -96,11 +95,11 @@ func (c *Controller) getAllOrdersForTable(options GetOrderOptions) []Order {
func (c *Controller) createOrder(order *Order) error { func (c *Controller) createOrder(order *Order) error {
err := c.orm.Create(order).Error err := c.orm.Create(order).Error
if err != nil { if err != nil {
return fmt.Errorf(types.CannotCreate.String()) return fmt.Errorf(CannotCreate.String())
} }
c.orm.Model(&Order{}).Joins("OrderItem").First(order) c.orm.Model(&Order{}).Joins("OrderItem").First(order)
c.publishMessage(StatusMessage{ c.publishMessage(StatusMessage{
Type: types.Create, Type: Create,
Payload: []Order{*order}, Payload: []Order{*order},
}) })
return nil return nil
@ -109,11 +108,11 @@ func (c *Controller) createOrder(order *Order) error {
func (c *Controller) updateOrder(old *Order, new *Order) error { func (c *Controller) updateOrder(old *Order, new *Order) error {
err := c.orm.First(old).Updates(new).Error err := c.orm.First(old).Updates(new).Error
if err != nil { if err != nil {
return fmt.Errorf(types.CannotUpdate.String()) return fmt.Errorf(CannotUpdate.String())
} }
if new.IsServed { if new.IsServed {
c.publishMessage(StatusMessage{ c.publishMessage(StatusMessage{
Type: types.Delete, Type: Delete,
Payload: []Order{*new}, Payload: []Order{*new},
}) })
} }
@ -124,14 +123,14 @@ func (c *Controller) deleteOrder(tableId string, orderItemId string) error {
var order Order var order Order
err := c.orm.Where("table_id = ? AND order_item_id = ?", tableId, orderItemId).Last(&order).Error err := c.orm.Where("table_id = ? AND order_item_id = ?", tableId, orderItemId).Last(&order).Error
if err != nil { if err != nil {
return fmt.Errorf(types.CannotFind.String()) return fmt.Errorf(CannotFind.String())
} }
err = c.orm.Delete(&order).Error err = c.orm.Delete(&order).Error
if err != nil { if err != nil {
return fmt.Errorf(types.CannotDelete.String()) return fmt.Errorf(CannotDelete.String())
} }
c.publishMessage(StatusMessage{ c.publishMessage(StatusMessage{
Type: types.Delete, Type: Delete,
Payload: []Order{order}, Payload: []Order{order},
}) })
return nil return nil
@ -139,14 +138,14 @@ func (c *Controller) deleteOrder(tableId string, orderItemId string) error {
func (c *Controller) getOrderItemsForType(itemType string) []OrderItem { func (c *Controller) getOrderItemsForType(itemType string) []OrderItem {
var orderItems []OrderItem var orderItems []OrderItem
c.orm.Order("description").Where("item_type = ?", types.ParseItemType(itemType)).Find(&orderItems) c.orm.Order("description").Where("item_type = ?", ParseItemType(itemType)).Find(&orderItems)
return orderItems return orderItems
} }
func (c *Controller) createOrderItem(oderItem *OrderItem) error { func (c *Controller) createOrderItem(oderItem *OrderItem) error {
err := c.orm.Create(oderItem).Error err := c.orm.Create(oderItem).Error
if err != nil { if err != nil {
return fmt.Errorf(types.CannotCreate.String()) return fmt.Errorf(CannotCreate.String())
} }
return nil return nil
} }
@ -154,7 +153,7 @@ func (c *Controller) createOrderItem(oderItem *OrderItem) error {
func (c *Controller) updateOrderItem(old *OrderItem, new *OrderItem) error { func (c *Controller) updateOrderItem(old *OrderItem, new *OrderItem) error {
err := c.orm.First(old).Updates(new).Error err := c.orm.First(old).Updates(new).Error
if err != nil { if err != nil {
return fmt.Errorf(types.CannotUpdate.String()) return fmt.Errorf(CannotUpdate.String())
} }
return nil return nil
} }
@ -162,7 +161,7 @@ func (c *Controller) updateOrderItem(old *OrderItem, new *OrderItem) error {
func (c *Controller) deleteOrderItem(oderItem *OrderItem) error { func (c *Controller) deleteOrderItem(oderItem *OrderItem) error {
err := c.orm.Delete(oderItem).Error err := c.orm.Delete(oderItem).Error
if err != nil { if err != nil {
return fmt.Errorf(types.CannotDelete.String()) return fmt.Errorf(CannotDelete.String())
} }
return nil return nil
} }

View file

@ -6,7 +6,6 @@ import (
"strings" "strings"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"gitlab.unjx.de/flohoss/cafe-plaetschwiesle/internal/types"
) )
// @Schemes // @Schemes
@ -24,7 +23,7 @@ func (c *Controller) GetBills(ctx echo.Context) error {
month := ctx.QueryParam("month") month := ctx.QueryParam("month")
day := ctx.QueryParam("day") day := ctx.QueryParam("day")
if year == "" || month == "" || day == "" { if year == "" || month == "" || day == "" {
return echo.NewHTTPError(http.StatusInternalServerError, types.MissingInformation.String()) return echo.NewHTTPError(http.StatusInternalServerError, MissingInformation.String())
} }
bills, err := c.GetAllBills(year, month, day) bills, err := c.GetAllBills(year, month, day)
if err != nil { if err != nil {
@ -67,7 +66,7 @@ func (c *Controller) GetBillItems(ctx echo.Context) error {
func (c *Controller) CreateBill(ctx echo.Context) error { func (c *Controller) CreateBill(ctx echo.Context) error {
table, tableErr := strconv.ParseUint(ctx.QueryParam("table"), 10, 64) table, tableErr := strconv.ParseUint(ctx.QueryParam("table"), 10, 64)
if tableErr != nil { if tableErr != nil {
return echo.NewHTTPError(http.StatusBadRequest, types.MissingInformation.String()) return echo.NewHTTPError(http.StatusBadRequest, MissingInformation.String())
} }
stringFiler := ctx.QueryParam("filter") stringFiler := ctx.QueryParam("filter")
var filter []string var filter []string

View file

@ -6,7 +6,6 @@ import (
"strings" "strings"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"gitlab.unjx.de/flohoss/cafe-plaetschwiesle/internal/types"
) )
// @Schemes // @Schemes
@ -53,7 +52,7 @@ func (c *Controller) CreateOrder(ctx echo.Context) error {
table, err1 := strconv.ParseUint(ctx.QueryParam("table"), 10, 64) table, err1 := strconv.ParseUint(ctx.QueryParam("table"), 10, 64)
item, err2 := strconv.ParseUint(ctx.QueryParam("item"), 10, 64) item, err2 := strconv.ParseUint(ctx.QueryParam("item"), 10, 64)
if err1 != nil || err2 != nil { if err1 != nil || err2 != nil {
return echo.NewHTTPError(http.StatusBadRequest, types.MissingInformation.String()) return echo.NewHTTPError(http.StatusBadRequest, MissingInformation.String())
} }
order := Order{TableID: table, OrderItemID: item, IsServed: false} order := Order{TableID: table, OrderItemID: item, IsServed: false}
err := c.createOrder(&order) err := c.createOrder(&order)
@ -78,7 +77,7 @@ func (c *Controller) DeleteOrder(ctx echo.Context) error {
item := ctx.QueryParam("item") item := ctx.QueryParam("item")
table := ctx.QueryParam("table") table := ctx.QueryParam("table")
if table == "" || item == "" { if table == "" || item == "" {
return echo.NewHTTPError(http.StatusBadRequest, types.MissingInformation.String()) return echo.NewHTTPError(http.StatusBadRequest, MissingInformation.String())
} }
err := c.deleteOrder(table, item) err := c.deleteOrder(table, item)
if err != nil { if err != nil {
@ -127,7 +126,7 @@ func (c *Controller) UpdateOrder(ctx echo.Context) error {
func (c *Controller) GetOrderItems(ctx echo.Context) error { func (c *Controller) GetOrderItems(ctx echo.Context) error {
orderType := ctx.QueryParam("type") orderType := ctx.QueryParam("type")
if orderType == "" { if orderType == "" {
return echo.NewHTTPError(http.StatusBadRequest, types.MissingInformation.String()) return echo.NewHTTPError(http.StatusBadRequest, MissingInformation.String())
} }
return ctx.JSON(http.StatusOK, c.getOrderItemsForType(orderType)) return ctx.JSON(http.StatusOK, c.getOrderItemsForType(orderType))
} }

View file

@ -3,7 +3,6 @@ package controller
import ( import (
"fmt" "fmt"
"gitlab.unjx.de/flohoss/cafe-plaetschwiesle/internal/types"
"gorm.io/plugin/soft_delete" "gorm.io/plugin/soft_delete"
) )
@ -42,7 +41,7 @@ func (c *Controller) CreateNewTable() (Table, error) {
err = c.orm.Unscoped().Save(&table).Error err = c.orm.Unscoped().Save(&table).Error
} }
if err != nil { if err != nil {
return table, fmt.Errorf(types.CannotCreate.String()) return table, fmt.Errorf(CannotCreate.String())
} }
return table, nil return table, nil
} }
@ -61,14 +60,14 @@ func (c *Controller) DeleteLatestTable() error {
"tables.id", "tables.id",
).Last(&table).Error ).Last(&table).Error
if err != nil { if err != nil {
return fmt.Errorf(types.CannotFind.String()) return fmt.Errorf(CannotFind.String())
} }
if table.OrderCount != 0 { if table.OrderCount != 0 {
return fmt.Errorf(types.StillInUse.String()) return fmt.Errorf(StillInUse.String())
} }
err = c.orm.Delete(&table).Error err = c.orm.Delete(&table).Error
if err != nil { if err != nil {
return fmt.Errorf(types.CannotDelete.String()) return fmt.Errorf(CannotDelete.String())
} }
return nil return nil
} }

View file

@ -1,21 +1,8 @@
package types package controller
type ( type (
ErrorResponses uint ErrorResponses uint
ItemType uint ItemType uint
NotifierType uint
)
const (
Create NotifierType = iota
Delete
DeleteAll
)
const (
Food ItemType = iota
ColdDrink
HotDrink
) )
const ( const (
@ -28,17 +15,6 @@ const (
CannotParse CannotParse
) )
func ParseItemType(itemType string) ItemType {
switch itemType {
case "0":
return Food
case "1":
return ColdDrink
default:
return HotDrink
}
}
func (e ErrorResponses) String() string { func (e ErrorResponses) String() string {
switch e { switch e {
case MissingInformation: case MissingInformation:
@ -57,3 +33,20 @@ func (e ErrorResponses) String() string {
return "kann nicht verarbeitet werden" return "kann nicht verarbeitet werden"
} }
} }
const (
Food ItemType = iota
ColdDrink
HotDrink
)
func ParseItemType(itemType string) ItemType {
switch itemType {
case "0":
return Food
case "1":
return ColdDrink
default:
return HotDrink
}
}

View file

@ -2,8 +2,6 @@ package controller
import ( import (
"fmt" "fmt"
"gitlab.unjx.de/flohoss/cafe-plaetschwiesle/internal/types"
) )
type User struct { type User struct {
@ -16,7 +14,7 @@ func (c *Controller) doesUserExist(username string) (User, error) {
var user User var user User
result := c.orm.Limit(1).Find(&user, "username = ?", username) result := c.orm.Limit(1).Find(&user, "username = ?", username)
if result.RowsAffected == 0 { if result.RowsAffected == 0 {
return user, fmt.Errorf(types.CannotFind.String()) return user, fmt.Errorf(CannotFind.String())
} }
return user, nil return user, nil
} }
@ -25,7 +23,7 @@ func (c *Controller) getUserOrCreate(username string) (User, error) {
var user User var user User
err := c.orm.Where(User{Username: username}).Attrs(User{ShowHotDrinks: true, ShowColdDrinks: true}).FirstOrCreate(&user).Error err := c.orm.Where(User{Username: username}).Attrs(User{ShowHotDrinks: true, ShowColdDrinks: true}).FirstOrCreate(&user).Error
if err != nil { if err != nil {
return user, fmt.Errorf(types.CannotCreate.String()) return user, fmt.Errorf(CannotCreate.String())
} }
return user, nil return user, nil
} }
@ -36,7 +34,7 @@ func (c *Controller) updateUser(old *User, new *User) error {
"ShowColdDrinks": new.ShowColdDrinks, "ShowColdDrinks": new.ShowColdDrinks,
"ShowHotDrinks": new.ShowHotDrinks}).Error "ShowHotDrinks": new.ShowHotDrinks}).Error
if err != nil { if err != nil {
return fmt.Errorf(types.CannotUpdate.String()) return fmt.Errorf(CannotUpdate.String())
} }
return nil return nil
} }

View file

@ -7,7 +7,7 @@ case $action in
go install github.com/swaggo/swag/cmd/swag@latest go install github.com/swaggo/swag/cmd/swag@latest
;; ;;
"init") "init")
swag init --dir internal/controller -g ../router/router.go -pd swag init --dir internal/controller -g ../router/router.go
;; ;;
"format") "format")
swag fmt swag fmt