mirror of
https://github.com/FunkinCrew/Funkin.git
synced 2024-11-23 16:17:53 -05:00
65 lines
No EOL
1.7 KiB
Haxe
65 lines
No EOL
1.7 KiB
Haxe
package io.newgrounds.objects;
|
|
|
|
class Session extends Object {
|
|
|
|
/** If true, the session_id is expired. Use App.startSession to get a new one.*/
|
|
public var expired(default, null):Bool;
|
|
|
|
/** A unique session identifier */
|
|
public var id(default, null):String;
|
|
|
|
/** If the session has no associated user but is not expired, this property will provide a URL that can be used to sign the user in. */
|
|
public var passportUrl(default, null):String;
|
|
|
|
/** If true, the user would like you to remember their session id. */
|
|
public var remember(default, null):Bool;
|
|
|
|
/** If the user has not signed in, or granted access to your app, this will be null */
|
|
public var user(default, null):User;
|
|
|
|
//TODO:desciption
|
|
public var status(get, never):SessionStatus;
|
|
|
|
public function new(core:NGLite, data:Dynamic = null) { super(core, data); }
|
|
|
|
override public function parse(data:Dynamic):Void {
|
|
|
|
id = data.id;
|
|
expired = data.expired;
|
|
passportUrl = data.passport_url;
|
|
remember = data.remember;
|
|
|
|
// --- KEEP THE SAME INSTANCE
|
|
if (user == null)
|
|
user = data.user;
|
|
// TODO?: update original user instance with new data. (probly not)
|
|
|
|
super.parse(data);
|
|
}
|
|
|
|
public function get_status():SessionStatus {
|
|
|
|
if (expired || id == null || id == "")
|
|
return SessionStatus.SESSION_EXPIRED;
|
|
|
|
if (user != null && user.name != null && user.name != "")
|
|
return SessionStatus.USER_LOADED;
|
|
|
|
return SessionStatus.REQUEST_LOGIN;
|
|
}
|
|
|
|
public function expire():Void {
|
|
|
|
expired = true;
|
|
id = null;
|
|
user = null;
|
|
}
|
|
}
|
|
|
|
@:enum
|
|
abstract SessionStatus(String) {
|
|
|
|
var SESSION_EXPIRED = "session-expired";
|
|
var REQUEST_LOGIN = "request-login";
|
|
var USER_LOADED = "user-loaded";
|
|
} |