Skip to content

Instantly share code, notes, and snippets.

@kudchikarsk
kudchikarsk / http-cache.service.ts
Created April 21, 2019 05:53
Http cache service in angular
import { Injectable } from '@angular/core';
import { HttpResponse } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class HttpCacheService {
private requests: any = { };
@kudchikarsk
kudchikarsk / cache.interceptor.ts
Last active April 21, 2019 05:55
Cache interceptor in Angular using a cache service
import { Injectable } from '@angular/core';
import { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest, HttpResponse } from '@angular/common/http';
import { Observable, of } from 'rxjs';
import { tap } from 'rxjs/operators';
import { HttpCacheService } from 'app/services/http-cache.service'; // https://gist.github.com/kudchikarsk/f2f8754eca3cf86db3fbbc833c330e55
@Injectable()
export class CacheInterceptor implements HttpInterceptor {
@kudchikarsk
kudchikarsk / add-header.interceptor.ts
Last active April 21, 2019 06:19
Add Header using Interceptor on every http client request
import { Injectable } from '@angular/core';
import { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';
import { Observable } from 'rxjs';
@Injectable()
export class AddHeaderInterceptor implements HttpInterceptor {
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
console.log(`AddHeaderInterceptor - ${req.url}`);
@kudchikarsk
kudchikarsk / data.service.spec.ts
Created April 21, 2019 08:11
Testing httpclient in Angular
import { TestBed } from '@angular/core/testing';
import { HttpClientTestingModule, HttpTestingController, TestRequest } from '@angular/common/http/testing';
import { DataService } from './data.service';
import { Book } from 'app/models/book';
import { BookTrackerError } from 'app/models/bookTrackerError';
describe('DataService Tests', () => {
let dataService: DataService;
@kudchikarsk
kudchikarsk / app.js
Last active April 22, 2019 16:26
Configure routes in Angularjs App
(function() {
var app = angular.module('app', ['ngRoute']);
app.config(['$logProvider', '$routeProvider', '$locationProvider', function ($logProvider, $routeProvider, $locationProvider) {
$logProvider.debugEnabled(true);
//$locationProvider.hashPrefix('!');
@kudchikarsk
kudchikarsk / data.service.js
Created April 22, 2019 16:24
Data service example in AngularJs
(function () {
angular.module('app')
.factory('dataService', ['$http', '$q', '$log', '$timeout', dataService]);
function dataService($http, $q, $log, $timeout) {
return {
getAllSchools: getAllSchools,
getAllClassrooms: getAllClassrooms,
@kudchikarsk
kudchikarsk / ClassroomController.js
Created April 22, 2019 16:24
Controller and $routeParams example n AngularJs
(function () {
angular.module('app')
.controller('ClassroomController', ['dataService', 'notifier', '$routeParams', ClassroomController]);
function ClassroomController(dataService, notifier, $routeParams) {
var vm = this;
vm.month = $routeParams.month;
@kudchikarsk
kudchikarsk / addToken.js
Last active April 23, 2019 16:32
AngularJs service interceptor to inject tokens in every request
(function(module) {
var addToken = function(currentUser, $q) {
return {
request: function(config) {
if (currentUser.profile.token) {
config.headers.Authorization = "Bearer " + currentUser.profile.token;
}
return $q.when(config);
@kudchikarsk
kudchikarsk / oauth.js
Last active April 23, 2019 16:37
AngularJs service to manage login
//refer https://gist.github.com/kudchikarsk/f8ae377255f04cdc00a0fbc35287dbb5 for currentUser Service
(function (module) {
var oauth = function () {
var url = "/login";
this.setUrl = function (newUrl) {
url = newUrl;
};
@kudchikarsk
kudchikarsk / loginRedirects.js
Created April 23, 2019 16:36
Login redirect service interceptor for AngularJS
(function (module) {
var loginRedirect = function () {
var loginUrl = "/login";
var lastPath = "";
this.setLoginUrl = function (value) {
loginUrl = value;
};