ngx-avatars
Version:
A universal avatar component for Angular applications that fetches / generates avatar based on the information you have about the user.
27 lines • 2.97 kB
JavaScript
import { AsyncSource } from './async-source';
import { AvatarSource } from './avatar-source.enum';
/**
* Google source implementation.
* Fetch avatar source based on google identifier
* and image size
*/
export class Google extends AsyncSource {
constructor(sourceId) {
super(sourceId);
this.sourceType = AvatarSource.GOOGLE;
}
getAvatar() {
return `https://picasaweb.google.com/data/entry/api/user/${this.sourceId}?alt=json`;
}
/**
* Extract google avatar from json data
*/
processResponse(data, size) {
const avatarSrc = data.entry.gphoto$thumbnail.$t;
if (avatarSrc) {
return avatarSrc.replace('s64', 's' + size);
}
return null;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWF2YXRhcnMvc3JjL2xpYi9zb3VyY2VzL2dvb2dsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXBEOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sTUFBTyxTQUFRLFdBQVc7SUFHckMsWUFBWSxRQUFnQjtRQUMxQixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFIVCxlQUFVLEdBQWlCLFlBQVksQ0FBQyxNQUFNLENBQUM7SUFJeEQsQ0FBQztJQUVNLFNBQVM7UUFDZCxPQUFPLG9EQUNMLElBQUksQ0FBQyxRQUNQLFdBQVcsQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNJLGVBQWUsQ0FBQyxJQUFxRCxFQUFFLElBQWE7UUFDekYsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7UUFDakQsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jU291cmNlIH0gZnJvbSAnLi9hc3luYy1zb3VyY2UnO1xyXG5pbXBvcnQgeyBBdmF0YXJTb3VyY2UgfSBmcm9tICcuL2F2YXRhci1zb3VyY2UuZW51bSc7XHJcblxyXG4vKipcclxuICogIEdvb2dsZSBzb3VyY2UgaW1wbGVtZW50YXRpb24uXHJcbiAqICBGZXRjaCBhdmF0YXIgc291cmNlIGJhc2VkIG9uIGdvb2dsZSBpZGVudGlmaWVyXHJcbiAqICBhbmQgaW1hZ2Ugc2l6ZVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEdvb2dsZSBleHRlbmRzIEFzeW5jU291cmNlIHtcclxuICByZWFkb25seSBzb3VyY2VUeXBlOiBBdmF0YXJTb3VyY2UgPSBBdmF0YXJTb3VyY2UuR09PR0xFO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihzb3VyY2VJZDogc3RyaW5nKSB7XHJcbiAgICBzdXBlcihzb3VyY2VJZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0QXZhdGFyKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYGh0dHBzOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9lbnRyeS9hcGkvdXNlci8ke1xyXG4gICAgICB0aGlzLnNvdXJjZUlkXHJcbiAgICB9P2FsdD1qc29uYDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEV4dHJhY3QgZ29vZ2xlIGF2YXRhciBmcm9tIGpzb24gZGF0YVxyXG4gICAqL1xyXG4gIHB1YmxpYyBwcm9jZXNzUmVzcG9uc2UoZGF0YTogeyBlbnRyeTogeyBncGhvdG8kdGh1bWJuYWlsOiB7ICR0OiBzdHJpbmcgfSB9IH0sIHNpemU/OiBudW1iZXIpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIGNvbnN0IGF2YXRhclNyYyA9IGRhdGEuZW50cnkuZ3Bob3RvJHRodW1ibmFpbC4kdDtcclxuICAgIGlmIChhdmF0YXJTcmMpIHtcclxuICAgICAgcmV0dXJuIGF2YXRhclNyYy5yZXBsYWNlKCdzNjQnLCAncycgKyBzaXplKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbn1cclxuIl19