Skip to content

Instantly share code, notes, and snippets.

@samueljmurray
samueljmurray / guardian_serializer.ex
Last active March 27, 2017 10:56
Guardian serializer
defmodule YayCorp.GuardianSerializer do
@behaviour Guardian.Serializer
alias YayCorp.{Repo, UserAuth}
def for_token(user_auth = %UserAuth{}), do: { :ok, "UserAuth:#{user_auth.id}" }
def for_token(_), do: { :error, "Unknown resource type" }
def from_token("UserAuth:" <> id), do: { :ok, Repo.get(UserAuth, id) }
def from_token(_), do: { :error, "Unknown resource type" }
@samueljmurray
samueljmurray / user_controller_show_action.ex
Last active March 27, 2017 10:56
User controller show action
defmodule YayCorp.API.UserController do
use YayCorp.Web, :controller
use Guardian.Phoenix.Controller
alias YayCorp.{User, UserAuth, Repo}
def show(conn, %{"id" => id}, user_auth, _claims) do
requested_user = Repo.get!(User, id)
# users can only retrieve their own details
def start(_type, _args) do
import Supervisor.Spec
children = [
worker(GuardianDb.ExpiredSweeper, [])
# ...
]
Supervisor.start_link(children, [...])
end
@samueljmurray
samueljmurray / session_delete_action.ex
Created March 27, 2017 10:29
Session delete action
def delete(conn, _params) do
jwt = Guardian.Plug.current_token(conn)
{:ok, claims} = Guardian.Plug.claims(conn)
Guardian.revoke!(jwt, claims)
# ...
end
@samueljmurray
samueljmurray / OkHttpCertPin.java
Last active August 26, 2021 08:22
Certificate pinning in React Native Android
package com.example.app;
import com.facebook.react.modules.network.OkHttpClientFactory;
import com.facebook.react.modules.network.OkHttpClientProvider;
import com.facebook.react.modules.network.ReactCookieJarContainer;
import java.util.concurrent.TimeUnit;
import okhttp3.CertificatePinner;
import okhttp3.OkHttpClient;
@samueljmurray
samueljmurray / MainActivity.java
Last active August 26, 2021 08:22
Certificate pinning in React Native Android - MainActivity.java imports
import com.example.app.OkHttpCertPin;
import com.facebook.react.modules.network.OkHttpClientProvider;
@samueljmurray
samueljmurray / MainActivity.java
Last active August 26, 2021 08:22
Certificate pinning in React Native Android - MainActivity.java methods
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
OkHttpClientProvider.setOkHttpClientFactory(new OkHttpCertPin());
}
@samueljmurray
samueljmurray / heading.css
Created May 16, 2017 14:41
CSS heading style
.heading {
font-family: Papyrus;
font-size: 24px;
font-weight: 700;
}
@samueljmurray
samueljmurray / heading-style.js
Created May 16, 2017 14:41
React Native heading style
const styles = StyleSheet.create({
heading: {
fontFamily: "Papyrus",
fontSize: 24,
fontWeight: 700
}
});
@samueljmurray
samueljmurray / cats-n-dogs.jsx
Created May 16, 2017 14:42
Reusing style names
const catsListStyles = StyleSheet.create({
listContainer: {
backgroundColor: 'red'
}
});
const dogsListStyles = StyleSheet.create({
listContainer: {
backgroundColor: 'red'
}
});