rymizuki/node-hariko

View on GitHub
src/hariko-parser/conversion/builders/request-builder.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { UriParser } from '../../uri-parser'
import { HttpRequest } from '../../structure/http-request'

export class RequestBuilder {
  constructor(
    private http_request: HttpRequest,
    private base_uri_template?: string
  ) {}

  exec() {
    const method = this.http_request.method
    const uri_template = this.base_uri_template
      ? this.base_uri_template
      : this.http_request.uri_template

    const uri = new UriParser(uri_template).parse()

    return {
      method,
      uri: {
        path: uri.path,
        template: uri.template,
        queries: uri.queries as (string | { name: string; value: string })[]
      }
    }
  }

  static build(request: HttpRequest, base_uri_template?: string) {
    return new RequestBuilder(request, base_uri_template).exec()
  }
}