Search in sources :

Example 16 with Query

use of org.jooq.Query in project waltz by khartec.

the class UserRoleDao method updateRoles.

public boolean updateRoles(String userName, Set<String> newRoles) {
    try {
        dsl.transaction(config -> {
            LOG.info("Removing existing roles for: " + userName);
            DSL.using(config).delete(USER_ROLE).where(USER_ROLE.USER_NAME.eq(userName)).execute();
            LOG.info("Inserting roles for " + userName + " / " + newRoles);
            DSLContext batcher = DSL.using(config);
            Set<Query> inserts = map(newRoles, r -> batcher.insertInto(USER_ROLE, USER_ROLE.USER_NAME, USER_ROLE.ROLE).values(userName, r));
            batcher.batch(inserts).execute();
        });
        return true;
    } catch (Exception e) {
        return false;
    }
}
Also used : Query(org.jooq.Query) DSLContext(org.jooq.DSLContext)

Example 17 with Query

use of org.jooq.Query in project Almura by AlmuraDev.

the class ServerStoreManager method handleDelistBuyingItems.

public void handleDelistBuyingItems(final Player player, final String id, final List<Integer> recNos) {
    checkNotNull(player);
    checkNotNull(id);
    checkNotNull(recNos);
    checkState(!recNos.isEmpty());
    if (!player.hasPermission(Almura.ID + ".store.admin")) {
        this.notificationManager.sendPopupNotification(player, Text.of(TextColors.RED, "Store"), Text.of("You do not have permission " + "to unlist items!"), 5);
        return;
    }
    final Store store = this.getStore(id).orElse(null);
    if (store == null) {
        this.logger.error("Player '{}' attempted to de-list buying items for store '{}' but the server has no knowledge of it. Syncing " + "store registry...", player.getName(), id);
        this.syncStoreRegistryTo(player);
        return;
    }
    final List<BuyingItem> buyingItems = store.getBuyingItems();
    if (buyingItems.isEmpty()) {
        this.logger.error("Player '{}' attempted to de-list buying items for store '{}' but the server knows of no " + " buying items for it. This could be a de-sync or an exploit.", player.getName(), store.getId());
        this.network.sendTo(player, new ClientboundListItemsResponsePacket(store.getId(), StoreItemSegmentType.BUYING, buyingItems));
        return;
    }
    final List<Integer> copyRecNos = Lists.newArrayList(recNos);
    final Iterator<Integer> iter = copyRecNos.iterator();
    while (iter.hasNext()) {
        final Integer recNo = iter.next();
        final BuyingItem found = buyingItems.stream().filter(v -> v.getRecord() == recNo).findAny().orElse(null);
        if (found == null) {
            this.logger.error("Player '{}' attempted to de-list buying item '{}' for store '{}' but the server knows of no knowledge of it. " + "This could be a de-sync or an exploit. Discarding...", player.getName(), recNo, store.getId());
            iter.remove();
        }
    }
    this.scheduler.createTaskBuilder().async().execute(() -> {
        try (final DSLContext context = this.databaseManager.createContext(true)) {
            final List<Query> toUpdate = new ArrayList<>();
            for (final Integer recNo : recNos) {
                toUpdate.add(StoreQueries.createUpdateBuyingItemIsHidden(recNo, true).build(context));
            }
            context.batch(toUpdate).execute();
            final Results results = StoreQueries.createFetchBuyingItemsAndDataFor(store.getId(), false).build(context).fetchMany();
            final List<BuyingItem> finalBuyingItems = new ArrayList<>();
            results.forEach(result -> finalBuyingItems.addAll(this.parseBuyingItemsFor(result)));
            this.scheduler.createTaskBuilder().execute(() -> {
                store.putBuyingItems(finalBuyingItems);
                this.network.sendToAll(new ClientboundListItemsResponsePacket(store.getId(), StoreItemSegmentType.BUYING, finalBuyingItems));
            }).submit(this.container);
        } catch (final SQLException e) {
            e.printStackTrace();
        }
    }).submit(this.container);
}
Also used : IItemHandler(net.minecraftforge.items.IItemHandler) FilterRegistry(com.almuradev.almura.shared.feature.filter.FilterRegistry) Results(org.jooq.Results) Item(net.minecraft.item.Item) Inject(com.google.inject.Inject) StoreQueries(com.almuradev.almura.feature.store.database.StoreQueries) BuyingItem(com.almuradev.almura.feature.store.listing.BuyingItem) EntityPlayerMP(net.minecraft.entity.player.EntityPlayerMP) DatabaseManager(com.almuradev.almura.shared.database.DatabaseManager) BigDecimal(java.math.BigDecimal) Map(java.util.Map) DSLContext(org.jooq.DSLContext) StoreBuyingItem(com.almuradev.generated.store.tables.StoreBuyingItem) BasicBuyingItem(com.almuradev.almura.feature.store.basic.listing.BasicBuyingItem) NBTTagCompound(net.minecraft.nbt.NBTTagCompound) EconomyService(org.spongepowered.api.service.economy.EconomyService) VanillaStack(com.almuradev.almura.shared.item.VanillaStack) Timestamp(java.sql.Timestamp) ClientboundListItemsResponsePacket(com.almuradev.almura.feature.store.network.ClientboundListItemsResponsePacket) FeatureConstants(com.almuradev.almura.shared.feature.FeatureConstants) Sponge(org.spongepowered.api.Sponge) DatabaseQueue(com.almuradev.almura.shared.database.DatabaseQueue) ServiceManager(org.spongepowered.api.service.ServiceManager) NetworkConfig(com.almuradev.almura.shared.network.NetworkConfig) UUID(java.util.UUID) Result(org.jooq.Result) Instant(java.time.Instant) StoreSellingItemDataRecord(com.almuradev.generated.store.tables.records.StoreSellingItemDataRecord) Collectors(java.util.stream.Collectors) Preconditions.checkState(com.google.common.base.Preconditions.checkState) ClientConnectionEvent(org.spongepowered.api.event.network.ClientConnectionEvent) ChannelBinding(org.spongepowered.api.network.ChannelBinding) List(java.util.List) Stream(java.util.stream.Stream) StoreSellingItemData(com.almuradev.generated.store.tables.StoreSellingItemData) ClientboundStoreGuiResponsePacket(com.almuradev.almura.feature.store.network.ClientboundStoreGuiResponsePacket) CapabilityItemHandler(net.minecraftforge.items.CapabilityItemHandler) StoreSellingItemRecord(com.almuradev.generated.store.tables.records.StoreSellingItemRecord) ChannelId(org.spongepowered.api.network.ChannelId) IngameFeature(com.almuradev.almura.shared.feature.IngameFeature) Optional(java.util.Optional) Player(org.spongepowered.api.entity.living.player.Player) Query(org.jooq.Query) Almura(com.almuradev.almura.Almura) Getter(org.spongepowered.api.event.filter.Getter) StoreBuyingItemData(com.almuradev.generated.store.tables.StoreBuyingItemData) BasicSellingItem(com.almuradev.almura.feature.store.basic.listing.BasicSellingItem) GameStartingServerEvent(org.spongepowered.api.event.game.state.GameStartingServerEvent) HashMap(java.util.HashMap) ServerboundListItemsRequestPacket(com.almuradev.almura.feature.store.network.ServerboundListItemsRequestPacket) Singleton(javax.inject.Singleton) ArrayList(java.util.ArrayList) ItemStack(net.minecraft.item.ItemStack) SQLException(java.sql.SQLException) Lists(com.google.common.collect.Lists) ItemHandlerHelper(net.minecraftforge.items.ItemHandlerHelper) Text(org.spongepowered.api.text.Text) StoreBuyingItemRecord(com.almuradev.generated.store.tables.records.StoreBuyingItemRecord) BasicStore(com.almuradev.almura.feature.store.basic.BasicStore) SellingItem(com.almuradev.almura.feature.store.listing.SellingItem) StoreItem(com.almuradev.almura.feature.store.listing.StoreItem) StoreSellingItem(com.almuradev.generated.store.tables.StoreSellingItem) GameState(org.spongepowered.api.GameState) CauseStackManager(org.spongepowered.api.event.CauseStackManager) PluginContainer(org.spongepowered.api.plugin.PluginContainer) TextColors(org.spongepowered.api.text.format.TextColors) Nullable(javax.annotation.Nullable) Record(org.jooq.Record) StoreBuyingItemDataRecord(com.almuradev.generated.store.tables.records.StoreBuyingItemDataRecord) Logger(org.slf4j.Logger) Iterator(java.util.Iterator) Preconditions.checkNotNull(com.google.common.base.Preconditions.checkNotNull) Scheduler(org.spongepowered.api.scheduler.Scheduler) ServerNotificationManager(com.almuradev.almura.feature.notification.ServerNotificationManager) EnumFacing(net.minecraft.util.EnumFacing) IOException(java.io.IOException) SerializationUtil(com.almuradev.almura.shared.util.SerializationUtil) Witness(com.almuradev.core.event.Witness) ClientboundStoresRegistryPacket(com.almuradev.almura.feature.store.network.ClientboundStoresRegistryPacket) ForgeRegistries(net.minecraftforge.fml.common.registry.ForgeRegistries) ResourceLocation(net.minecraft.util.ResourceLocation) Listener(org.spongepowered.api.event.Listener) UniqueAccount(org.spongepowered.api.service.economy.account.UniqueAccount) Comparator(java.util.Comparator) ServerboundModifyItemsPacket(com.almuradev.almura.feature.store.network.ServerboundModifyItemsPacket) SQLException(java.sql.SQLException) BasicStore(com.almuradev.almura.feature.store.basic.BasicStore) ClientboundListItemsResponsePacket(com.almuradev.almura.feature.store.network.ClientboundListItemsResponsePacket) DSLContext(org.jooq.DSLContext) Results(org.jooq.Results) BuyingItem(com.almuradev.almura.feature.store.listing.BuyingItem) StoreBuyingItem(com.almuradev.generated.store.tables.StoreBuyingItem) BasicBuyingItem(com.almuradev.almura.feature.store.basic.listing.BasicBuyingItem) List(java.util.List) ArrayList(java.util.ArrayList)

Example 18 with Query

use of org.jooq.Query in project Almura by AlmuraDev.

the class ServerStoreManager method handleModifySellingItems.

public void handleModifySellingItems(final Player player, final String id, final List<ServerboundModifyItemsPacket.ModifyCandidate> candidates) {
    checkNotNull(player);
    checkNotNull(id);
    checkNotNull(candidates);
    if (!player.hasPermission(Almura.ID + ".store.admin")) {
        this.notificationManager.sendPopupNotification(player, Text.of(TextColors.RED, "Store"), Text.of("You do not have permission " + "to modify listed items!"), 5);
        return;
    }
    final Store store = this.getStore(id).orElse(null);
    if (store == null) {
        this.logger.error("Player '{}' attempted to modify selling items for store '{}' but the server has no knowledge of it. Syncing " + "store registry...", player.getName(), id);
        this.syncStoreRegistryTo(player);
        return;
    }
    final List<SellingItem> sellingItems = store.getSellingItems();
    if (sellingItems.isEmpty()) {
        this.logger.error("Player '{}' attempted to modify selling items for store '{}' but the server knows of no " + " selling items for it. This could be a de-sync or an exploit.", player.getName(), store.getId());
        this.network.sendTo(player, new ClientboundListItemsResponsePacket(store.getId(), StoreItemSegmentType.SELLING, sellingItems));
        return;
    }
    final List<ServerboundModifyItemsPacket.ModifyCandidate> copyCandidates = Lists.newArrayList(candidates);
    final Iterator<ServerboundModifyItemsPacket.ModifyCandidate> iter = copyCandidates.iterator();
    while (iter.hasNext()) {
        final ServerboundModifyItemsPacket.ModifyCandidate candidate = iter.next();
        final SellingItem found = sellingItems.stream().filter(v -> v.getRecord() == candidate.recNo).findAny().orElse(null);
        if (found == null) {
            this.logger.error("Player '{}' attempted to modify selling item '{}' for store '{}' but the server knows of no knowledge of it. " + "This could be a de-sync or an exploit. Discarding...", player.getName(), candidate.recNo, store.getId());
            iter.remove();
        }
    }
    this.scheduler.createTaskBuilder().async().execute(() -> {
        try (final DSLContext context = this.databaseManager.createContext(true)) {
            final List<Query> toUpdate = new ArrayList<>();
            for (final ServerboundModifyItemsPacket.ModifyCandidate candidate : copyCandidates) {
                toUpdate.add(StoreQueries.createUpdateSellingItem(candidate.recNo, candidate.quantity, candidate.index, candidate.price).build(context));
            }
            context.batch(toUpdate).execute();
            final Results results = StoreQueries.createFetchSellingItemsAndDataFor(store.getId(), false).build(context).fetchMany();
            final List<SellingItem> finalSellingItems = new ArrayList<>();
            results.forEach(result -> finalSellingItems.addAll(this.parseSellingItemsFrom(result)));
            this.scheduler.createTaskBuilder().execute(() -> {
                store.putSellingItems(finalSellingItems);
                this.network.sendToAll(new ClientboundListItemsResponsePacket(store.getId(), StoreItemSegmentType.SELLING, finalSellingItems));
            }).submit(this.container);
        } catch (final SQLException e) {
            e.printStackTrace();
        }
    }).submit(this.container);
}
Also used : IItemHandler(net.minecraftforge.items.IItemHandler) FilterRegistry(com.almuradev.almura.shared.feature.filter.FilterRegistry) Results(org.jooq.Results) Item(net.minecraft.item.Item) Inject(com.google.inject.Inject) StoreQueries(com.almuradev.almura.feature.store.database.StoreQueries) BuyingItem(com.almuradev.almura.feature.store.listing.BuyingItem) EntityPlayerMP(net.minecraft.entity.player.EntityPlayerMP) DatabaseManager(com.almuradev.almura.shared.database.DatabaseManager) BigDecimal(java.math.BigDecimal) Map(java.util.Map) DSLContext(org.jooq.DSLContext) StoreBuyingItem(com.almuradev.generated.store.tables.StoreBuyingItem) BasicBuyingItem(com.almuradev.almura.feature.store.basic.listing.BasicBuyingItem) NBTTagCompound(net.minecraft.nbt.NBTTagCompound) EconomyService(org.spongepowered.api.service.economy.EconomyService) VanillaStack(com.almuradev.almura.shared.item.VanillaStack) Timestamp(java.sql.Timestamp) ClientboundListItemsResponsePacket(com.almuradev.almura.feature.store.network.ClientboundListItemsResponsePacket) FeatureConstants(com.almuradev.almura.shared.feature.FeatureConstants) Sponge(org.spongepowered.api.Sponge) DatabaseQueue(com.almuradev.almura.shared.database.DatabaseQueue) ServiceManager(org.spongepowered.api.service.ServiceManager) NetworkConfig(com.almuradev.almura.shared.network.NetworkConfig) UUID(java.util.UUID) Result(org.jooq.Result) Instant(java.time.Instant) StoreSellingItemDataRecord(com.almuradev.generated.store.tables.records.StoreSellingItemDataRecord) Collectors(java.util.stream.Collectors) Preconditions.checkState(com.google.common.base.Preconditions.checkState) ClientConnectionEvent(org.spongepowered.api.event.network.ClientConnectionEvent) ChannelBinding(org.spongepowered.api.network.ChannelBinding) List(java.util.List) Stream(java.util.stream.Stream) StoreSellingItemData(com.almuradev.generated.store.tables.StoreSellingItemData) ClientboundStoreGuiResponsePacket(com.almuradev.almura.feature.store.network.ClientboundStoreGuiResponsePacket) CapabilityItemHandler(net.minecraftforge.items.CapabilityItemHandler) StoreSellingItemRecord(com.almuradev.generated.store.tables.records.StoreSellingItemRecord) ChannelId(org.spongepowered.api.network.ChannelId) IngameFeature(com.almuradev.almura.shared.feature.IngameFeature) Optional(java.util.Optional) Player(org.spongepowered.api.entity.living.player.Player) Query(org.jooq.Query) Almura(com.almuradev.almura.Almura) Getter(org.spongepowered.api.event.filter.Getter) StoreBuyingItemData(com.almuradev.generated.store.tables.StoreBuyingItemData) BasicSellingItem(com.almuradev.almura.feature.store.basic.listing.BasicSellingItem) GameStartingServerEvent(org.spongepowered.api.event.game.state.GameStartingServerEvent) HashMap(java.util.HashMap) ServerboundListItemsRequestPacket(com.almuradev.almura.feature.store.network.ServerboundListItemsRequestPacket) Singleton(javax.inject.Singleton) ArrayList(java.util.ArrayList) ItemStack(net.minecraft.item.ItemStack) SQLException(java.sql.SQLException) Lists(com.google.common.collect.Lists) ItemHandlerHelper(net.minecraftforge.items.ItemHandlerHelper) Text(org.spongepowered.api.text.Text) StoreBuyingItemRecord(com.almuradev.generated.store.tables.records.StoreBuyingItemRecord) BasicStore(com.almuradev.almura.feature.store.basic.BasicStore) SellingItem(com.almuradev.almura.feature.store.listing.SellingItem) StoreItem(com.almuradev.almura.feature.store.listing.StoreItem) StoreSellingItem(com.almuradev.generated.store.tables.StoreSellingItem) GameState(org.spongepowered.api.GameState) CauseStackManager(org.spongepowered.api.event.CauseStackManager) PluginContainer(org.spongepowered.api.plugin.PluginContainer) TextColors(org.spongepowered.api.text.format.TextColors) Nullable(javax.annotation.Nullable) Record(org.jooq.Record) StoreBuyingItemDataRecord(com.almuradev.generated.store.tables.records.StoreBuyingItemDataRecord) Logger(org.slf4j.Logger) Iterator(java.util.Iterator) Preconditions.checkNotNull(com.google.common.base.Preconditions.checkNotNull) Scheduler(org.spongepowered.api.scheduler.Scheduler) ServerNotificationManager(com.almuradev.almura.feature.notification.ServerNotificationManager) EnumFacing(net.minecraft.util.EnumFacing) IOException(java.io.IOException) SerializationUtil(com.almuradev.almura.shared.util.SerializationUtil) Witness(com.almuradev.core.event.Witness) ClientboundStoresRegistryPacket(com.almuradev.almura.feature.store.network.ClientboundStoresRegistryPacket) ForgeRegistries(net.minecraftforge.fml.common.registry.ForgeRegistries) ResourceLocation(net.minecraft.util.ResourceLocation) Listener(org.spongepowered.api.event.Listener) UniqueAccount(org.spongepowered.api.service.economy.account.UniqueAccount) Comparator(java.util.Comparator) ServerboundModifyItemsPacket(com.almuradev.almura.feature.store.network.ServerboundModifyItemsPacket) ServerboundModifyItemsPacket(com.almuradev.almura.feature.store.network.ServerboundModifyItemsPacket) SQLException(java.sql.SQLException) BasicStore(com.almuradev.almura.feature.store.basic.BasicStore) ClientboundListItemsResponsePacket(com.almuradev.almura.feature.store.network.ClientboundListItemsResponsePacket) DSLContext(org.jooq.DSLContext) BasicSellingItem(com.almuradev.almura.feature.store.basic.listing.BasicSellingItem) SellingItem(com.almuradev.almura.feature.store.listing.SellingItem) StoreSellingItem(com.almuradev.generated.store.tables.StoreSellingItem) Results(org.jooq.Results) List(java.util.List) ArrayList(java.util.ArrayList)

Example 19 with Query

use of org.jooq.Query in project Almura by AlmuraDev.

the class ServerStoreManager method handleModifyBuyingItems.

public void handleModifyBuyingItems(final Player player, final String id, final List<ServerboundModifyItemsPacket.ModifyCandidate> candidates) {
    checkNotNull(player);
    checkNotNull(id);
    checkNotNull(candidates);
    if (!player.hasPermission(Almura.ID + ".store.admin")) {
        this.notificationManager.sendPopupNotification(player, Text.of(TextColors.RED, "Store"), Text.of("You do not have permission " + "to modify listed items!"), 5);
        return;
    }
    final Store store = this.getStore(id).orElse(null);
    if (store == null) {
        this.logger.error("Player '{}' attempted to modify buying items for store '{}' but the server has no knowledge of it. Syncing " + "store registry...", player.getName(), id);
        this.syncStoreRegistryTo(player);
        return;
    }
    final List<BuyingItem> buyingItems = store.getBuyingItems();
    if (buyingItems.isEmpty()) {
        this.logger.error("Player '{}' attempted to modify buying items for store '{}' but the server knows of no " + " buying items for it. This could be a de-sync or an exploit.", player.getName(), store.getId());
        this.network.sendTo(player, new ClientboundListItemsResponsePacket(store.getId(), StoreItemSegmentType.SELLING, buyingItems));
        return;
    }
    final List<ServerboundModifyItemsPacket.ModifyCandidate> copyCandidates = Lists.newArrayList(candidates);
    final Iterator<ServerboundModifyItemsPacket.ModifyCandidate> iter = copyCandidates.iterator();
    while (iter.hasNext()) {
        final ServerboundModifyItemsPacket.ModifyCandidate candidate = iter.next();
        final BuyingItem found = buyingItems.stream().filter(v -> v.getRecord() == candidate.recNo).findAny().orElse(null);
        if (found == null) {
            this.logger.error("Player '{}' attempted to modify buying item '{}' for store '{}' but the server knows of no knowledge of it. " + "This could be a de-sync or an exploit. Discarding...", player.getName(), candidate.recNo, store.getId());
            iter.remove();
        }
    }
    this.scheduler.createTaskBuilder().async().execute(() -> {
        try (final DSLContext context = this.databaseManager.createContext(true)) {
            final List<Query> toUpdate = new ArrayList<>();
            for (final ServerboundModifyItemsPacket.ModifyCandidate candidate : copyCandidates) {
                toUpdate.add(StoreQueries.createUpdateBuyingItem(candidate.recNo, candidate.quantity, candidate.index, candidate.price).build(context));
            }
            context.batch(toUpdate).execute();
            final Results results = StoreQueries.createFetchBuyingItemsAndDataFor(store.getId(), false).build(context).fetchMany();
            final List<BuyingItem> finalBuyingItems = new ArrayList<>();
            results.forEach(result -> finalBuyingItems.addAll(this.parseBuyingItemsFor(result)));
            this.scheduler.createTaskBuilder().execute(() -> {
                store.putBuyingItems(finalBuyingItems);
                this.network.sendToAll(new ClientboundListItemsResponsePacket(store.getId(), StoreItemSegmentType.BUYING, finalBuyingItems));
            }).submit(this.container);
        } catch (final SQLException e) {
            e.printStackTrace();
        }
    }).submit(this.container);
}
Also used : IItemHandler(net.minecraftforge.items.IItemHandler) FilterRegistry(com.almuradev.almura.shared.feature.filter.FilterRegistry) Results(org.jooq.Results) Item(net.minecraft.item.Item) Inject(com.google.inject.Inject) StoreQueries(com.almuradev.almura.feature.store.database.StoreQueries) BuyingItem(com.almuradev.almura.feature.store.listing.BuyingItem) EntityPlayerMP(net.minecraft.entity.player.EntityPlayerMP) DatabaseManager(com.almuradev.almura.shared.database.DatabaseManager) BigDecimal(java.math.BigDecimal) Map(java.util.Map) DSLContext(org.jooq.DSLContext) StoreBuyingItem(com.almuradev.generated.store.tables.StoreBuyingItem) BasicBuyingItem(com.almuradev.almura.feature.store.basic.listing.BasicBuyingItem) NBTTagCompound(net.minecraft.nbt.NBTTagCompound) EconomyService(org.spongepowered.api.service.economy.EconomyService) VanillaStack(com.almuradev.almura.shared.item.VanillaStack) Timestamp(java.sql.Timestamp) ClientboundListItemsResponsePacket(com.almuradev.almura.feature.store.network.ClientboundListItemsResponsePacket) FeatureConstants(com.almuradev.almura.shared.feature.FeatureConstants) Sponge(org.spongepowered.api.Sponge) DatabaseQueue(com.almuradev.almura.shared.database.DatabaseQueue) ServiceManager(org.spongepowered.api.service.ServiceManager) NetworkConfig(com.almuradev.almura.shared.network.NetworkConfig) UUID(java.util.UUID) Result(org.jooq.Result) Instant(java.time.Instant) StoreSellingItemDataRecord(com.almuradev.generated.store.tables.records.StoreSellingItemDataRecord) Collectors(java.util.stream.Collectors) Preconditions.checkState(com.google.common.base.Preconditions.checkState) ClientConnectionEvent(org.spongepowered.api.event.network.ClientConnectionEvent) ChannelBinding(org.spongepowered.api.network.ChannelBinding) List(java.util.List) Stream(java.util.stream.Stream) StoreSellingItemData(com.almuradev.generated.store.tables.StoreSellingItemData) ClientboundStoreGuiResponsePacket(com.almuradev.almura.feature.store.network.ClientboundStoreGuiResponsePacket) CapabilityItemHandler(net.minecraftforge.items.CapabilityItemHandler) StoreSellingItemRecord(com.almuradev.generated.store.tables.records.StoreSellingItemRecord) ChannelId(org.spongepowered.api.network.ChannelId) IngameFeature(com.almuradev.almura.shared.feature.IngameFeature) Optional(java.util.Optional) Player(org.spongepowered.api.entity.living.player.Player) Query(org.jooq.Query) Almura(com.almuradev.almura.Almura) Getter(org.spongepowered.api.event.filter.Getter) StoreBuyingItemData(com.almuradev.generated.store.tables.StoreBuyingItemData) BasicSellingItem(com.almuradev.almura.feature.store.basic.listing.BasicSellingItem) GameStartingServerEvent(org.spongepowered.api.event.game.state.GameStartingServerEvent) HashMap(java.util.HashMap) ServerboundListItemsRequestPacket(com.almuradev.almura.feature.store.network.ServerboundListItemsRequestPacket) Singleton(javax.inject.Singleton) ArrayList(java.util.ArrayList) ItemStack(net.minecraft.item.ItemStack) SQLException(java.sql.SQLException) Lists(com.google.common.collect.Lists) ItemHandlerHelper(net.minecraftforge.items.ItemHandlerHelper) Text(org.spongepowered.api.text.Text) StoreBuyingItemRecord(com.almuradev.generated.store.tables.records.StoreBuyingItemRecord) BasicStore(com.almuradev.almura.feature.store.basic.BasicStore) SellingItem(com.almuradev.almura.feature.store.listing.SellingItem) StoreItem(com.almuradev.almura.feature.store.listing.StoreItem) StoreSellingItem(com.almuradev.generated.store.tables.StoreSellingItem) GameState(org.spongepowered.api.GameState) CauseStackManager(org.spongepowered.api.event.CauseStackManager) PluginContainer(org.spongepowered.api.plugin.PluginContainer) TextColors(org.spongepowered.api.text.format.TextColors) Nullable(javax.annotation.Nullable) Record(org.jooq.Record) StoreBuyingItemDataRecord(com.almuradev.generated.store.tables.records.StoreBuyingItemDataRecord) Logger(org.slf4j.Logger) Iterator(java.util.Iterator) Preconditions.checkNotNull(com.google.common.base.Preconditions.checkNotNull) Scheduler(org.spongepowered.api.scheduler.Scheduler) ServerNotificationManager(com.almuradev.almura.feature.notification.ServerNotificationManager) EnumFacing(net.minecraft.util.EnumFacing) IOException(java.io.IOException) SerializationUtil(com.almuradev.almura.shared.util.SerializationUtil) Witness(com.almuradev.core.event.Witness) ClientboundStoresRegistryPacket(com.almuradev.almura.feature.store.network.ClientboundStoresRegistryPacket) ForgeRegistries(net.minecraftforge.fml.common.registry.ForgeRegistries) ResourceLocation(net.minecraft.util.ResourceLocation) Listener(org.spongepowered.api.event.Listener) UniqueAccount(org.spongepowered.api.service.economy.account.UniqueAccount) Comparator(java.util.Comparator) ServerboundModifyItemsPacket(com.almuradev.almura.feature.store.network.ServerboundModifyItemsPacket) ServerboundModifyItemsPacket(com.almuradev.almura.feature.store.network.ServerboundModifyItemsPacket) SQLException(java.sql.SQLException) BasicStore(com.almuradev.almura.feature.store.basic.BasicStore) ClientboundListItemsResponsePacket(com.almuradev.almura.feature.store.network.ClientboundListItemsResponsePacket) DSLContext(org.jooq.DSLContext) Results(org.jooq.Results) BuyingItem(com.almuradev.almura.feature.store.listing.BuyingItem) StoreBuyingItem(com.almuradev.generated.store.tables.StoreBuyingItem) BasicBuyingItem(com.almuradev.almura.feature.store.basic.listing.BasicBuyingItem) List(java.util.List) ArrayList(java.util.ArrayList)

Example 20 with Query

use of org.jooq.Query in project kork by spinnaker.

the class SqlTestUtil method cleanupDb.

public static void cleanupDb(DSLContext context) {
    String schema = context.select(currentSchema()).fetch().getValue(0, 0).toString();
    GlobalConfiguration configuration = LiquibaseConfiguration.getInstance().getConfiguration(GlobalConfiguration.class);
    List<Query> commands = new ArrayList<>();
    if (context.dialect() == SQLDialect.MYSQL) {
        commands.add(query("set foreign_key_checks=0"));
    }
    context.meta().getTables().stream().filter(table -> table.getType().isTable() && table.getSchema().getName().equals(schema) && !table.getName().equals(configuration.getDatabaseChangeLogTableName()) && !table.getName().equals(configuration.getDatabaseChangeLogLockTableName())).forEach(table -> {
        switch(context.dialect()) {
            case POSTGRES:
                commands.add(truncateTable(table).cascade());
                break;
            default:
                commands.add(truncateTable(table));
                break;
        }
    });
    if (context.dialect() == SQLDialect.MYSQL) {
        commands.add(query("set foreign_key_checks=1"));
    }
    context.batch(commands).execute();
}
Also used : Connection(java.sql.Connection) DatabaseFactory(liquibase.database.DatabaseFactory) GlobalConfiguration(liquibase.configuration.GlobalConfiguration) PostgreSQLContainer(org.testcontainers.containers.PostgreSQLContainer) SetupException(liquibase.exception.SetupException) DefaultDSLContext(org.jooq.impl.DefaultDSLContext) ArrayList(java.util.ArrayList) DSL.currentSchema(org.jooq.impl.DSL.currentSchema) JdbcDatabaseContainer(org.testcontainers.containers.JdbcDatabaseContainer) SQLException(java.sql.SQLException) DSL.query(org.jooq.impl.DSL.query) DSLContext(org.jooq.DSLContext) SQLDialect(org.jooq.SQLDialect) DefaultConfiguration(org.jooq.impl.DefaultConfiguration) LabelExpression(liquibase.LabelExpression) DatabaseException(liquibase.exception.DatabaseException) AS_IS(org.jooq.conf.RenderNameStyle.AS_IS) ChangeLogParameters(liquibase.changelog.ChangeLogParameters) Liquibase(liquibase.Liquibase) MySQLContainer(org.testcontainers.containers.MySQLContainer) DSL.truncateTable(org.jooq.impl.DSL.truncateTable) ClassLoaderResourceAccessor(liquibase.resource.ClassLoaderResourceAccessor) HikariConfig(com.zaxxer.hikari.HikariConfig) List(java.util.List) ContextExpression(liquibase.ContextExpression) DataSourceConnectionProvider(org.jooq.impl.DataSourceConnectionProvider) DatabaseChangeLog(liquibase.changelog.DatabaseChangeLog) H2(org.jooq.SQLDialect.H2) HikariDataSource(com.zaxxer.hikari.HikariDataSource) Closeable(java.io.Closeable) LiquibaseConfiguration(liquibase.configuration.LiquibaseConfiguration) JdbcConnection(liquibase.database.jvm.JdbcConnection) LiquibaseException(liquibase.exception.LiquibaseException) Comparator(java.util.Comparator) Query(org.jooq.Query) DriverManager(java.sql.DriverManager) GlobalConfiguration(liquibase.configuration.GlobalConfiguration) Query(org.jooq.Query) ArrayList(java.util.ArrayList)

Aggregations

Query (org.jooq.Query)35 ArrayList (java.util.ArrayList)19 DSLContext (org.jooq.DSLContext)15 Record (org.jooq.Record)11 List (java.util.List)10 ResultQuery (org.jooq.ResultQuery)10 SQLException (java.sql.SQLException)9 Configuration (org.jooq.Configuration)9 Map (java.util.Map)8 BigDecimal (java.math.BigDecimal)6 Timestamp (java.sql.Timestamp)6 Comparator (java.util.Comparator)4 HashMap (java.util.HashMap)4 Constraint (org.jooq.Constraint)4 DDLQuery (org.jooq.DDLQuery)4 Result (org.jooq.Result)4 DSL.constraint (org.jooq.impl.DSL.constraint)4 Almura (com.almuradev.almura.Almura)3 ServerNotificationManager (com.almuradev.almura.feature.notification.ServerNotificationManager)3 BasicStore (com.almuradev.almura.feature.store.basic.BasicStore)3