Add basic activity log view
This commit is contained in:
parent
d1da46c5aa
commit
c6e8b893c8
9 changed files with 267 additions and 17 deletions
|
@ -1,13 +1,20 @@
|
|||
import { FractalResponseData, FractalResponseList } from '@/api/http';
|
||||
import {
|
||||
FractalPaginatedResponse,
|
||||
FractalResponseData,
|
||||
FractalResponseList,
|
||||
getPaginationSet,
|
||||
PaginatedResult,
|
||||
} from '@/api/http';
|
||||
import { Model } from '@definitions/index';
|
||||
|
||||
type Transformer<T> = (callback: FractalResponseData) => T;
|
||||
type TransformerFunc<T> = (callback: FractalResponseData) => T;
|
||||
|
||||
const isList = (data: FractalResponseList | FractalResponseData): data is FractalResponseList => data.object === 'list';
|
||||
|
||||
function transform<T, M>(data: null | undefined, transformer: Transformer<T>, missing?: M): M;
|
||||
function transform<T, M>(data: FractalResponseData | null | undefined, transformer: Transformer<T>, missing?: M): T | M;
|
||||
function transform<T, M>(data: FractalResponseList | null | undefined, transformer: Transformer<T>, missing?: M): T[] | M;
|
||||
function transform<T> (data: FractalResponseData | FractalResponseList | null | undefined, transformer: Transformer<T>, missing = undefined) {
|
||||
function transform<T, M>(data: null | undefined, transformer: TransformerFunc<T>, missing?: M): M;
|
||||
function transform<T, M>(data: FractalResponseData | null | undefined, transformer: TransformerFunc<T>, missing?: M): T | M;
|
||||
function transform<T, M>(data: FractalResponseList | FractalPaginatedResponse | null | undefined, transformer: TransformerFunc<T>, missing?: M): T[] | M;
|
||||
function transform<T> (data: FractalResponseData | FractalResponseList | FractalPaginatedResponse | null | undefined, transformer: TransformerFunc<T>, missing = undefined) {
|
||||
if (data === undefined || data === null) {
|
||||
return missing;
|
||||
}
|
||||
|
@ -23,4 +30,14 @@ function transform<T> (data: FractalResponseData | FractalResponseList | null |
|
|||
return transformer(data);
|
||||
}
|
||||
|
||||
export { transform };
|
||||
function toPaginatedSet<T extends TransformerFunc<Model>> (
|
||||
response: FractalPaginatedResponse,
|
||||
transformer: T,
|
||||
): PaginatedResult<ReturnType<T>> {
|
||||
return {
|
||||
items: transform(response, transformer) as ReturnType<T>[],
|
||||
pagination: getPaginationSet(response.meta.pagination),
|
||||
};
|
||||
}
|
||||
|
||||
export { transform, toPaginatedSet };
|
||||
|
|
|
@ -3,7 +3,7 @@ import { FractalResponseData } from '@/api/http';
|
|||
import { transform } from '@definitions/helpers';
|
||||
|
||||
export default class Transformers {
|
||||
static toSSHKey (data: Record<any, any>): Models.SSHKey {
|
||||
static toSSHKey = (data: Record<any, any>): Models.SSHKey => {
|
||||
return {
|
||||
name: data.name,
|
||||
publicKey: data.public_key,
|
||||
|
@ -12,7 +12,7 @@ export default class Transformers {
|
|||
};
|
||||
}
|
||||
|
||||
static toUser ({ attributes }: FractalResponseData): Models.User {
|
||||
static toUser = ({ attributes }: FractalResponseData): Models.User => {
|
||||
return {
|
||||
uuid: attributes.uuid,
|
||||
username: attributes.username,
|
||||
|
@ -27,7 +27,7 @@ export default class Transformers {
|
|||
};
|
||||
}
|
||||
|
||||
static toActivityLog ({ attributes }: FractalResponseData): Models.ActivityLog {
|
||||
static toActivityLog = ({ attributes }: FractalResponseData): Models.ActivityLog => {
|
||||
const { actor } = attributes.relationships || {};
|
||||
|
||||
return {
|
||||
|
|
Reference in a new issue