rymizuki/node-hariko

View on GitHub
src/hariko-parser/structure/transition.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { HttpTransaction } from './http-transaction'
import { ProtagonistTransition } from 'protagonist'
import { ResourceStructure } from './resource'

export class TransitionStructure {
  public http_transactions: HttpTransaction[] = []

  constructor(
    public readonly resource: ResourceStructure,
    public title: string
  ) {}

  hasMultipleRequest() {
    for (let i = 0; i < this.http_transactions.length; i += 1) {
      const request = this.http_transactions[i].request
      if (request.hasSpecificUri()) return true
    }
    return false
  }

  addHttpTransaction(http_transaction: HttpTransaction) {
    this.http_transactions.push(http_transaction)
  }

  createHttpTransaction() {
    return HttpTransaction.create(this)
  }

  static create(resource: ResourceStructure, data: ProtagonistTransition) {
    const title = data.meta.title.content
    return new TransitionStructure(resource, title)
  }
}