Search in sources :

Example 1 with DatabaseCache

use of me.retrodaredevil.solarthing.database.cache.DatabaseCache in project solarthing by wildmountainfarms.

the class AlterManagerActionNode method createAction.

@Override
public Action createAction(ActionEnvironment actionEnvironment) {
    SolarThingDatabaseEnvironment solarThingDatabaseEnvironment = actionEnvironment.getInjectEnvironment().get(SolarThingDatabaseEnvironment.class);
    OpenDatabaseCacheEnvironment openDatabaseCacheEnvironment = actionEnvironment.getInjectEnvironment().get(OpenDatabaseCacheEnvironment.class);
    AuthorizationEnvironment authorizationEnvironment = actionEnvironment.getInjectEnvironment().get(AuthorizationEnvironment.class);
    AlterPacketsEnvironment alterPacketsEnvironment = actionEnvironment.getInjectEnvironment().get(AlterPacketsEnvironment.class);
    SourceIdEnvironment sourceIdEnvironment = actionEnvironment.getInjectEnvironment().get(SourceIdEnvironment.class);
    TimeZoneEnvironment timeZoneEnvironment = actionEnvironment.getInjectEnvironment().get(TimeZoneEnvironment.class);
    SolarThingDatabase database = solarThingDatabaseEnvironment.getSolarThingDatabase();
    DatabaseCache openDatabaseCache = openDatabaseCacheEnvironment.getOpenDatabaseCache();
    String sourceId = sourceIdEnvironment.getSourceId();
    AlterPacketsProvider alterPacketsProvider = alterPacketsEnvironment.getAlterPacketsProvider();
    return new AlterManagerAction(new CommandManager(keyDirectory, sender), authorizationEnvironment.getPublicKeyLookUp(), database, openDatabaseCache, alterPacketsProvider, sourceId, timeZoneEnvironment.getZoneId(), fragmentId);
}
Also used : CommandManager(me.retrodaredevil.solarthing.commands.util.CommandManager) AlterPacketsProvider(me.retrodaredevil.solarthing.AlterPacketsProvider) SolarThingDatabase(me.retrodaredevil.solarthing.database.SolarThingDatabase) DatabaseCache(me.retrodaredevil.solarthing.database.cache.DatabaseCache)

Example 2 with DatabaseCache

use of me.retrodaredevil.solarthing.database.cache.DatabaseCache in project solarthing by wildmountainfarms.

the class SlackChatBotActionNode method createAction.

@Override
public Action createAction(ActionEnvironment actionEnvironment) {
    LatestFragmentedPacketGroupEnvironment latestPacketGroupEnvironment = actionEnvironment.getInjectEnvironment().get(LatestFragmentedPacketGroupEnvironment.class);
    AlterPacketsEnvironment alterPacketsEnvironment = actionEnvironment.getInjectEnvironment().get(AlterPacketsEnvironment.class);
    SolarThingDatabaseEnvironment solarThingDatabaseEnvironment = actionEnvironment.getInjectEnvironment().get(SolarThingDatabaseEnvironment.class);
    SourceIdEnvironment sourceIdEnvironment = actionEnvironment.getInjectEnvironment().get(SourceIdEnvironment.class);
    TimeZoneEnvironment timeZoneEnvironment = actionEnvironment.getInjectEnvironment().get(TimeZoneEnvironment.class);
    EventDatabaseCacheEnvironment eventDatabaseCacheEnvironment = actionEnvironment.getInjectEnvironment().get(EventDatabaseCacheEnvironment.class);
    // Note that all objects listed here must be thread safe, as data will be accessed from them on a separate thread
    FragmentedPacketGroupProvider packetGroupProvider = latestPacketGroupEnvironment.getFragmentedPacketGroupProvider();
    AlterPacketsProvider alterPacketsProvider = alterPacketsEnvironment.getAlterPacketsProvider();
    SolarThingDatabase database = solarThingDatabaseEnvironment.getSolarThingDatabase();
    String sourceId = sourceIdEnvironment.getSourceId();
    ZoneId zoneId = timeZoneEnvironment.getZoneId();
    ResourceManager<? extends DatabaseCache> eventDatabaseCacheManager = eventDatabaseCacheEnvironment.getEventDatabaseCacheManager();
    Slack slack = Slack.getInstance(new SlackConfig(), new SlackHttpClient(new OkHttpClient.Builder().callTimeout(Duration.ofSeconds(10)).connectTimeout(Duration.ofSeconds(4)).build()));
    ChatBotCommandHelper commandHelper = new ChatBotCommandHelper(permissionMap, packetGroupProvider, new CommandManager(keyDirectory, sender));
    return new SlackChatBotAction(appToken, new SlackMessageSender(authToken, channelId, slack), slack, new HelpChatBotHandler(new ChatBotHandlerMultiplexer(Arrays.asList(// note: this isn't applied to "help" commands
    new StaleMessageHandler(), new ScheduleCommandChatBotHandler(commandHelper, database, sourceId, zoneId), new CancelCommandChatBotHandler(commandHelper, database, sourceId, zoneId, alterPacketsProvider), new FlagCommandChatBotHandler(commandHelper, database, sourceId, zoneId, alterPacketsProvider), new CommandChatBotHandler(commandHelper, database, sourceId, zoneId), new StatusChatBotHandler(packetGroupProvider, alterPacketsProvider), new HeartbeatCommandChatBotHandler(eventDatabaseCacheManager), (message, messageSender) -> {
        messageSender.sendMessage("Unknown command!");
        return true;
    }))));
}
Also used : EventDatabaseCacheEnvironment(me.retrodaredevil.solarthing.actions.environment.EventDatabaseCacheEnvironment) SlackHttpClient(com.slack.api.util.http.SlackHttpClient) CommandManager(me.retrodaredevil.solarthing.commands.util.CommandManager) Arrays(java.util.Arrays) Slack(com.slack.api.Slack) me.retrodaredevil.solarthing.chatbot(me.retrodaredevil.solarthing.chatbot) AlterPacketsProvider(me.retrodaredevil.solarthing.AlterPacketsProvider) SourceIdEnvironment(me.retrodaredevil.solarthing.actions.environment.SourceIdEnvironment) TimeZoneEnvironment(me.retrodaredevil.solarthing.actions.environment.TimeZoneEnvironment) LatestFragmentedPacketGroupEnvironment(me.retrodaredevil.solarthing.actions.environment.LatestFragmentedPacketGroupEnvironment) ActionEnvironment(me.retrodaredevil.action.node.environment.ActionEnvironment) SlackMessageSender(me.retrodaredevil.solarthing.message.implementations.SlackMessageSender) ResourceManager(me.retrodaredevil.solarthing.util.sync.ResourceManager) FragmentedPacketGroupProvider(me.retrodaredevil.solarthing.FragmentedPacketGroupProvider) Action(me.retrodaredevil.action.Action) Duration(java.time.Duration) Map(java.util.Map) SolarThingDatabaseEnvironment(me.retrodaredevil.solarthing.actions.environment.SolarThingDatabaseEnvironment) EventDatabaseCacheEnvironment(me.retrodaredevil.solarthing.actions.environment.EventDatabaseCacheEnvironment) SolarThingDatabase(me.retrodaredevil.solarthing.database.SolarThingDatabase) ActionNode(me.retrodaredevil.action.node.ActionNode) DatabaseCache(me.retrodaredevil.solarthing.database.cache.DatabaseCache) File(java.io.File) ZoneId(java.time.ZoneId) List(java.util.List) OkHttpClient(okhttp3.OkHttpClient) SlackConfig(com.slack.api.SlackConfig) AlterPacketsEnvironment(me.retrodaredevil.solarthing.actions.environment.AlterPacketsEnvironment) SourceIdEnvironment(me.retrodaredevil.solarthing.actions.environment.SourceIdEnvironment) TimeZoneEnvironment(me.retrodaredevil.solarthing.actions.environment.TimeZoneEnvironment) OkHttpClient(okhttp3.OkHttpClient) SlackHttpClient(com.slack.api.util.http.SlackHttpClient) FragmentedPacketGroupProvider(me.retrodaredevil.solarthing.FragmentedPacketGroupProvider) SlackMessageSender(me.retrodaredevil.solarthing.message.implementations.SlackMessageSender) LatestFragmentedPacketGroupEnvironment(me.retrodaredevil.solarthing.actions.environment.LatestFragmentedPacketGroupEnvironment) SlackConfig(com.slack.api.SlackConfig) CommandManager(me.retrodaredevil.solarthing.commands.util.CommandManager) SolarThingDatabase(me.retrodaredevil.solarthing.database.SolarThingDatabase) ZoneId(java.time.ZoneId) AlterPacketsEnvironment(me.retrodaredevil.solarthing.actions.environment.AlterPacketsEnvironment) SolarThingDatabaseEnvironment(me.retrodaredevil.solarthing.actions.environment.SolarThingDatabaseEnvironment) Slack(com.slack.api.Slack) AlterPacketsProvider(me.retrodaredevil.solarthing.AlterPacketsProvider)

Aggregations

AlterPacketsProvider (me.retrodaredevil.solarthing.AlterPacketsProvider)2 CommandManager (me.retrodaredevil.solarthing.commands.util.CommandManager)2 SolarThingDatabase (me.retrodaredevil.solarthing.database.SolarThingDatabase)2 DatabaseCache (me.retrodaredevil.solarthing.database.cache.DatabaseCache)2 Slack (com.slack.api.Slack)1 SlackConfig (com.slack.api.SlackConfig)1 SlackHttpClient (com.slack.api.util.http.SlackHttpClient)1 File (java.io.File)1 Duration (java.time.Duration)1 ZoneId (java.time.ZoneId)1 Arrays (java.util.Arrays)1 List (java.util.List)1 Map (java.util.Map)1 Action (me.retrodaredevil.action.Action)1 ActionNode (me.retrodaredevil.action.node.ActionNode)1 ActionEnvironment (me.retrodaredevil.action.node.environment.ActionEnvironment)1 FragmentedPacketGroupProvider (me.retrodaredevil.solarthing.FragmentedPacketGroupProvider)1 AlterPacketsEnvironment (me.retrodaredevil.solarthing.actions.environment.AlterPacketsEnvironment)1 EventDatabaseCacheEnvironment (me.retrodaredevil.solarthing.actions.environment.EventDatabaseCacheEnvironment)1 LatestFragmentedPacketGroupEnvironment (me.retrodaredevil.solarthing.actions.environment.LatestFragmentedPacketGroupEnvironment)1