Ontica/Empiria.Land.Intranet

View on GitHub
src/app/models/e-sign.ts

Summary

Maintainability
A
0 mins
Test Coverage
/**
 * @license
 * Copyright (c) La Vía Óntica SC, Ontica LLC and contributors. All rights reserved.
 *
 * See LICENSE.txt in the project root for complete license information.
 */

import { Identifiable } from '@app/core';

import { LandQuery } from './land-list';


export enum ESignStatus {
  Unsigned = 'Unsigned',
  Signed   = 'Signed',
  Refused  = 'Refused',
  Revoked  = 'Revoked',
}


export const ESignStatusList: Identifiable[] = [
  { uid: ESignStatus.Unsigned, name: 'Por firmar' },
  { uid: ESignStatus.Signed,   name: 'Firmados' },
  // { uid: ESignStatus.Refused,  name: 'Rechazados' },
  { uid: ESignStatus.Revoked,  name: 'Revocados' },
];


export interface ESignRequestsQuery extends LandQuery {
  recorderOfficeUID: string;
  status: ESignStatus;
  keywords: string;
}


export const EmptyESignRequestsQuery: ESignRequestsQuery = {
  recorderOfficeUID: '',
  status: ESignStatus.Unsigned,
  keywords: '',
};


export enum ESignOperationType {
  UpdateStatus = 'update-status',
  Sign         = 'Sign',
  Revoke       = 'Revoke',
  Refuse       = 'Refuse',
  Unrefuse     = 'Unrefuse',
}


export const ESignOperationsList: Identifiable[] = [
  { uid: ESignOperationType.Sign,         name: 'Firmar' },
  { uid: ESignOperationType.Revoke,       name: 'Revocar firma' },
  { uid: ESignOperationType.Refuse,       name: 'Rechazar firmado' },
  { uid: ESignOperationType.Unrefuse,     name: 'Desrechazar firmado' },
  { uid: ESignOperationType.UpdateStatus, name: 'Cambiar estado' },
];


export function buildESignOperationsListByESignStatus(status: ESignStatus): Identifiable[] {
  switch (status) {
    case ESignStatus.Unsigned:

      return [
        { uid: ESignOperationType.Sign,         name: 'Firmar' },
   //     { uid: ESignOperationType.Refuse,       name: 'Rechazar firmado' },
        { uid: ESignOperationType.UpdateStatus, name: 'Cambiar estado' },
      ];

    case ESignStatus.Signed:

      return [
        { uid: ESignOperationType.Revoke,       name: 'Revocar firma' },
        { uid: ESignOperationType.UpdateStatus, name: 'Cambiar estado' },
      ];

    case ESignStatus.Refused:

      return [
        // { uid: ESignOperationType.Unrefuse,     name: 'Desrechazar firmado' },
        // { uid: ESignOperationType.UpdateStatus, name: 'Cambiar estado' },
      ];

    case ESignStatus.Revoked:
    default:
      return [
        { uid: ESignOperationType.Sign,         name: 'Firmar' },
        { uid: ESignOperationType.UpdateStatus, name: 'Cambiar estado' },
      ];
  }
}


export interface ESignCredentials {
  userID: string;
  password: string;
}


export interface ESignCommand {
  commandType: ESignOperationType;
  credentials: ESignCredentials,
  transactionUIDs: string[];
}