Skip to content

Instantly share code, notes, and snippets.

@faustoct
faustoct / Backend.js
Created Jul 6, 2020
Backend requests
View Backend.js
import { AsyncStorage } from 'react-native'
import Location from './Location.js'
class Backend {
static get = async (url,params,callback) => {
let p = ''
params = (params ? params : {})
const {location, status} = await Location.getAsync();
if(!location)return;
let endpoint = null
@faustoct
faustoct / Location.js
Created Jul 6, 2020
Encapsulating location
View Location.js
import { Platform, PermissionsAndroid } from 'react-native'
import { Constants, Permissions } from 'react-native-unimodules'
import NetInfo from "@react-native-community/netinfo";
import * as L from 'expo-location'
class Location {
static getAsync = async () => {
if (Platform.OS === 'android' && !Constants.isDevice) {
throw new Exception('Geolocation only in devices not emulators.')
}
@faustoct
faustoct / api.rb
Last active Jul 22, 2019
filter before quest
View api.rb
App::Api.controllers do
before do
auth_user
end
get '/me'
{id:@user[:id],name:@user[:name],username:@user[:username]}.to_json
end
end
@faustoct
faustoct / before-filter.rb
Created Jul 22, 2019
filter before quest
View before-filter.rb
App::Api.controllers do
before do
auth_user
end
get '/list/friends'
{friends:['Joao','Maria','May']}.to_json
end
end
@faustoct
faustoct / jwt_init
Created Jul 22, 2019
session jwt init
View jwt_init
sha256 = Digest::SHA256.hexdigest "some key goes here you should generate yours"
HMAC_SECRET = sha256
View redis_init.rb
uricache = URI.parse(ENV["REDIS_URL"])
CACHE = Redis.new(:host => uricache.host, :port => uricache.port, :password => uricache.password)
@faustoct
faustoct / helper.rb
Created Jul 22, 2019
handle distributed user session
View helper.rb
def auth_user user=nil
#token = JWT.decode(params[:token], hmac_secret, true, { :algorithm => 'HS256' })
token = request.env["HTTP_TOKEN"]
halt 401, "token + user are nil" if (token.blank? && user.blank?)
@user ||= CACHE.get(token)
unless @user.blank?
halt 400, "existent user for a blank token" if token.blank?
@faustoct
faustoct / UsageComponentDate.js
Last active May 30, 2019
using date component
View UsageComponentDate.js
import React, { Component } from 'react';
import Date from require('./components/Date.js')
export default class App extends Component {
initAsync = async (that) => {
}
constructor(props) {
super(props)
@faustoct
faustoct / ComponentDate.js
Last active May 14, 2019
react native component example
View ComponentDate.js
import React, { Component } from 'react';
import { Text, View } from 'react-native';
let moment = null
class Date extends Component {
initAsync = async () => {
moment = require('moment')
}
constructor(props) {
@faustoct
faustoct / UsageProxySnippet.js
Last active May 14, 2019
Exemplo de uso do proxy
View UsageProxySnippet.js
<TouchableOpacity onPress={()=>{Views.navigator.navigate({
routeName: 'Proxy',
params: {component:'List', title: 'Curtidas'},
key: Backend.uuid() })}}>
<Text style={{fontSize: 16, margin:10}}>Curtidas</Text>
</TouchableOpacity>