File

projects/netgrif-components-core/src/lib/resources/engine-endpoint/petri-net-resource.service.ts

Extends

AbstractResourceService

Index

Methods

Constructor

constructor(provider: ResourceProvider, configService: ConfigurationService)
Parameters :
Name Type Optional
provider ResourceProvider No
configService ConfigurationService No

Methods

Public deletePetriNet
deletePetriNet(netId: string)

delete PetriNet

Request Type: DELETE

Request URL: {{baseUrl}}/api/petrinet/{id}

Parameters :
Name Type Optional Description
netId string No

stringId of the deleted Petri Net

Returns : Observable<MessageResource>
Public getAll
getAll(params?: Params)

Get All Using Petri Net

Request Type: GET

Request URL: {{baseUrl}}/api/petrinet

Parameters :
Name Type Optional
params Params Yes
Returns : Observable<Array<PetriNetReference>>
Public getDataPetriNet
getDataPetriNet(body: object)

Get Data Field References Using

Request Type: POST

Request URL: {{baseUrl}}/api/petrinet/data

Parameters :
Name Type Optional
body object No
Returns : Observable<any>
Public getNetFile
getNetFile(netId: string)

get Net File

Request Type: GET

Request URL: {{baseUrl}}/api/petrinet/{netId}/file

Parameters :
Name Type Optional
netId string No
Public getOne
getOne(identifier: string, version: string, params?: Params)

get One Net

Request Type: GET

Request URL: {{baseUrl}}/api/petrinet/{identifier}/{version}

Parameters :
Name Type Optional
identifier string No
version string No
params Params Yes
Returns : Observable<PetriNetReference>
Public getOneById
getOneById(netId: string, params?: Params)

get One Net by ID

Request Type: GET

Request URL: {{baseUrl}}/api/petrinet/{id}

Parameters :
Name Type Optional
netId string No
params Params Yes
Public getPetriNetRoles
getPetriNetRoles(netId: string, params?: Params)

Get Roles References Using

Request Type: GET

Request URL: {{baseUrl}}/api/petrinet/{id}/roles

Parameters :
Name Type Optional
netId string No
params Params Yes
Returns : Observable<RolesAndPermissions>
Public getPetriNetTransactions
getPetriNetTransactions(netId: string, params?: Params)

Get Transaction References Using

Request Type: GET

Request URL: {{baseUrl}}/api/petrinet/{id}/transactions

Parameters :
Name Type Optional
netId string No
params Params Yes
Public getPetriNetTransitions
getPetriNetTransitions(netId: string)

Get Transition References Using

Request Type: GET

Request URL: {{baseUrl}}/api/petrinet/transitions

Parameters :
Name Type Optional
netId string No
Public importPetriNet
importPetriNet(body: FormData, params?: Params)

import PetriNet

Request Type: POST

Request URL: {{baseUrl}}/api/petrinet/import

Parameters :
Name Type Optional
body FormData No
params Params Yes
Returns : Observable<ProviderProgress | EventOutcomeMessageResource>
Public searchPetriNets
searchPetriNets(body: PetriNetRequestBody, params?: Params)

search PetriNets

Request Type: POST

Request URL: {{baseUrl}}/api/petrinet/search

Parameters :
Name Type Optional
body PetriNetRequestBody No
params Params Yes
Returns : Observable<Page<PetriNetReference>>
Protected changeType
changeType(r: any, propertiesParams: string)
Inherited from AbstractResourceService
Type parameters :
  • T

Extracts data from the response r into an object with better usability.

Parameters :
Name Type Optional Description
r any No
  • response object
propertiesParams string No
  • plural form of the resource name, that is used to extract the data. Eg. "cases".
Returns : T
Protected getResourceAddress
getResourceAddress(name: string)
Inherited from AbstractResourceService

Get URL form nae.json - resources

Parameters :
Name Type Optional Description
name string No
  • ID property
Returns : string
Protected getResourcePage
getResourcePage(r: any, propertiesParams: string)
Inherited from AbstractResourceService
Type parameters :
  • T

Parses a response r into a Page instance

Parameters :
Name Type Optional Description
r any No
  • response object
propertiesParams string No
  • plural form of the resource name, that is used to extract the data. Eg. "cases".
Returns : Page<T>
import {Injectable} from '@angular/core';
import {Observable} from 'rxjs';
import {filter, map, switchMap} from 'rxjs/operators';
import {PetriNet} from '../interface/petri-net';
import {Params, ProviderProgress, ResourceProvider} from '../resource-provider.service';
import {ConfigurationService} from '../../configuration/configuration.service';
import Transition from '../../process/transition';
import {HttpEventType, HttpParams} from '@angular/common/http';
import Transaction from '../../process/transaction';
import {EventOutcomeMessageResource, MessageResource} from '../interface/message-resource';
import {PetriNetReference} from '../interface/petri-net-reference';
import {PetriNetRequestBody} from '../interface/petri-net-request-body';
import {Page} from '../interface/page';
import {processMessageResponse} from '../../utility/process-message-response';
import {AbstractResourceService} from '../abstract-endpoint/abstract-resource.service';
import RolesAndPermissions from '../../process/rolesAndPermissions';

@Injectable({
    providedIn: 'root'
})
export class PetriNetResourceService extends AbstractResourceService {

    constructor(provider: ResourceProvider, configService: ConfigurationService) {
        super('petrinet', provider, configService);
    }

    /**
     * Get All Using Petri Net
     *
     * **Request Type:** GET
     *
     * **Request URL:** {{baseUrl}}/api/petrinet
     */
    public getAll(params?: Params): Observable<Array<PetriNetReference>> {
        return this._resourceProvider.get$('petrinet', this.SERVER_URL, params)
            .pipe(map(r => this.changeType(r, 'petriNetReferences')));
    }

    /**
     * Get Data Field References Using
     *
     * **Request Type:** POST
     *
     * **Request URL:** {{baseUrl}}/api/petrinet/data
     */
    public getDataPetriNet(body: object): Observable<any> {  // TODO: response
        return this._resourceProvider.post$('petrinet/data', this.SERVER_URL, body)
            .pipe(map(r => this.changeType(r, undefined)));
    }

    /**
     * Get Transition References Using
     *
     * **Request Type:** GET
     *
     * **Request URL:** {{baseUrl}}/api/petrinet/transitions
     */
    public getPetriNetTransitions(netId: string): Observable<Array<Transition>> {
        return this._resourceProvider.get$('/petrinet/transitions', this.SERVER_URL, new HttpParams().set('ids', netId))
            .pipe(map(r => this.changeType(r, 'transitionReferences')));
    }

    /**
     * Get Transaction References Using
     *
     * **Request Type:** GET
     *
     * **Request URL:** {{baseUrl}}/api/petrinet/{id}/transactions
     */
    public getPetriNetTransactions(netId: string, params?: Params): Observable<Array<Transaction>> {
        return this._resourceProvider.get$('/petrinet/' + netId + '/transactions', this.SERVER_URL, params)
            .pipe(map(r => this.changeType(r, 'transactions')));
    }

    /**
     * Get Roles References Using
     *
     * **Request Type:** GET
     *
     * **Request URL:** {{baseUrl}}/api/petrinet/{id}/roles
     */
    public getPetriNetRoles(netId: string, params?: Params): Observable<RolesAndPermissions> {
        return this._resourceProvider.get$('/petrinet/' + netId + '/roles', this.SERVER_URL, params)
            .pipe(map(r => this.changeType(r, undefined)));
    }

    /**
     * get Net File
     *
     * **Request Type:** GET
     *
     * **Request URL:** {{baseUrl}}/api/petrinet/{netId}/file
     */
    public getNetFile(netId: string): Observable<ProviderProgress | Blob> {
        return this._resourceProvider.getBlob$('petrinet/' + netId + '/file', this.SERVER_URL).pipe(
            map(event => {
                switch (event.type) {
                    case HttpEventType.DownloadProgress:
                        return ResourceProvider.getProgress(event);
                    case HttpEventType.Response:
                        return event.body;
                    default:
                        return undefined;
                }
            }),
            filter(value => !!value)
        );
    }

    /**
     * get One Net
     *
     * **Request Type:** GET
     *
     * **Request URL:** {{baseUrl}}/api/petrinet/{identifier}/{version}
     */
    public getOne(identifier: string, version: string, params?: Params): Observable<PetriNetReference> {
        return this._resourceProvider.get$('petrinet/' + btoa(identifier) + '/' + version, this.SERVER_URL, params)
            .pipe(map(r => this.changeType(r, 'petriNetReferences')));
    }

    /**
     * get One Net by ID
     *
     * **Request Type:** GET
     *
     * **Request URL:** {{baseUrl}}/api/petrinet/{id}
     */
    public getOneById(netId: string, params?: Params): Observable<PetriNet> {
        return this._resourceProvider.get$('petrinet/' + netId, this.SERVER_URL, params)
            .pipe(map(r => this.changeType(r, undefined)));
    }


    /**
     * import PetriNet
     *
     * **Request Type:** POST
     *
     * **Request URL:** {{baseUrl}}/api/petrinet/import
     */
    public importPetriNet(body: FormData, params?: Params): Observable<ProviderProgress | EventOutcomeMessageResource> {
        return this._resourceProvider.postWithEvent$<MessageResource>('petrinet/import', this.SERVER_URL, body, params).pipe(
            map(event => {
                switch (event.type) {
                    case HttpEventType.UploadProgress:
                        return ResourceProvider.getProgress(event);
                    case HttpEventType.Response:
                        return ResourceProvider.processMessageResource(event);
                    default:
                        return undefined;
                }
            }),
            filter(value => !!value)
        );
    }


    /**
     * search PetriNets
     *
     * **Request Type:** POST
     *
     * **Request URL:** {{baseUrl}}/api/petrinet/search
     */
    public searchPetriNets(body: PetriNetRequestBody, params?: Params): Observable<Page<PetriNetReference>> {
        return this._resourceProvider.post$('petrinet/search', this.SERVER_URL, body, params)
            .pipe(map(r => this.getResourcePage<PetriNetReference>(r, 'petriNetReferences')));
    }

    /**
     * delete PetriNet
     *
     * **Request Type:** DELETE
     *
     * **Request URL:** {{baseUrl}}/api/petrinet/{id}
     *
     * @param netId stringId of the deleted Petri Net
     */
    public deletePetriNet(netId: string): Observable<MessageResource> {
        return this._resourceProvider.delete$<MessageResource>('petrinet/' + netId, this.SERVER_URL)
            .pipe(switchMap(processMessageResponse));
    }
}

result-matching ""

    No results matching ""