Skip to content

Instantly share code, notes, and snippets.

View kaiobrito's full-sized avatar

Kaio Henrique Alves de Brito kaiobrito

View GitHub Profile
@kaiobrito
kaiobrito / controller.go
Last active July 8, 2022 14:53
Repository blogpost
package main
import (
"net/http"
"github.com/gin-gonic/gin"
"github.com/kaiobrito/repository-blogpost/data"
)
type Response[T any] struct {
import merge from "lodash.merge";
import fetch from "node-fetch";
const fetchSchemas = (urls) => {
const requests = urls.map((url) =>
fetch(url)
.then((res) => res.json())
.catch(() => ({}))
);
@kaiobrito
kaiobrito / TodoList.jsx
Created July 20, 2018 20:46
TodoList + Redux
class TodoList extends React.Component {
static defaultProps = {
todos: {}
};
render() {
return (
<ul>
{this.props.todos
.valueSeq()
@kaiobrito
kaiobrito / Actions.jsx
Created July 20, 2018 20:45
Firebase + Redux Saga
export const actionTypes = {
FETCH_USER_REQUEST: "USER/FETCH",
FETCH_USER_REQUEST_ERROR: "USER/FETCH_ERROR",
USER_CHANGED: "USER/CHANGED",
LOGOUT: "LOGOUT",
ACCESS_TOKEN_CHANGED: "ACCESS_TOKEN/CHANGED"
};
@kaiobrito
kaiobrito / Actions.jsx
Created July 20, 2018 20:44
Authentication with Redux + Redux Saga
export const actionCreators = {
changeUser: user => ({
type: actionTypes.USER_CHANGED,
payload: user
}),
logout: () => ({
type: actionTypes.LOGOUT
}),
fetchUser: () => ({
type: actionTypes.FETCH_USER_REQUEST
@kaiobrito
kaiobrito / Action.jsx
Created July 20, 2018 20:42
Todo List + Redux + React Component
export const actionTypes = {
REFRESH_LIST: "TODOS/LIST_REFRESH"
};
export const actionsCreators = {
updateList: todos => ({
type: actionTypes.REFRESH_LIST,
payload: todos
})
};
@kaiobrito
kaiobrito / todolist+firebase+react component.jsx
Last active July 20, 2018 20:32
Todo list + Firebase + React Component
import React from "react";
import firebase from "firebase";
import config from "./config.json";
firebase.initializeApp(config);
class TodoList extends React.Component {
state = {
todos: []
};
@kaiobrito
kaiobrito / NSArray+FP.h
Created January 9, 2018 17:29
Functional Programming methods for Objective C
//
// NSArray+FP.h
//
// Created by Kaio Brito on 09/01/18.
//
#import <Foundation/Foundation.h>
typedef id(^MapBlock)(id);
typedef BOOL(^FilterBlock)(id);
extension SearchableWebService {
func search(term: String, handler: SearchResponseHandler? = nil) {
let url = self.searchURL(withTerm: term)
let task = URLSession.shared.dataTask(with: url) { data, _ , _ in
if let data = data {
let json = JSON(data: data)
handler?(json["items"].arrayValue.map(T.init))
} else {
handler?(nil)
}
protocol JSONMappable {
init(json: JSON)
}
struct GHUser: JSONMappable {
var login: String
var id: String
init(json: JSON) {