package Ġdev . al pas . notifications . slack Ċ Ċ import Ġdev . al pas . notifications . Not ifiable Ċ import Ġdev . al pas . notifications . Notification Ċ import Ġdev . al pas . notifications . channels . Notification Channel Ċ import Ġdev . al pas . queue . Queue Dispatcher Ċ import Ġkotlinx . coroutines . run Blocking Ċ Ċ open Ġclass ĠSlack Channel ( private Ġval Ġqueue Dispatcher : ĠQueue Dispatcher ) Ġ: ĊĠĠĠ ĠNotification Channel Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġ< T Ġ: ĠNot ifiable > Ġsend ( notification : ĠNotification < T >, Ġnot ifiable : ĠT ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġslack able Notification Ġ= Ġnotification Ġas ĠSlack able Notification < T > ĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġslack able Notification . to Slack ( not ifiable ) ĊĠĠĠĠĠĠĠ Ġval Ġjob Ġ= ĠSend Slack Message Job ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġslack able Notification . webhook ( message , Ġnot ifiable ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġif Ġ( notification . should Queue ( not ifiable )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġqueue Dispatcher . dispatch ( job , Ġnotification . on Queue ( not ifiable ), Ġnotification . queue Connection ( not ifiable )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjob () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ