UNPKG

ngx-avatars

Version:

A universal avatar component for Angular applications that fetches / generates avatar based on the information you have about the user.

47 lines 5.13 kB
import { AsyncSource } from './async-source'; import { AvatarSource } from './avatar-source.enum'; /** * Vkontakte source implementation. * Fetch avatar source based on vkontakte identifier * and image size */ const apiVersion = 5.8; export class Vkontakte extends AsyncSource { constructor(sourceId) { super(sourceId); this.sourceType = AvatarSource.VKONTAKTE; } getAvatar(size) { const imgSize = this.getImageSize(size); return `https://api.vk.com/method/users.get?user_id=${this.sourceId}&v=${apiVersion}&fields=${imgSize}`; } /** * extract vkontakte avatar from json data */ processResponse(data) { // avatar key property is the size used to generate avatar url // size property is always the last key in the response object const sizeProperty = Object.keys(data['response'][0]).pop(); if (!sizeProperty) { return null; } // return avatar src return data['response'][0][sizeProperty] || null; } /** * Returns image size related to vkontakte API */ getImageSize(size) { if (size <= 50) { return 'photo_50'; } if (size <= 100) { return 'photo_100'; } if (size <= 200) { return 'photo_200'; } return 'photo_max'; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmtvbnRha3RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWF2YXRhcnMvc3JjL2xpYi9zb3VyY2VzL3Zrb250YWt0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXBEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUM7QUFFdkIsTUFBTSxPQUFPLFNBQVUsU0FBUSxXQUFXO0lBR3hDLFlBQVksUUFBZ0I7UUFDMUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBSFQsZUFBVSxHQUFpQixZQUFZLENBQUMsU0FBUyxDQUFDO0lBSTNELENBQUM7SUFFTSxTQUFTLENBQUMsSUFBWTtRQUMzQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sK0NBQ0wsSUFBSSxDQUFDLFFBQ1AsTUFBTSxVQUFVLFdBQVcsT0FBTyxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksZUFBZSxDQUFDLElBSXRCO1FBQ0MsOERBQThEO1FBQzlELDhEQUE4RDtRQUM5RCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzVELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxvQkFBb0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxDQUFDO0lBQ25ELENBQUM7SUFFRDs7T0FFRztJQUNLLFlBQVksQ0FBQyxJQUFZO1FBQy9CLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ2YsT0FBTyxVQUFVLENBQUM7UUFDcEIsQ0FBQztRQUVELElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ2hCLE9BQU8sV0FBVyxDQUFDO1FBQ3JCLENBQUM7UUFFRCxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNoQixPQUFPLFdBQVcsQ0FBQztRQUNyQixDQUFDO1FBRUQsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNTb3VyY2UgfSBmcm9tICcuL2FzeW5jLXNvdXJjZSc7XHJcbmltcG9ydCB7IEF2YXRhclNvdXJjZSB9IGZyb20gJy4vYXZhdGFyLXNvdXJjZS5lbnVtJztcclxuXHJcbi8qKlxyXG4gKiAgVmtvbnRha3RlIHNvdXJjZSBpbXBsZW1lbnRhdGlvbi5cclxuICogIEZldGNoIGF2YXRhciBzb3VyY2UgYmFzZWQgb24gdmtvbnRha3RlIGlkZW50aWZpZXJcclxuICogIGFuZCBpbWFnZSBzaXplXHJcbiAqL1xyXG5jb25zdCBhcGlWZXJzaW9uID0gNS44O1xyXG5cclxuZXhwb3J0IGNsYXNzIFZrb250YWt0ZSBleHRlbmRzIEFzeW5jU291cmNlIHtcclxuICByZWFkb25seSBzb3VyY2VUeXBlOiBBdmF0YXJTb3VyY2UgPSBBdmF0YXJTb3VyY2UuVktPTlRBS1RFO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihzb3VyY2VJZDogc3RyaW5nKSB7XHJcbiAgICBzdXBlcihzb3VyY2VJZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0QXZhdGFyKHNpemU6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBjb25zdCBpbWdTaXplID0gdGhpcy5nZXRJbWFnZVNpemUoc2l6ZSk7XHJcbiAgICByZXR1cm4gYGh0dHBzOi8vYXBpLnZrLmNvbS9tZXRob2QvdXNlcnMuZ2V0P3VzZXJfaWQ9JHtcclxuICAgICAgdGhpcy5zb3VyY2VJZFxyXG4gICAgfSZ2PSR7YXBpVmVyc2lvbn0mZmllbGRzPSR7aW1nU2l6ZX1gO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogZXh0cmFjdCB2a29udGFrdGUgYXZhdGFyIGZyb20ganNvbiBkYXRhXHJcbiAgICovXHJcbiAgcHVibGljIHByb2Nlc3NSZXNwb25zZShkYXRhOiB7XHJcbiAgICByZXNwb25zZToge1xyXG4gICAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XHJcbiAgICB9W11cclxuICB9KTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICAvLyBhdmF0YXIga2V5IHByb3BlcnR5IGlzIHRoZSBzaXplIHVzZWQgdG8gZ2VuZXJhdGUgYXZhdGFyIHVybFxyXG4gICAgLy8gc2l6ZSBwcm9wZXJ0eSBpcyBhbHdheXMgdGhlIGxhc3Qga2V5IGluIHRoZSByZXNwb25zZSBvYmplY3RcclxuICAgIGNvbnN0IHNpemVQcm9wZXJ0eSA9IE9iamVjdC5rZXlzKGRhdGFbJ3Jlc3BvbnNlJ11bMF0pLnBvcCgpO1xyXG4gICAgaWYgKCFzaXplUHJvcGVydHkpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICAvLyByZXR1cm4gYXZhdGFyIHNyY1xyXG4gICAgcmV0dXJuIGRhdGFbJ3Jlc3BvbnNlJ11bMF1bc2l6ZVByb3BlcnR5XSB8fCBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBpbWFnZSBzaXplIHJlbGF0ZWQgdG8gdmtvbnRha3RlIEFQSVxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0SW1hZ2VTaXplKHNpemU6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBpZiAoc2l6ZSA8PSA1MCkge1xyXG4gICAgICByZXR1cm4gJ3Bob3RvXzUwJztcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc2l6ZSA8PSAxMDApIHtcclxuICAgICAgcmV0dXJuICdwaG90b18xMDAnO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzaXplIDw9IDIwMCkge1xyXG4gICAgICByZXR1cm4gJ3Bob3RvXzIwMCc7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuICdwaG90b19tYXgnO1xyXG4gIH1cclxufVxyXG4iXX0=