Skip to content

Instantly share code, notes, and snippets.

View kianaditya's full-sized avatar

Aditya Naik kianaditya

View GitHub Profile
@kianaditya
kianaditya / axiosService.js
Last active April 1, 2020 07:18
Axios requests interceptor example
import Credentials from "./Credentials";
const axios = require("axios");
const http = axios.create(); // Creates new axios instance
const credentials = new Credentials(); // Gets access to all credentials functions
http.interceptors.request.use(
async config => {
const token = await credentials.getCredentials(); // Gets credentials from localStorage
if (token) config.headers.Authorization = `Bearer ${token}`; // Inserts credentials as bearer token in request headers
@kianaditya
kianaditya / axiosResponseInterceptor.js
Last active April 1, 2020 07:21
Axios reponse interceptor example
http.interceptors.response.use(
response => {
return response;
},
error => {
if (error.response) {
switch (error.response.status) {
case 500:
return (document.location.href =
process.env.REACT_APP_CLIENT_URL + "/500");
@kianaditya
kianaditya / CheckoutForm.js
Last active August 30, 2019 14:04
Adds stripe elements and creates a basic payment form
//CheckoutForm.js
import React, { Component } from "react";
import {
CardNumberElement,
CardExpiryElement,
CardCVCElement,
injectStripe
} from "react-stripe-elements";
const axios = require("axios");
class CheckoutForm extends Component {
@kianaditya
kianaditya / ComponentDidMount.js
Created August 30, 2019 08:12
Lifecycle method for stripe elements
componentDidMount() {
if (window.Stripe) {
this.setState({stripe: window.Stripe('pk_test_12345')});
} else {
document.querySelector('#stripe-js').addEventListener('load', () => {
// Create Stripe instance once Stripe.js loads
this.setState({stripe: window.Stripe('pk_test_12345')});
});
}
}
@kianaditya
kianaditya / index.js
Last active October 30, 2019 15:44
index for stripe elements implementation
// index.js
import React from "react";
import { render } from "react-dom";
import {Elements, StripeProvider } from "react-stripe-elements";
import App from "./App.js";
render(
<StripeProvider apiKey="pk_test_12345">
<Elements>
<App />
</Elements>
@kianaditya
kianaditya / cypressStripeTest.js
Created August 30, 2019 11:13
Test stripe implementation using cypress
cy.get('iframe[name^="__privateStripeFrame5"]').then($iframe => {
const $body = $iframe.contents().find("body");
cy.wrap($body)
.find('input[name="cardnumber"]')
.type("4242424242424242", { delay: 10 });
});
cy.get('iframe[name^="__privateStripeFrame6"]').then($iframe => {
const $body = $iframe.contents().find("body");
cy.wrap($body)
.find('input[name="exp-date"]')
@kianaditya
kianaditya / gameInformation.js
Created October 4, 2019 06:43
refactors file using map
import React from "react";
const GameInformation = () => {
return (
<div className="game-header">
<h1>Rock, Paper, Scissors</h1>
<h3>Welcome, the rules are simple:</h3>
<ul>
{[["ROCK", "SCISSORS"], ["PAPER", "ROCK"], ["SCISSORS", "PAPER"]].map(
array => {
@kianaditya
kianaditya / event.rb
Created November 15, 2019 12:57
Google hangouts in rails - event model
class Event < ApplicationRecord
validates_presence_of :title, message: "can't be blank"
validates_presence_of :description, message: "can't be blank"
validates_presence_of :start_date, message: "can't be blank"
validates_presence_of :end_date, message: "can't be blank"
after_create :create_calendar_event
def create_calendar_event
require 'googleauth'
require 'google/apis'
require 'google/apis/calendar_v3'
module GoogleMeetService
def self.create_google_event(event)
authorize_client
google_event = create_calendar_event(event)
updated_google_event = update_calendar_event(event,google_event)
event.update_attribute(:conference_link,updated_google_event.hangout_link)
@kianaditya
kianaditya / .travis.yml
Created December 6, 2019 11:24
Travis CI basic configuration for cypress
language: node_js
node_js:
- 12
addons:
apt:
packages:
# Ubuntu 16+ does not install this dependency by default, so we need to install it ourselves
- libgconf-2-4
cache:
# Caches $HOME/.npm when npm ci is default script command