Skip to content

Instantly share code, notes, and snippets.

View jermsam's full-sized avatar
🎯
Focusing

Samson Ssali jermsam

🎯
Focusing
View GitHub Profile
@jermsam
jermsam / CreateProductForm.js
Last active July 19, 2018 11:09
A Form to be used for sending Create Product requests to the remote end
// src/CreateProductForm.js
import React, { Component } from 'react';
import {Container,Header,Form, Button,Divider,TextArea} from 'semantic-ui-react';
import client from './feathers'
export default class CreateProductForm extends Component {
state = {
product:{
name:'',
description:'',
@jermsam
jermsam / DisplayGrid.js
Last active July 19, 2018 11:31
A Grid to be used to display Products that are fetched from the remote end by sending a find request
// src/DisplayGrid.js
import React,{Component} from 'react'
import { Container,Divider,Header,Card,Button } from 'semantic-ui-react';
import {Link} from 'react-router-dom'
import client from './feathers'
export default class DisplayGrid extends Component {
state = {
products:[]
};
@jermsam
jermsam / feathers.js
Created July 13, 2018 06:39
Exposing the remote end to the react app
// src/feathers.js
import io from 'socket.io-client'
import feathers from '@feathersjs/client'
// Socket.io is exposed as the `io` global.
const socket = io('http://localhost:3030')
// @feathersjs/client is exposed as the `feathers` global.
const client = feathers()
.configure(feathers.socketio(socket))
//incase we later have to do authentication
.configure(
@jermsam
jermsam / products.model.js
Last active July 19, 2018 11:04
Model Definition
// src/models/products.model.js
// See http://docs.sequelizejs.com/en/latest/docs/models-definition/
// for more of what you can do here.
const Sequelize = require('sequelize');
const DataTypes = Sequelize.DataTypes;
module.exports = function (app) {
const sequelizeClient = app.get('sequelizeClient');
const products = sequelizeClient.define('products', {
id: {
@jermsam
jermsam / sequelize.js
Created July 13, 2018 09:20
sequelize edits
require('dotenv').config();
const Sequelize = require('sequelize');
...
module.exports = function (app) {
const {dialect,host,user,pwd,database,port}=process.env;
const connectionString = `${dialect}://${user}:${pwd}@${host}:${port}/${database}`;
const sequelize = new Sequelize(connectionString, {
dialect: 'mysql',
logging: false,
operatorsAliases,
@jermsam
jermsam / .env
Created July 13, 2018 09:23
environment configuration
host = 'localhost'
dialect = 'mysql'
database = 'myapp-db'
port = 3306
user = 'root'
pwd = ''
@jermsam
jermsam / WithCrossCuttingConcerns.js
Last active July 20, 2018 08:16
A render prop to resolve products as a cross-cutting concern
// src/WithCrossCuttingConcerns.js
import React,{Component} from 'react'
import PropTypes from 'prop-types'
import client from './feathers'
class WithCrossCuttingConcerns extends Component{
state={
products:[],
}
@jermsam
jermsam / DisplayGrid.js
Last active July 20, 2018 08:21
DisplayGrid edited to consume the products render props
// src/DisplayGrid.js
import React from 'react'
import { Container,Divider,Header,Card,Button } from 'semantic-ui-react';
import {Link} from 'react-router-dom'
import WithCrossCuttingConcerns from './WithCrossCuttingConcerns'
const DisplayGrid = () =>(
<Container textAlign='center'>
<Divider section hidden/>
<Header> Display Grid</Header>
@jermsam
jermsam / StockTable.js
Last active July 20, 2018 10:00
StockTable uses and consumes the products props
// src/StockTable.js
import React from 'react'
import { Container,Divider,Header,Table,Button} from 'semantic-ui-react';
import {Link} from 'react-router-dom'
import moment from 'moment'
import WithCrossCuttingConcerns from './WithCrossCuttingConcerns'
function StockTable(){
const computeRunningCost = (thisProduct,products)=>{
@jermsam
jermsam / WithAuthentication.js
Last active July 28, 2018 17:50
strange auth result code at the client
import React,{Component} from 'react'
import PropTypes from 'prop-types'
import client from './feathers'
async function getUserIdFromJwtTocken() {
try {
const token = localStorage.getItem('feathers-jwt');
// console.log('token: ',token)
const payload = await client.passport.verifyJWT(token);
console.log('payload: ',payload)