diff options
author | yehudah <yehudah@b8457f37-d9ea-0310-8a92-e5e31aec5664> | 2017-10-15 06:46:12 +0000 |
---|---|---|
committer | yehudah <yehudah@b8457f37-d9ea-0310-8a92-e5e31aec5664> | 2017-10-15 06:46:12 +0000 |
commit | ca6c8f41c1a2b9a4b5acae91419a6a114e1c77c6 (patch) | |
tree | 40ff112761d82af1d8c1c89d30ede8206502e17b /Postman/PostmanSession.php | |
parent | 8812fbf61bde539d1599e239044595ccb8a2c3a5 (diff) | |
download | Post-SMTP-ca6c8f41c1a2b9a4b5acae91419a6a114e1c77c6.zip |
release
Diffstat (limited to 'Postman/PostmanSession.php')
-rw-r--r-- | Postman/PostmanSession.php | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/Postman/PostmanSession.php b/Postman/PostmanSession.php new file mode 100644 index 0000000..115c852 --- /dev/null +++ b/Postman/PostmanSession.php @@ -0,0 +1,92 @@ +<?php +if (! class_exists ( 'PostmanSession' )) { + + /** + * Persist session state to the database + * + * I heard plugins are forbidden from writing to the http session + * on some hosts, such as WPEngine, so this class write session + * state to the database instead. + * + * What's better about this is I don't have to prefix all my + * variables with , in fear of colliding with another + * plugin's similiarily named variables. + * + * @author jasonhendriks + * + */ + class PostmanSession { + // length of time to keep items around + const MINUTES_IN_SECONDS = 60; + + // + const OAUTH_IN_PROGRESS = 'oauth_in_progress'; + const ACTION = 'action'; + const ERROR_MESSAGE = 'error_message'; + + // singleton instance + public static function getInstance() { + static $inst = null; + if ($inst === null) { + $inst = new PostmanSession (); + } + return $inst; + } + + /** + * OAuth is in progress $state is the randomly generated + * transaction ID + * + * @param unknown $state + */ + public function isSetOauthInProgress() { + return get_transient ( self::OAUTH_IN_PROGRESS ) != false; + } + public function setOauthInProgress($state) { + set_transient ( self::OAUTH_IN_PROGRESS, $state, 3 * self::MINUTES_IN_SECONDS ); + } + public function getOauthInProgress() { + return get_transient ( self::OAUTH_IN_PROGRESS ); + } + public function unsetOauthInProgress() { + delete_transient ( self::OAUTH_IN_PROGRESS ); + } + + /** + * Sometimes I need to keep track of what I'm doing between requests + * + * @param unknown $action + */ + public function isSetAction() { + return get_transient ( self::ACTION ) != false; + } + public function setAction($action) { + set_transient ( self::ACTION, $action, 30 * self::MINUTES_IN_SECONDS ); + } + public function getAction() { + return get_transient ( self::ACTION ); + } + public function unsetAction() { + delete_transient ( self::ACTION ); + } + + /** + * Sometimes I need to keep track of what I'm doing between requests + * + * @param unknown $message + */ + public function isSetErrorMessage() { + return get_transient ( self::ERROR_MESSAGE ) != false; + } + public function setMessage($message) { + set_transient ( self::ERROR_MESSAGE, $message, 30 * self::MINUTES_IN_SECONDS ); + } + public function getMessage() { + return get_transient ( self::ERROR_MESSAGE ); + } + public function unsetMessage() { + delete_transient ( self::ERROR_MESSAGE ); + } + + } +}
\ No newline at end of file |