Skip to content

Instantly share code, notes, and snippets.

@halvardos
Last active March 28, 2017 12:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save halvardos/1a4366f835d2c939b49def2d988d85c0 to your computer and use it in GitHub Desktop.
Save halvardos/1a4366f835d2c939b49def2d988d85c0 to your computer and use it in GitHub Desktop.
var Zap = {
get_session_info: function(bundle) {
var user_token,
request_data,
token_request_payload,
token_response,
parsed_response;
request_data = {
email: bundle.auth_fields.username,
password: bundle.auth_fields.password
};
token_request_payload = {
method: 'POST',
url: bundle.auth_fields.url + '/api/session',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json'
},
data: z.JSON.stringify(request_data)
};
token_response = z.request(token_request_payload);
parsed_response = z.JSON.parse(token_response.content);
if (parsed_response.errors) {
throw new HaltedException('Error: ' + parsed_response.errors.message);
}
if (parsed_response.id) {
user_token = parsed_response.id;
} else {
throw new HaltedException('Invalid Login Credentials!');
}
return { 'user_token': user_token };
},
add_custom_headers: function(bundle) {
bundle.request.method = 'GET';
bundle.request.headers['X-Metabase-Session'] = bundle.auth_fields.user_token;
delete bundle.request.headers.username;
delete bundle.request.headers.password;
return bundle;
},
auth_test_pre_poll: function(bundle) {
bundle = this.add_custom_headers(bundle);
var request_data = {};
bundle.request.data = z.JSON.stringify(request_data);
return bundle.request;
},
auth_test_post_poll: function(bundle) {
var parsed_response = z.JSON.parse(bundle.response.content);
console.log(parsed_response);
if (parsed_response.errors) {
throw new InvalidSessionException();
}
return parsed_response;
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment