Skip to content

Instantly share code, notes, and snippets.

var rp = require('request-promise')
const uriAuthToken = 'https://login.windows.net/[YOUR_TENANT].onmicrosoft.com/oauth2/token'
const uriResource = 'http://[YOUR_RESTRICTED_RESOURCE]'
const optionsAuthToken = {
method: 'POST',
uri: uriAuthToken,
form: {
grant_type: 'password',
var rp = require('request-promise'),
Rx = require('rx')
const uriAuthToken = 'https://login.windows.net/[YOUR_TENANT].onmicrosoft.com/oauth2/token'
const uriResource = 'http://[YOUR_RESTRICTED_RESOURCE]'
const optionsAuthToken = {
method: 'POST',
uri: uriAuthToken,
form: {
getAuthorizationHeader() {
if (cacheToken.access_token && cacheToken.expires_on > moment(new Date().getTime()).unix()) {
return $q.when({'Authorization': 'Bearer ' + cacheToken.access_token});
} else {
cacheToken.access_token = storage.getItem('access_token');
cacheToken.refresh_token = storage.getItem('refresh_token');
cacheToken.expires_on = storage.getItem('expires_on');
if (cacheToken.access_token && cacheToken.expires_on > moment(new Date().getTime()).unix()) {
return $q.when({'Authorization': 'Bearer ' + cacheToken.access_token});
} else {
getAuthorizationHeader() {
if (cacheToken.access_token && cacheToken.expires_on > moment(new Date().getTime()).unix()) {
return $q.when({'Authorization': 'Bearer ' + cacheToken.access_token});
} else {
cacheToken.access_token = storage.getItem('access_token');
cacheToken.refresh_token = storage.getItem('refresh_token');
cacheToken.expires_on = storage.getItem('expires_on');
if (cacheToken.access_token && cacheToken.expires_on > moment(new Date().getTime()).unix()) {
return $q.when({'Authorization': 'Bearer ' + cacheToken.access_token});
} else {
updateTripFieldOption(Id, tripFieldOptionList) {
const promises = _.map(tripFieldOptionList, tripFieldOption => {
return authService.getAuthorizationHeader().then(authHeader => {
if (tripFieldOption.Id > 0) {
const url = `${obexConstant.urlOrganization}/tripfieldoption/${tripFieldOption.Id}`;
const putData = {
Id: tripFieldOption.Id,
Name: tripFieldOption.Name,
TripFieldId: tripFieldOption.TripFieldId
};
@khle
khle / gist:4c7a7627733447ea1dae
Created March 24, 2016 03:38 — forked from felixgborrego/gist:7943560
To call Camera or Gallery Intent or any other intent in relation with photos. 1- look for all the available apps in the phone 2- Show a popup with the list of apps
package com.daft.ie.client.widget;
import java.util.ArrayList;
import java.util.List;
import com.daft.ie.R;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.ComponentName;
@khle
khle / .eslintrc
Created July 2, 2016 14:56
.eslintrc for React Native
{
"extends": "airbnb/base",
"plugins": [
"react"
],
"env": {
"node": true,
"jasmine": true
},
"rules": {
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<data>
<variable name="loginViewModel" type="dev.kevinle.exploremvvm.viewmodel.LoginViewModel"/>
<variable name="handler" type="dev.kevinle.exploremvvm.viewmodel.LoginViewModel" />
</data>
<LinearLayout
android:layout_width="match_parent"
import android.databinding.BaseObservable;
import android.databinding.Bindable;
import android.databinding.ObservableField;
import android.os.Handler;
import android.support.design.widget.Snackbar;
import android.transition.Visibility;
import android.view.View;
public class LoginViewModel {
public final ObservableField<String> email =
public class LoginActivity extends AppCompatActivity {
private LoginViewModel loginViewModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityLoginBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_login);
loginViewModel = new LoginViewModel("", "");
binding.setLoginViewModel(loginViewModel);