Path: blob/1.0-develop/resources/scripts/api/definitions/user/transformers.ts
7461 views
import * as Models from '@definitions/user/models';1import { FractalResponseData } from '@/api/http';2import { transform } from '@definitions/helpers';34export default class Transformers {5static toSSHKey = (data: Record<any, any>): Models.SSHKey => {6return {7name: data.name,8publicKey: data.public_key,9fingerprint: data.fingerprint,10createdAt: new Date(data.created_at),11};12};1314static toUser = ({ attributes }: FractalResponseData): Models.User => {15return {16uuid: attributes.uuid,17username: attributes.username,18email: attributes.email,19image: attributes.image,20twoFactorEnabled: attributes['2fa_enabled'],21permissions: attributes.permissions || [],22createdAt: new Date(attributes.created_at),23can(permission): boolean {24return this.permissions.includes(permission);25},26};27};2829static toActivityLog = ({ attributes }: FractalResponseData): Models.ActivityLog => {30const { actor } = attributes.relationships || {};3132return {33id: attributes.id,34batch: attributes.batch,35event: attributes.event,36ip: attributes.ip,37isApi: attributes.is_api,38description: attributes.description,39properties: attributes.properties,40hasAdditionalMetadata: attributes.has_additional_metadata ?? false,41timestamp: new Date(attributes.timestamp),42relationships: {43actor: transform(actor as FractalResponseData, this.toUser, null),44},45};46};47}4849export class MetaTransformers {}505152