UNPKG

ngx-avatar-2

Version:

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

47 lines 4.91 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.154; export class Vkontakte extends AsyncSource { sourceType = AvatarSource.VKONTAKTE; constructor(sourceId) { super(sourceId); } 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmtvbnRha3RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWF2YXRhci0yL3NyYy9saWIvc291cmNlcy92a29udGFrdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVwRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDO0FBRXpCLE1BQU0sT0FBTyxTQUFVLFNBQVEsV0FBVztJQUMvQixVQUFVLEdBQWlCLFlBQVksQ0FBQyxTQUFTLENBQUM7SUFFM0QsWUFBWSxRQUFnQjtRQUMxQixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVNLFNBQVMsQ0FBQyxJQUFZO1FBQzNCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsT0FBTywrQ0FDTCxJQUFJLENBQUMsUUFDUCxNQUFNLFVBQVUsV0FBVyxPQUFPLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxlQUFlLENBQUMsSUFJdEI7UUFDQyw4REFBOEQ7UUFDOUQsOERBQThEO1FBQzlELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDNUQsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNqQixPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0Qsb0JBQW9CO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksQ0FBQztJQUNuRCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxZQUFZLENBQUMsSUFBWTtRQUMvQixJQUFJLElBQUksSUFBSSxFQUFFLEVBQUU7WUFDZCxPQUFPLFVBQVUsQ0FBQztTQUNuQjtRQUVELElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRTtZQUNmLE9BQU8sV0FBVyxDQUFDO1NBQ3BCO1FBRUQsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFO1lBQ2YsT0FBTyxXQUFXLENBQUM7U0FDcEI7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1NvdXJjZSB9IGZyb20gJy4vYXN5bmMtc291cmNlJztcbmltcG9ydCB7IEF2YXRhclNvdXJjZSB9IGZyb20gJy4vYXZhdGFyLXNvdXJjZS5lbnVtJztcblxuLyoqXG4gKiAgVmtvbnRha3RlIHNvdXJjZSBpbXBsZW1lbnRhdGlvbi5cbiAqICBGZXRjaCBhdmF0YXIgc291cmNlIGJhc2VkIG9uIHZrb250YWt0ZSBpZGVudGlmaWVyXG4gKiAgYW5kIGltYWdlIHNpemVcbiAqL1xuY29uc3QgYXBpVmVyc2lvbiA9IDUuMTU0O1xuXG5leHBvcnQgY2xhc3MgVmtvbnRha3RlIGV4dGVuZHMgQXN5bmNTb3VyY2Uge1xuICByZWFkb25seSBzb3VyY2VUeXBlOiBBdmF0YXJTb3VyY2UgPSBBdmF0YXJTb3VyY2UuVktPTlRBS1RFO1xuXG4gIGNvbnN0cnVjdG9yKHNvdXJjZUlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzb3VyY2VJZCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0QXZhdGFyKHNpemU6IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3QgaW1nU2l6ZSA9IHRoaXMuZ2V0SW1hZ2VTaXplKHNpemUpO1xuICAgIHJldHVybiBgaHR0cHM6Ly9hcGkudmsuY29tL21ldGhvZC91c2Vycy5nZXQ/dXNlcl9pZD0ke1xuICAgICAgdGhpcy5zb3VyY2VJZFxuICAgIH0mdj0ke2FwaVZlcnNpb259JmZpZWxkcz0ke2ltZ1NpemV9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBleHRyYWN0IHZrb250YWt0ZSBhdmF0YXIgZnJvbSBqc29uIGRhdGFcbiAgICovXG4gIHB1YmxpYyBwcm9jZXNzUmVzcG9uc2UoZGF0YToge1xuICAgIHJlc3BvbnNlOiB7XG4gICAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG4gICAgfVtdXG4gIH0pOiBzdHJpbmcgfCBudWxsIHtcbiAgICAvLyBhdmF0YXIga2V5IHByb3BlcnR5IGlzIHRoZSBzaXplIHVzZWQgdG8gZ2VuZXJhdGUgYXZhdGFyIHVybFxuICAgIC8vIHNpemUgcHJvcGVydHkgaXMgYWx3YXlzIHRoZSBsYXN0IGtleSBpbiB0aGUgcmVzcG9uc2Ugb2JqZWN0XG4gICAgY29uc3Qgc2l6ZVByb3BlcnR5ID0gT2JqZWN0LmtleXMoZGF0YVsncmVzcG9uc2UnXVswXSkucG9wKCk7XG4gICAgaWYgKCFzaXplUHJvcGVydHkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICAvLyByZXR1cm4gYXZhdGFyIHNyY1xuICAgIHJldHVybiBkYXRhWydyZXNwb25zZSddWzBdW3NpemVQcm9wZXJ0eV0gfHwgbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGltYWdlIHNpemUgcmVsYXRlZCB0byB2a29udGFrdGUgQVBJXG4gICAqL1xuICBwcml2YXRlIGdldEltYWdlU2l6ZShzaXplOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGlmIChzaXplIDw9IDUwKSB7XG4gICAgICByZXR1cm4gJ3Bob3RvXzUwJztcbiAgICB9XG5cbiAgICBpZiAoc2l6ZSA8PSAxMDApIHtcbiAgICAgIHJldHVybiAncGhvdG9fMTAwJztcbiAgICB9XG5cbiAgICBpZiAoc2l6ZSA8PSAyMDApIHtcbiAgICAgIHJldHVybiAncGhvdG9fMjAwJztcbiAgICB9XG5cbiAgICByZXR1cm4gJ3Bob3RvX21heCc7XG4gIH1cbn1cbiJdfQ==