{"version":3,"file":"makiwin-ngx-drupal8-rest.mjs","sources":["../../../projects/ngx-drupal8-rest/src/lib/config/drupal-constants.ts","../../../projects/ngx-drupal8-rest/src/lib/models/commerce.ts","../../../projects/ngx-drupal8-rest/src/lib/http/base.service.ts","../../../projects/ngx-drupal8-rest/src/lib/http/user.service.ts","../../../projects/ngx-drupal8-rest/src/lib/http/view.service.ts","../../../projects/ngx-drupal8-rest/src/lib/http/content.service.ts","../../../projects/ngx-drupal8-rest/src/lib/http/taxonomy.service.ts","../../../projects/ngx-drupal8-rest/src/lib/http/file.service.ts","../../../projects/ngx-drupal8-rest/src/lib/http/media.service.ts","../../../projects/ngx-drupal8-rest/src/lib/http/flag.service.ts","../../../projects/ngx-drupal8-rest/src/lib/http/webform.service.ts","../../../projects/ngx-drupal8-rest/src/lib/http/push.service.ts","../../../projects/ngx-drupal8-rest/src/lib/http/commerce.service.ts","../../../projects/ngx-drupal8-rest/src/lib/http/comment.service.ts","../../../projects/ngx-drupal8-rest/src/lib/http/quiz.service.ts","../../../projects/ngx-drupal8-rest/src/lib/ngx-drupal8-rest.module.ts","../../../projects/ngx-drupal8-rest/src/public_api.ts","../../../projects/ngx-drupal8-rest/src/makiwin-ngx-drupal8-rest.ts"],"sourcesContent":["import { Settings, LoginResponse } from '../models';\n\n// @dynamic\nexport class DrupalConstants {\n  // Singletons\n  private static instance: DrupalConstants;\n  // props\n  private settings: Settings;\n  private connection: LoginResponse;\n  private token: string;\n  private tokenInit = false;\n\n  /**\n   * Init the module with Drupal 8 website configs\n   * @param settings Drupal 8 back-end config\n   */\n  static init(settings: Settings) {\n    // Optional config default values\n    if (!settings.requestTimeout) {\n      // 10 seconds\n      settings.requestTimeout = 10000;\n    }\n    if (!settings.cookieLifetime) {\n      // 23 days\n      settings.cookieLifetime = 2000000;\n    }\n    this.Instance.settings = settings;\n  }\n\n  static get Token(): string {\n    return this.Instance.token;\n  }\n\n  static set Token(value: string) {\n    this.Instance.tokenInit = value ? true : false;\n    this.Instance.token = value;\n  }\n\n  static get TokenInit(): boolean {\n    return this.Instance.tokenInit;\n  }\n\n  static set TokenInit(value: boolean) {\n    this.Instance.tokenInit = value;\n  }\n\n  /**\n   * Get the settings object, Supports dynamic config\n   */\n  static get Settings(): Settings {\n    if (!this.Instance.settings) {\n      throw new Error('ngx-drupal8-rest: Application settings are not set, Please read README.MD file');\n    }\n    return this.Instance.settings;\n  }\n\n  /**\n   * Get the back-end structured url\n   */\n  static get backEndUrl(): string {\n    const settings = this.Settings;\n    // Add protocol\n    const url = settings.protocol + '://' + settings.host;\n    // Check for port and return\n    return settings.port ? url + ':' + settings.port : url;\n  }\n\n  /**\n   * Get Singleton instance\n   */\n  private static get Instance() {\n    if (!this.instance) {\n      this.instance = new DrupalConstants();\n    }\n    return this.instance;\n  }\n\n  /**\n   * Set the current connection info\n   */\n  static set Connection(newConnection: LoginResponse) {\n    this.Instance.connection = newConnection;\n  }\n\n  /**\n   * Get current connection info\n   */\n  static get Connection(): LoginResponse {\n    return this.Instance.connection;\n  }\n}\n","// Shared\n\nimport { FieldNumber, FieldText, FieldEntityReference, FieldEntityReferenceUrl, FieldBoolean } from './field';\n\nexport interface CommercePrice {\n  number?: number;\n  currency_code?: string;\n  formatted?: string;\n}\n\nexport interface CommerceOrderEntity {\n  order_id: FieldNumber[];\n  uuid: FieldText[];\n  type: FieldEntityReference[];\n  order_number: FieldText[];\n  store_id: FieldEntityReference[];\n  uid: FieldEntityReferenceUrl[];\n  mail: FieldText[];\n  ip_address: FieldText[];\n  billing_profile: FieldEntityReferenceUrl[];\n  order_items: FieldEntityReference[];\n  total_price: CommercePrice[];\n  total_paid: CommercePrice[];\n  state: FieldText[];\n  data: { paid_event_dispatched: boolean }[];\n  locked: FieldBoolean[];\n  created: FieldNumber[];\n  changed: FieldNumber[];\n  placed: FieldNumber[];\n  completed: FieldNumber[];\n  cart: FieldBoolean[];\n  payment_gateway: FieldEntityReference[];\n  payment_method: FieldEntityReference[];\n}\n\nexport interface CommercePaymentEntity {\n  payment_id: FieldNumber[];\n  uuid: FieldText[];\n  type: FieldText[];\n  payment_gateway: FieldEntityReference[];\n  payment_gateway_mode: FieldText[];\n  payment_method: FieldEntityReference[];\n  order_id: FieldEntityReference[];\n  remote_id: FieldText[];\n  amount: CommercePrice[];\n  refunded_amount: CommercePrice[];\n  state: FieldText[];\n  expires: FieldNumber[];\n  completed: FieldNumber[];\n}\n\n// Commerce Cart API\n\nexport interface CartOrder {\n  order_id: number;\n  uuid: string;\n  store_id: number;\n  order_items: CartOrderItem[];\n  total_price: CommercePrice;\n  coupons: any[]; // TODO\n  order_number?: number;\n}\n\nexport interface CartOrderItem {\n  order_item_id: number;\n  uuid: string;\n  order_id: number;\n  title: string;\n  quantity: number;\n  unit_price: CommercePrice;\n  total_price: CommercePrice;\n  purchased_entity: CartProduct;\n}\n\nexport interface CartProduct {\n  variation_id: number;\n  uuid: string;\n  type: string;\n  product_id: number;\n  sku: string;\n  title: string;\n  list_price: CommercePrice;\n  price: CommercePrice;\n  content_translation_source: string;\n  content_translation_outdated: boolean;\n  attribute_color: number;\n  attribute_size: number;\n  printful_reference: string;\n  [key: string]: any; // custom fields\n  weight?: number;\n}\n\nexport interface CartProductAdd {\n  purchased_entity_type: string;\n  purchased_entity_id: number;\n  quantity: number;\n}\n\n// Commerce Decoupled Checkout\n\nexport interface CommerceOrder {\n  order?: {\n    order_items?: CommerceOrdeItem[];\n    type?: string;\n    email?: string;\n    store?: number;\n    [key: string]: any; // custom fields\n  };\n  // User profile associated with the order.\n  profile?: {\n    type?: string;\n    status?: boolean;\n    [key: string]: any; // custom fields\n  };\n  // A user account associated with the transaction.\n  // Creates a new user if didn't not exist, or uses existing one.\n  // In the second case fields WILL NOT be updated.\n  user: {\n    mail: string;\n    name?: string;\n    status?: boolean;\n    [key: string]: any; // custom fields\n  };\n  // If you want to process the payment alongside with order submission,\n  // then fill in the details of this field. Otherwise you can skip it\n  // and use other REST endpoints to handle payments separately.\n  payment?: CommercePayment;\n}\n\nexport interface CommerceOrdeItem {\n  purchased_entity: {\n    sku: string;\n  };\n  type?: string;\n  title?: string;\n  quantity?: number;\n  unit_price?: CommercePrice;\n  [key: string]: any; // custom fields\n}\n\nexport interface CommercePayment {\n  gateway: string;\n  type: string;\n  details?: any[];\n  capture?: boolean;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable, PLATFORM_ID } from '@angular/core';\n\n// RXJS\nimport { Observable, Subject } from 'rxjs';\nimport { mergeMap, tap, timeout } from 'rxjs/operators';\n\n// Custom imports\nimport { isPlatformServer } from '@angular/common';\nimport { DrupalConstants } from '../config';\nimport { HttpOptions, LoginResponse } from '../models';\n\n@Injectable()\nexport class BaseService {\n  private static currentTokenRequest: Subject<string> = null;\n\n  constructor(\n    private httpClient: HttpClient,\n    @Inject(PLATFORM_ID) private platform: string\n  ) {}\n\n  getToken(): Observable<string> {\n    if (BaseService.currentTokenRequest) {\n      return BaseService.currentTokenRequest.asObservable();\n    }\n\n    BaseService.currentTokenRequest = new Subject<string>();\n    const tokenOptions: HttpOptions = {\n      method: 'get',\n      responseType: 'text',\n    };\n    this.request(tokenOptions, '/session/token')\n      .pipe(\n        tap((token) => {\n          if (DrupalConstants.Token && token !== DrupalConstants.Token) {\n            this.deleteConnection();\n          }\n          DrupalConstants.Token = token;\n          // If connection is not init but localstorage contains a connection\n          if (!DrupalConstants.Connection && this.connection) {\n            DrupalConstants.Connection = this.connection;\n          }\n          return token;\n        })\n      )\n      .subscribe({\n        next: (token) => {\n          BaseService.currentTokenRequest.next(token);\n          BaseService.currentTokenRequest.complete();\n          BaseService.currentTokenRequest = null;\n        },\n        error: (error) => {\n          BaseService.currentTokenRequest = null;\n          throw Error(error);\n        },\n      });\n    return BaseService.currentTokenRequest.asObservable();\n  }\n\n  /**\n   * Check for current user if logged in or not.\n   * Based on current connection and expiration date\n   */\n  get isLoggedIn(): boolean {\n    // if the connection expired, delete the connection\n    if (this.connectionExpired) {\n      this.deleteConnection();\n      return false;\n    }\n\n    return DrupalConstants.Connection || this.connection ? true : false;\n  }\n\n  /**\n   * Get current user login connection\n   */\n  get connection(): LoginResponse {\n    if (!isPlatformServer(this.platform)) {\n      DrupalConstants.Token = localStorage.getItem('token');\n      // get connection from localstorage\n      const connection = localStorage.getItem('connection');\n      // parse and return the data\n      return <LoginResponse>JSON.parse(connection);\n    }\n  }\n\n  /**\n   * Check if the current connection is expired\n   */\n  protected get connectionExpired(): boolean {\n    if (!isPlatformServer(this.platform)) {\n      // get expiration time in ms\n      const expiration = +localStorage.getItem('expiration');\n      // get current date\n      const now = new Date();\n      return expiration ? now.getTime() > expiration : true;\n    }\n  }\n\n  /**\n   * save the user login connection in localstorage and constants singleton\n   * @param data connection to be saved\n   */\n  protected saveConnection(data: LoginResponse, token: string) {\n    if (!isPlatformServer(this.platform)) {\n      // set the current session\n      DrupalConstants.Connection = data;\n      DrupalConstants.Token = token;\n      // save the connection in localstorage\n      localStorage.setItem('connection', JSON.stringify(data));\n      // get current time in ms\n      const now = new Date().getTime();\n      // get the future expiration time in ms\n      const expiration = now + DrupalConstants.Settings.cookieLifetime * 1000;\n      // set the expiration time\n      localStorage.setItem('expiration', expiration.toString());\n      localStorage.setItem('token', token);\n    }\n  }\n\n  /**\n   * remove the current session details\n   */\n  protected deleteConnection() {\n    if (!isPlatformServer(this.platform)) {\n      // empty current session\n      DrupalConstants.Connection = undefined;\n      DrupalConstants.Token = undefined;\n      // removed saved data\n      localStorage.removeItem('connection');\n      localStorage.removeItem('expiration');\n      localStorage.removeItem('token');\n    }\n  }\n\n  /**\n   * Main method for implementing all the HttpClient requests and return the results\n   * @param options Custom HttpOptions to be overrided\n   * @param resource The resource url, Token frags will be replaced from options.frags, EX: {'/user/{uid}'}\n   * @param body the content to be sent with the request, Only for patch and post methods\n   */\n  protected request(\n    options: HttpOptions,\n    resource: string,\n    body?\n  ): Observable<any> {\n    // Get full url\n    const structuredResource = this.structureResource(resource, options.frags);\n\n    let request: Observable<Object>;\n    // Init http options\n    const httpOptions = this.httpOptions(options);\n\n    // Use the desired method\n    if (options.method === 'patch' || options.method === 'post') {\n      request = this.httpClient[options.method](\n        structuredResource,\n        body,\n        httpOptions\n      );\n    } else {\n      request = (this.httpClient[options.method] as any)(\n        structuredResource,\n        httpOptions\n      );\n    }\n    if (resource !== '/session/token' && !DrupalConstants.TokenInit) {\n      return this.getToken().pipe(\n        mergeMap(() =>\n          request.pipe(timeout(DrupalConstants.Settings.requestTimeout))\n        )\n      );\n    }\n    // Set requests time out from drupal config\n    return request.pipe(timeout(DrupalConstants.Settings.requestTimeout));\n  }\n\n  /**\n   * Get default HttpOptions or replace the custom ones.\n   * Supports url params, responseType, headers, observer\n   * @param options Custom httpOptions to override the defaults\n   */\n  private httpOptions(options: HttpOptions) {\n    // Init default options\n    const httpOptions: any = {\n      reportProgress: true, // allow for progress\n      withCredentials: true,\n      responseType: 'json',\n      params: {\n        _format: 'json', // required by drupal 8 rest\n      },\n      headers: {},\n      observe: 'body',\n    };\n\n    // If the user is logged in, add the CSRF header token\n    if (DrupalConstants.Connection && DrupalConstants.Connection.csrf_token) {\n      httpOptions.headers['X-CSRF-Token'] =\n        DrupalConstants.Connection.csrf_token;\n    }\n\n    // Override defaults\n    if (options.params) {\n      httpOptions.params = options.params;\n    }\n    if (options.responseType) {\n      httpOptions.responseType = options.responseType;\n    }\n    if (options.headers) {\n      httpOptions.headers = options.headers;\n    }\n    if (options.observe) {\n      httpOptions.observe = options.observe;\n    }\n\n    return httpOptions;\n  }\n\n  /**\n   * get full resource structure after adding the frags\n   * @param resource drupal base resource url\n   * @param frags frags to change it with the value that inside brackets\n   */\n  private structureResource(\n    resource: string,\n    frags: string[] | number[] = []\n  ): string {\n    // if there is no custom frags\n    if (frags.length === 0) {\n      return DrupalConstants.backEndUrl + resource;\n    }\n    // split the resource to fragments\n    const resourceParts = resource.split('/');\n    // init empty string\n    let resourceFrags = '';\n    // check for each frag and replace it\n    resourceParts.forEach((part, index) => {\n      // if the part is a frag\n      if (part[0] === '{') {\n        // get the value from frags array and remove it\n        resourceFrags += `/${frags.shift()}`;\n      } else {\n        // if part is not a frag add it directly\n        resourceFrags += `/${part}`;\n      }\n    });\n    // remove duplicate / at the start of the resource\n    resourceFrags = resourceFrags.substr(1);\n    return DrupalConstants.backEndUrl + resourceFrags;\n  }\n}\n","import { Injectable } from '@angular/core';\n\n// RXJS\nimport { Observable, of, throwError } from 'rxjs';\nimport { tap, mergeMap, map, catchError } from 'rxjs/operators';\n\n// Custom imports\nimport {\n  HttpOptions,\n  LoginCredentials,\n  LoginResponse,\n  UserEntity,\n} from '../models';\nimport { BaseService } from './base.service';\n\n@Injectable()\nexport class UserService extends BaseService {\n  private static readonly keyStoreCredentials: string = 'drx_8_derc';\n  /**\n   * Implements resource /user/login POST\n   * Logs the user in using cookie authentication method\n   * @param credentials username and password object style of the user\n   */\n  login(credentials: LoginCredentials): Observable<LoginResponse> {\n    const httpOptions: HttpOptions = {\n      method: 'post',\n    };\n    return this.request(httpOptions, '/user/login', credentials).pipe(\n      mergeMap((response: LoginResponse) => {\n        this.saveCredentialsInStorage(credentials);\n        return this.getToken().pipe(\n          map((token: string) => {\n            // Save the response connection\n            this.saveConnection(response, token);\n            return response;\n          })\n        );\n      })\n    );\n  }\n\n  /**\n   * Implements /user/logout POST\n   * Logs the user out.\n   * Will throw and error if the user is not logged in\n   */\n  logout(): Observable<null> {\n    // if the user is not logged in yet, throw an observable error\n    if (!this.isLoggedIn) {\n      return throwError(() => 'User is not logged in.');\n    }\n\n    // set the options and logout token\n    const httpOptions: HttpOptions = {\n      method: 'post',\n      params: {\n        _format: 'json',\n        token: this.connection.logout_token,\n      },\n    };\n\n    // delete the saved connection after logging out\n    return this.request(httpOptions, '/user/logout').pipe(\n      tap(this.deleteConnection),\n      tap(this.deleteStoredCredentials),\n      catchError((err) => {\n        if (err && err.status === 403) {\n          this.deleteConnection();\n        }\n        throw err;\n      })\n    );\n  }\n\n  /**\n   * Implement resource /user/{user} GET\n   * @param uid the user id\n   */\n  get(uid: number): Observable<UserEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'get',\n      frags: [uid],\n    };\n    return this.request(httpOptions, '/user/{user}');\n  }\n\n  /**\n   * Implement resource /entity/user: POST\n   * @param user user object to create\n   */\n  create(user: UserEntity): Observable<UserEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'post',\n    };\n    return this.request(httpOptions, '/entity/user', user);\n  }\n\n  /**\n   * Implement resource /user/{user}: PATCH\n   * @param uid user id to update\n   * @param user user object with required values\n   */\n  update(uid: number, user: UserEntity): Observable<UserEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'patch',\n      frags: [uid],\n    };\n    return this.request(httpOptions, '/user/{user}', user);\n  }\n\n  /**\n   * Implement resource /user/{user}: DELETE\n   * @param uid user id to delete\n   */\n  delete(uid: number): Observable<null> {\n    const httpOptions: HttpOptions = {\n      method: 'delete',\n      frags: [uid],\n    };\n    return this.request(httpOptions, '/user/{user}');\n  }\n\n  /**\n   * Implement resource /user/register: POST\n   * @param user user info object to register\n   */\n  register(user: {\n    name: string[];\n    pass: string[];\n    mail: string[];\n    [key:string]: any[]\n  }): Observable<UserEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'post',\n    };\n    return this.request(httpOptions, '/user/register', user);\n  }\n  /**\n   * try to login user with the saved credentials in local storage if they exist\n   * @returns Observable<LoginResponse>\n   */\n\n  attemptToLoginWithSavedCredentials(): Observable<LoginResponse> {\n    const credentials = this.getStoredCredentials();\n    if (!credentials) {\n      return throwError(() => 'No credentials stored');\n    }\n    return this.login(credentials);\n  }\n\n  /**\n   * Delete credentials from localstorage\n   */\n  deleteStoredCredentials(): void {\n    localStorage.removeItem(UserService.keyStoreCredentials);\n  }\n\n  /**\n   * Get the current user credentials from localstorage\n   */\n  getStoredCredentials(): LoginCredentials | null {\n    const credStore = localStorage.getItem(UserService.keyStoreCredentials);\n    if (!credStore) {\n      return null;\n    }\n    return <LoginCredentials>JSON.parse(credStore);\n  }\n\n  /**\n   * Save credentials in localstorage\n   * @param credentials credentials to save in localstorage\n   */\n  protected saveCredentialsInStorage(credentials: LoginCredentials): void {\n    localStorage.setItem(\n      UserService.keyStoreCredentials,\n      JSON.stringify(credentials)\n    );\n  }\n}\n","import { Injectable } from '@angular/core';\n\n// RXJS\nimport { Observable } from 'rxjs';\n\n// Custom imports\nimport { BaseService } from './base.service';\nimport { ViewOptions, HttpOptions, ViewEntity } from '../models';\n\n@Injectable()\nexport class ViewService extends BaseService {\n\n  /**\n   * Implements /entity/view/{view}: GET\n   * Get view result\n   * @param machineName view machine name\n   */\n  getView(machineName: string): Observable<ViewEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'get',\n      frags: [machineName],\n    };\n    return this.request(httpOptions, '/entity/view/{view}');\n  }\n\n  /**\n   * Implements Views rest export\n   * Returns array of view rows\n   * @param viewPath the view url path, EX: '/view/my_custom_view_path'\n   */\n  get(viewPath: string, viewOptions: ViewOptions = {}): Observable<any[]> {\n    const httpOptions: HttpOptions = {\n      method: 'get',\n      params: {\n        '_format': 'json'\n      }\n    };\n\n    if (viewOptions.args) {\n      viewPath += '/' + viewOptions.args.join('/');\n    }\n\n    if (viewOptions.filters) {\n      httpOptions.params = { ...httpOptions.params, ...viewOptions.filters };\n    }\n\n    if (viewOptions.pagination) {\n      httpOptions.params = { ...httpOptions.params, ...viewOptions.pagination };\n    }\n\n\n    if (viewOptions.sorting) {\n      httpOptions.params = { ...httpOptions.params, ...viewOptions.sorting };\n    }\n\n    return this.request(httpOptions, viewPath);\n  }\n}\n","import { Injectable } from '@angular/core';\n\n// RXJS\nimport { Observable } from 'rxjs';\n\n// Custom imports\nimport { BaseService } from './base.service';\nimport { HttpOptions, ContentEntity, ContentType } from '../models';\n\n@Injectable()\nexport class ContentService extends BaseService {\n\n  /**\n   * Implement resource /node/{node} GET\n   * @param nid the node id\n   */\n  get(nid: number): Observable<ContentEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'get',\n      frags: [nid]\n    };\n    return this.request(httpOptions, '/node/{node}');\n  }\n\n  /**\n   * Implement resource /node: POST\n   * @param content node object to create\n   */\n  create(content: ContentEntity): Observable<ContentEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'post',\n    };\n    return this.request(httpOptions, '/node', content);\n  }\n\n  /**\n   * Implement resource /node/{node}: PATCH\n   * @param nid node id to update\n   * @param content node object with required values\n   */\n  update(nid: number, content: ContentEntity): Observable<ContentEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'patch',\n      frags: [nid]\n    };\n    return this.request(httpOptions, '/node/{node}', content);\n  }\n\n  /**\n   * Implement resource /node/{node}: DELETE\n   * @param nid content id to delete\n   */\n  delete(nid: number): Observable<null> {\n    const httpOptions: HttpOptions = {\n      method: 'delete',\n      frags: [nid]\n    };\n    return this.request(httpOptions, '/node/{node}');\n  }\n\n  /**\n   * Implement resource /entity/node_type/{node_type}\n   * @param type node type or machine name like page, article\n   */\n  contentType(type: string): Observable<ContentType> {\n    const httpOptions: HttpOptions = {\n      method: 'get',\n      frags: [type]\n    };\n    return this.request(httpOptions, '/entity/node_type/{node_type}');\n  }\n\n}\n","import { Injectable } from '@angular/core';\n\n// RXJS\nimport { Observable } from 'rxjs';\n\n// Custom imports\nimport { BaseService } from './base.service';\nimport { HttpOptions, TaxonomyTermEntity, TaxonomyVocabularyEntity } from '../models';\n\n@Injectable()\nexport class TaxonomyService extends BaseService {\n\n  /**\n   * Implement resource /taxonomy/term/{taxonomy_term} GET\n   * @param tid the term id\n   */\n  get(tid: number): Observable<TaxonomyTermEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'get',\n      frags: [tid]\n    };\n    return this.request(httpOptions, '/taxonomy/term/{taxonomy_term}');\n  }\n\n  /**\n   * Implement resource /taxonomy/term: POST\n   * @param term term object to create\n   */\n  create(term: TaxonomyTermEntity): Observable<TaxonomyTermEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'post',\n    };\n    return this.request(httpOptions, '/taxonomy/term', term);\n  }\n\n  /**\n   * Implement resource /taxonomy/term/{taxonomy_term}: PATCH\n   * @param tid node id to update\n   * @param term term object with required values\n   */\n  update(tid: number, term: TaxonomyTermEntity): Observable<TaxonomyTermEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'patch',\n      frags: [tid]\n    };\n    return this.request(httpOptions, '/taxonomy/term/{taxonomy_term}', term);\n  }\n\n  /**\n   * Implement resource /taxonomy/term/{taxonomy_term}: DELETE\n   * @param tid term id to delete\n   */\n  delete(tid: number): Observable<null> {\n    const httpOptions: HttpOptions = {\n      method: 'delete',\n      frags: [tid]\n    };\n    return this.request(httpOptions, '/taxonomy/term/{taxonomy_term}');\n  }\n\n  /**\n   * Implement /entity/taxonomy_vocabulary/{taxonomy_vocabulary}: Get\n   * @param machineName vocabulary machine name like tags\n   */\n  vocabulary(machineName: string): Observable<TaxonomyVocabularyEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'get',\n      frags: [machineName]\n    };\n    return this.request(httpOptions, '/entity/taxonomy_vocabulary/{taxonomy_vocabulary}');\n  }\n\n}\n","import { Injectable } from '@angular/core';\n\n// RXJS\nimport { Observable } from 'rxjs';\n\n// Custom imports\nimport { BaseService } from './base.service';\nimport { HttpOptions, FileEntity } from '../models';\nimport { DrupalConstants } from '../config';\n\n@Injectable()\nexport class FileService extends BaseService {\n\n  /**\n   * Implement resource /entity/file/{file}: GET\n   * @param fid the file id\n   */\n  get(fid: number): Observable<FileEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'get',\n      frags: [fid]\n    };\n    return this.request(httpOptions, '/entity/file/{file}');\n  }\n\n  /**\n   * Implement resource /file/upload/{entity_type_id}/{bundle}/{field_name}: POST\n   * @param file the file to create\n   */\n  upload(entityType: string, bundle: string, fieldName: string, file: File): Observable<FileEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'post',\n      frags: [entityType, bundle, fieldName],\n      headers: {\n        'Content-Type': 'application/octet-stream',\n        'Content-Disposition': `file; filename=\"${file.name}\"`\n      },\n    };\n\n    // If the user is logged in, add the CSRF header token\n    if (DrupalConstants.Connection && DrupalConstants.Connection.csrf_token) {\n      httpOptions.headers['X-CSRF-Token'] = DrupalConstants.Connection.csrf_token;\n    }\n    return this.request(httpOptions, '/file/upload/{entity_type_id}/{bundle}/{field_name}', file);\n  }\n\n  /**\n   * Implement resource /entity/file/{file}: PATCH\n   * @param fid the file id\n   * @param file the file content to be updated\n   */\n  update(fid: number, file: FileEntity): Observable<FileEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'patch',\n      frags: [fid],\n    };\n\n    return this.request(httpOptions, '/entity/file/{file}', file);\n  }\n\n  /**\n   * Implement resource /entity/file/{file}: DELETE\n   * @param fid the file id\n   */\n  delete(fid: number): Observable<null> {\n    const httpOptions: HttpOptions = {\n      method: 'delete',\n      frags: [fid],\n    };\n\n    return this.request(httpOptions, '/entity/file/{file}');\n  }\n}\n","import { Injectable } from '@angular/core';\n\n// RXJS\nimport { Observable } from 'rxjs';\n\n// Custom imports\nimport { BaseService } from './base.service';\nimport { HttpOptions, MediaEntity, MediaType } from '../models';\n\n@Injectable()\nexport class MediaService extends BaseService {\n\n  /**\n   * Implement resource /media/{media}/edit GET\n   * @param mid the media id\n   */\n  get(mid: number): Observable<MediaEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'get',\n      frags: [mid]\n    };\n    return this.request(httpOptions, '/media/{media}/edit');\n  }\n\n  /**\n   * Implement resource /entity/media: POST\n   * @param media media object to create\n   */\n  create(media: MediaEntity): Observable<MediaEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'post',\n    };\n    return this.request(httpOptions, '/entity/media', media);\n  }\n\n  /**\n   * Implement resource /media/{media}/edit: PATCH\n   * @param mid media id to update\n   * @param media media object with required values\n   */\n  update(mid: number, media: MediaEntity): Observable<MediaEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'patch',\n      frags: [mid]\n    };\n    return this.request(httpOptions, '/media/{media}/edit', media);\n  }\n\n  /**\n   * Implement resource /media/{media}/edit: DELETE\n   * @param mid media id to delete\n   */\n  delete(mid: number): Observable<null> {\n    const httpOptions: HttpOptions = {\n      method: 'delete',\n      frags: [mid]\n    };\n    return this.request(httpOptions, '/media/{media}/edit');\n  }\n\n  /**\n   * Implement resource /entity/media_type/{media_type}\n   * @param type media type or machine name like audio, image and video\n   */\n  mediaType(type: string): Observable<MediaType> {\n    const httpOptions: HttpOptions = {\n      method: 'get',\n      frags: [type]\n    };\n    return this.request(httpOptions, '/entity/media_type/{media_type}');\n  }\n\n}\n","import { Injectable } from '@angular/core';\n\n// RXJS\nimport { Observable } from 'rxjs';\n\n// Custom imports\nimport { BaseService } from './base.service';\nimport { HttpOptions, FlagRegisteration, FlagEntity } from '../models';\n\n@Injectable()\nexport class FlagService extends BaseService {\n\n  /**\n   * Implement resource /entity/flagging/{flagging}: GET\n   * @param fid the flag id\n   */\n  get(fid: number): Observable<FlagEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'get',\n      frags: [fid]\n    };\n    return this.request(httpOptions, '/entity/flagging/{flagging}');\n  }\n\n  /**\n   * Implement resource /entity/flagging: POST\n   * @param flag: flag content\n   */\n  post(flag: FlagRegisteration): Observable<FlagEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'post',\n    };\n    return this.request(httpOptions, '/entity/flagging', flag);\n  }\n\n  update(fid: number, flag: FlagEntity): Observable<FlagEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'patch',\n      frags: [fid]\n    };\n    return this.request(httpOptions, '/entity/flagging/{flagging}', flag);\n  }\n\n  delete(fid: number): Observable<null> {\n    const httpOptions: HttpOptions = {\n      method: 'delete',\n      frags: [fid]\n    };\n    return this.request(httpOptions, '/entity/flagging/{flagging}');\n  }\n\n}\n","import { Injectable } from '@angular/core';\n\n// RXJS\nimport { Observable } from 'rxjs';\n\n// Custom imports\nimport { BaseService } from './base.service';\nimport {\n  HttpOptions,\n  WebformEntity,\n  WebformFields,\n  WebformSubmission,\n} from '../models';\nimport { DrupalConstants } from '../config';\n\n@Injectable()\nexport class WebformService extends BaseService {\n  /**\n   * Implement resource \t/webform/{webform} GET\n   * @param name the webform machine name\n   * @param langCode the language code for the webform\n   */\n  get(machineName: string, langCode?: string): Observable<WebformEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'get',\n      frags: [machineName],\n    };\n    let url = '/webform/{webform}';\n    if (langCode && langCode !== 'en') {\n      url = `/${langCode}${url}`;\n    }\n    return this.request(httpOptions, url);\n  }\n\n  /**\n   * Implement resource /webform_rest/{webform_id}/fields GET\n   * @param machineName the webform machine name\n   * @param langCode the language code for the webform\n   */\n  fields(machineName: string, langCode?: string): Observable<WebformFields> {\n    const httpOptions: HttpOptions = {\n      method: 'get',\n      frags: [machineName],\n    };\n    let url = '/webform_rest/{webform_id}/fields';\n    if (langCode && langCode !== 'en') {\n      url = `/${langCode}${url}`;\n    }\n    return this.request(httpOptions, url);\n  }\n\n  /**\n   * Implement resource /webform_rest/{webform_id}/submission/{sid} GET\n   * @param machineName the webform machine name\n   * @param sid the webform submittion id\n   */\n  getSubmission(\n    machineName: string,\n    sid: string,\n    langCode?: string\n  ): Observable<WebformSubmission> {\n    const httpOptions: HttpOptions = {\n      method: 'get',\n      frags: [machineName, sid.toString()],\n    };\n\n    let url = '/webform_rest/{webform_id}/submission/{sid}';\n    if (langCode && langCode !== 'en') {\n      url = `/${langCode}${url}`;\n    }\n    return this.request(httpOptions, url);\n  }\n\n  /**\n   * Implement resource /webform_rest/{webform_id}/submission/{sid} PATCH\n   * @param machineName the webform machine name\n   * @param sid the webform submittion id\n   * @param webformSubmission the submission content object of fields\n   */\n  updateSubmission(\n    machineName: string,\n    sid: string,\n    webformSubmission: any\n  ): Observable<{ sid: string } | { error: { message: string } }> {\n    const httpOptions: HttpOptions = {\n      method: 'patch',\n      frags: [machineName, sid.toString()],\n    };\n    return this.request(\n      httpOptions,\n      '/webform_rest/{webform_id}/submission/{sid}',\n      webformSubmission\n    );\n  }\n\n  /**\n   * Implement resource /webform_rest/submit POST\n   * @param webformSubmission the submission content object of fields\n   * All required fields should be added or the request will return error 400 :/\n   */\n  submit(webformSubmission: {\n    webform_id: string;\n    [key: string]: any;\n  }): Observable<{ sid: string }> {\n    const httpOptions: HttpOptions = {\n      method: 'post',\n    };\n    return this.request(httpOptions, '/webform_rest/submit', webformSubmission);\n  }\n\n  /**\n   * Implement resource /webform_rest/{webform_id}/upload/{field_name}: POST\n   * @param file the file to upload\n   */\n  upload(machineName: string, fieldName: string, file: File) {\n    const httpOptions: HttpOptions = {\n      method: 'post',\n      frags: [machineName, fieldName],\n      headers: {\n        'Content-Type': 'application/octet-stream',\n        'Content-Disposition': `file; filename=\"${file.name}\"`,\n      },\n    };\n\n    // If the user is logged in, add the CSRF header token\n    if (DrupalConstants.Connection && DrupalConstants.Connection.csrf_token) {\n      httpOptions.headers['X-CSRF-Token'] =\n        DrupalConstants.Connection.csrf_token;\n    }\n    return this.request(\n      httpOptions,\n      '/webform_rest/{webform_id}/upload/{field_name}',\n      file\n    );\n  }\n}\n","import { Injectable } from '@angular/core';\n\n// RXJS\nimport { Observable } from 'rxjs';\n\n// Custom imports\nimport { BaseService } from './base.service';\nimport { HttpOptions, PushRegistration, PushRegisterationResponse } from '../models';\n\n@Injectable()\nexport class PushService extends BaseService {\n\n  register(registration: PushRegistration): Observable<PushRegisterationResponse> {\n    const httpOptions: HttpOptions = {\n      method: 'post',\n    };\n    return this.request(httpOptions, '/entity/push_notifications_token', registration);\n  }\n\n  get(tokenId: number): Observable<PushRegisterationResponse> {\n    const httpOptions: HttpOptions = {\n      method: 'get',\n      frags: [tokenId]\n    };\n    return this.request(httpOptions, '/push_notifications/token/{push_notifications_token}');\n  }\n\n  update(tokenId: number, registration: PushRegistration): Observable<PushRegisterationResponse> {\n    const httpOptions: HttpOptions = {\n      method: 'patch',\n      frags: [tokenId]\n    };\n    return this.request(httpOptions, '/push_notifications/token/{push_notifications_token}', registration);\n  }\n\n  delete(tokenId: number): Observable<null> {\n    const httpOptions: HttpOptions = {\n      method: 'delete',\n      frags: [tokenId]\n    };\n    return this.request(httpOptions, '/push_notifications/token/{push_notifications_token}');\n  }\n\n}\n","import { Injectable } from '@angular/core';\n\n// RXJS\nimport { Observable } from 'rxjs';\n\n// Custom imports\nimport { BaseService } from './base.service';\nimport {\n  HttpOptions,\n  CartOrder,\n  CartProductAdd,\n  CommerceOrder,\n  CommerceOrderEntity,\n  CommercePayment,\n  CommercePaymentEntity,\n} from '../models';\n\n@Injectable()\nexport class CommerceService extends BaseService {\n  // Commerce Cart API\n\n  getCart(): Observable<CartOrder[]> {\n    const httpOptions: HttpOptions = {\n      method: 'get',\n    };\n    return this.request(httpOptions, '/cart');\n  }\n\n  getCartOrder(orderId: number): Observable<CartOrder> {\n    const httpOptions: HttpOptions = {\n      method: 'get',\n      frags: [orderId],\n    };\n    return this.request(httpOptions, '/cart/{order}');\n  }\n\n  addToCart(data: CartProductAdd[]): Observable<CartOrder[]> {\n    const httpOptions: HttpOptions = {\n      method: 'post',\n    };\n    return this.request(httpOptions, '/cart/add', data);\n  }\n\n  updateCartOrderItems(\n    orderId: number,\n    items: { [key: number]: { quantity: number } }\n  ): Observable<CartOrder> {\n    const httpOptions: HttpOptions = {\n      method: 'patch',\n      frags: [orderId],\n    };\n    return this.request(httpOptions, '/cart/{order}/items', items);\n  }\n\n  deleteCartOrderItem(orderId: number, itemId: number): Observable<null> {\n    const httpOptions: HttpOptions = {\n      method: 'delete',\n      frags: [orderId, itemId],\n    };\n    return this.request(httpOptions, '/cart/{order}/items/{item}');\n  }\n\n  deleteCartOrderItems(orderId: number): Observable<null> {\n    const httpOptions: HttpOptions = {\n      method: 'delete',\n      frags: [orderId],\n    };\n    return this.request(httpOptions, '/cart/{order}/items');\n  }\n\n  // Commerce Decoupled Checkout\n\n  createOrder(order: CommerceOrder): Observable<CommerceOrderEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'post',\n    };\n    return this.request(httpOptions, '/commerce/order/create', order);\n  }\n\n  createPayment(\n    orderId: number,\n    payment: CommercePayment\n  ): Observable<CommercePaymentEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'post',\n      frags: [orderId],\n    };\n    return this.request(\n      httpOptions,\n      '/commerce/payment/create/{order_id}',\n      payment\n    );\n  }\n\n  capturePayment(orderId: number, paymenId: number): Observable<null> {\n    const httpOptions: HttpOptions = {\n      method: 'post',\n      frags: [orderId, paymenId],\n    };\n    return this.request(\n      httpOptions,\n      '/commerce/payment/capture/{order_id}/{payment_id}',\n      {}\n    );\n  }\n}\n","import { Injectable } from '@angular/core';\n\n// RXJS\nimport { Observable } from 'rxjs';\n\n// Custom imports\nimport { BaseService } from './base.service';\nimport { HttpOptions, CommentType, Comment, CommentEntity } from '../models';\n\n@Injectable()\nexport class CommentService extends BaseService {\n\n  create(comment: Comment): Observable<CommentEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'post',\n    };\n    return this.request(httpOptions, '/comment', comment);\n  }\n\n  update(cid: number, comment: Comment): Observable<CommentEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'patch',\n      frags: [cid],\n    };\n    return this.request(httpOptions, '/comment/{comment}', comment);\n  }\n\n  delete(cid: number): Observable<null> {\n    const httpOptions: HttpOptions = {\n      method: 'delete',\n      frags: [cid],\n    };\n    return this.request(httpOptions, '/comment/{comment}');\n  }\n\n  getById(cid: number): Observable<CommentEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'get',\n      frags: [cid],\n    };\n    return this.request(httpOptions, '/comment/{comment}');\n  }\n\n  getType(type: string): Observable<CommentType> {\n    const httpOptions: HttpOptions = {\n      method: 'get',\n      frags: [type],\n    };\n    return this.request(httpOptions, '/entity/comment_type/{comment_type}');\n  }\n\n}\n","import { Injectable } from '@angular/core';\n\n// RXJS\nimport { Observable } from 'rxjs';\n\n// Custom imports\nimport { BaseService } from './base.service';\nimport {\n  QuizEntity,\n  HttpOptions,\n  QuizFeedbackTypeEntity,\n  QuizQuestionEntity,\n  EntityBundleType,\n  QuizQuestionRelationshipEntity,\n  QuizResultEntity,\n  QuizResultAnswerEntity,\n} from '../models';\n\n@Injectable()\nexport class QuizService extends BaseService {\n  /**\n   * Implements /quiz/{quiz}: GET\n   * Returns quiz entity\n   * @param qid the quiz entity ID\n   */\n  get(qid: number): Observable<QuizEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'get',\n      params: {\n        _format: 'json',\n      },\n      frags: [qid],\n    };\n\n    return this.request(httpOptions, '/quiz/{quiz}');\n  }\n\n  /**\n   * Implements /entity/quiz: POST\n   * Returns quiz created entity\n   * @param quiz the quiz entity with updated values\n   */\n  create(quiz: QuizEntity): Observable<QuizEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'post',\n      params: {\n        _format: 'json',\n      },\n    };\n\n    return this.request(httpOptions, '/entity/quiz', quiz);\n  }\n\n  /**\n   * Implements /quiz/{quiz}: PATCH\n   * Returns quiz updated entity\n   * @param qid the quiz entity ID\n   * @param quiz the quiz entity with updated values\n   */\n  update(qid: number, quiz: QuizEntity): Observable<QuizEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'patch',\n      params: {\n        _format: 'json',\n      },\n      frags: [qid],\n    };\n\n    return this.request(httpOptions, '/quiz/{quiz}', quiz);\n  }\n\n  /**\n   * Implements /quiz/{quiz}: DELETE\n   * @param qid the quiz entity ID\n   */\n  delete(qid: number): Observable<null> {\n    const httpOptions: HttpOptions = {\n      method: 'delete',\n      params: {\n        _format: 'json',\n      },\n      frags: [qid],\n    };\n\n    return this.request(httpOptions, '/quiz/{quiz}');\n  }\n\n  /**\n   * Implements /entity/quiz_type/{quiz_type}: GET\n   * Returns quiz type\n   * @param quizMachineName the quiz type machine name\n   */\n  getType(quizMachineName: string): Observable<EntityBundleType> {\n    const httpOptions: HttpOptions = {\n      method: 'get',\n      params: {\n        _format: 'json',\n      },\n      frags: [quizMachineName],\n    };\n\n    return this.request(httpOptions, '/entity/quiz_type/{quiz_type}');\n  }\n\n  /**\n   * Implements /entity/quiz_feedback_type/{quiz_feedback_type}: GET\n   * Returns quiz feedback type\n   * @param feedbackMachineName the feedback type machine name\n   */\n  getFeedbackType(\n    feedbackMachineName: string\n  ): Observable<QuizFeedbackTypeEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'get',\n      params: {\n        _format: 'json',\n      },\n      frags: [feedbackMachineName],\n    };\n\n    return this.request(\n      httpOptions,\n      '/entity/quiz_feedback_type/{quiz_feedback_type}'\n    );\n  }\n\n  // Question\n\n  /**\n   * Implements /quiz-question/{quiz_question}: GET\n   * Returns quiz question entity\n   * @param qqid the quiz question entity ID\n   */\n  getQuestion(qqid: number): Observable<QuizQuestionEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'get',\n      params: {\n        _format: 'json',\n      },\n      frags: [qqid],\n    };\n\n    return this.request(httpOptions, '/quiz-question/{quiz_question}');\n  }\n\n  /**\n   * Implements /entity/quiz_question: POST\n   * Returns question created entity\n   * @param question the quiz question entity to create\n   */\n  createQuestion(question: QuizQuestionEntity): Observable<QuizQuestionEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'post',\n      params: {\n        _format: 'json',\n      },\n    };\n\n    return this.request(httpOptions, '/entity/quiz_question', question);\n  }\n\n  /**\n   * Implements /quiz-question/{quiz_question}: PATCH\n   * Returns question updated entity\n   * @param qqid the quiz question entity ID\n   * @param question the quiz question entity with updated values\n   */\n  updateQuestion(\n    qqid: number,\n    question: QuizQuestionEntity\n  ): Observable<QuizQuestionEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'patch',\n      params: {\n        _format: 'json',\n      },\n      frags: [qqid],\n    };\n\n    return this.request(\n      httpOptions,\n      '/quiz-question/{quiz_question}',\n      question\n    );\n  }\n\n  /**\n   * Implements /quiz-question/{quiz_question}: DELETE\n   * @param qqid the question entity ID\n   */\n  deleteQuestion(qqid: number): Observable<null> {\n    const httpOptions: HttpOptions = {\n      method: 'delete',\n      params: {\n        _format: 'json',\n      },\n      frags: [qqid],\n    };\n\n    return this.request(httpOptions, '/quiz-question/{quiz_question}');\n  }\n\n  /**\n   * Implements /entity/quiz_question_type/{quiz_question_type}: GET\n   * Returns quiz question type\n   * @param feedbackMachineName the type machine name\n   */\n  getQuestionType(typeMachineName: string): Observable<EntityBundleType> {\n    const httpOptions: HttpOptions = {\n      method: 'get',\n      params: {\n        _format: 'json',\n      },\n      frags: [typeMachineName],\n    };\n\n    return this.request(\n      httpOptions,\n      '/entity/quiz_question_type/{quiz_question_type}'\n    );\n  }\n\n  // Relationship\n\n  /**\n   * Implements /quiz-question-relationship/{quiz_question_relationship}: GET\n   * Returns quiz question relationship entity\n   * @param qqrid the quiz question relationship entity ID 'question id'\n   */\n  getQuestionRelationship(\n    qqrid: number\n  ): Observable<QuizQuestionRelationshipEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'get',\n      params: {\n        _format: 'json',\n      },\n      frags: [qqrid],\n    };\n\n    return this.request(\n      httpOptions,\n      '/quiz-question-relationship/{quiz_question_relationship}'\n    );\n  }\n\n  /**\n   * Implements /quiz-question-relationship/{quiz_question_relationship}: POST\n   * Returns quiz question relationship created entity\n   * @param questionRelationship the quiz question relationship entity to create\n   */\n  createQuestionRelationship(\n    questionRelationship: QuizQuestionRelationshipEntity\n  ): Observable<QuizQuestionRelationshipEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'post',\n      params: {\n        _format: 'json',\n      },\n    };\n\n    return this.request(\n      httpOptions,\n      '/entity/quiz_question_relationship',\n      questionRelationship\n    );\n  }\n\n  /**\n   * Implements /quiz-question-relationship/{quiz_question_relationship}: PATCH\n   * Returns quiz question relationship updated entity\n   * @param qqrid the quiz question relationship entity ID 'question id'\n   * @param questionRelationship the quiz question relationship updated entity\n   */\n  updateQuestionRelationship(\n    qqrid: number,\n    questionRelationship: QuizQuestionRelationshipEntity\n  ): Observable<QuizQuestionRelationshipEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'patch',\n      params: {\n        _format: 'json',\n      },\n      frags: [qqrid],\n    };\n\n    return this.request(\n      httpOptions,\n      '/quiz-question-relationship/{quiz_question_relationship}',\n      questionRelationship\n    );\n  }\n\n  /**\n   * Implements /quiz-question-relationship/{quiz_question_relationship}: DELETE\n   * @param qqrid the quiz question relationship entity ID 'question id'\n   */\n  deleteQuestionRelationship(qqrid: number): Observable<null> {\n    const httpOptions: HttpOptions = {\n      method: 'delete',\n      params: {\n        _format: 'json',\n      },\n      frags: [qqrid],\n    };\n\n    return this.request(\n      httpOptions,\n      '/quiz-question-relationship/{quiz_question_relationship}'\n    );\n  }\n\n  // Result\n\n  /**\n   * Implements /quiz/{quiz}/result/{quiz_result}: GET\n   * Returns quiz result entity\n   * @param qid the quiz entity ID\n   * @param qrid the quiz result entity ID\n   */\n  getResult(qid: number, qrid: number): Observable<QuizResultEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'get',\n      params: {\n        _format: 'json',\n      },\n      frags: [qid, qrid],\n    };\n\n    return this.request(httpOptions, '/quiz/{quiz}/result/{quiz_result}');\n  }\n\n  /**\n   * Implements /entity/quiz_result: POST\n   * Returns quiz result created entity\n   * @param result the quiz result entity\n   */\n  createResult(result: QuizResultEntity): Observable<QuizResultEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'post',\n      params: {\n        _format: 'json',\n      },\n    };\n\n    return this.request(httpOptions, '/entity/quiz_result', result);\n  }\n\n  /**\n   * Implements /quiz/{quiz}/result/{quiz_result}: PATCH\n   * Returns quiz result updated entity\n   * @param qid the quiz entity ID\n   * @param qrid the quiz result entity ID\n   * @param result the quiz result updated entity\n   */\n   updateResult(qid: number, qrid: number, result: QuizResultEntity): Observable<QuizResultEntity> {\n    const httpOptions: HttpOptions = {\n      method: 'patch',\n      params: {\n        _format: 'json',\n      },\n      frags: [qid, qrid]\n    };\n\n    return this.request(httpOptions, '/quiz/{quiz}/result/{quiz_result}', result);\n  }\n\n  /**\n   * Implements /quiz/{quiz}/result/{quiz_result}: DELETE\n   * @param qid the quiz entity ID\n   * @param qrid the quiz result entity ID\n   */\n   deleteResult(qid: number, qrid: number): Observable<null> {\n    const httpOptions: HttpOptions = {\n      method: 'delete',\n      params: {\n        _format: 'json',\n      },\n      frags: [qid, qrid]\n    };\n\n    return this.request(httpOptions, '/quiz/{quiz}/result/{quiz_result}');\n  }\n\n  /**\n   * Implements /entity/quiz_result_type/{quiz_result_type}: GET\n   * Returns quiz result type\n   * @param resultMachineName the type machine name\n   */\n   getResultType(resultMachineName: string): Observable<EntityBundleType> {\n    const httpOptions: HttpOptions = {\n      method: 'get',\n      params: {\n        _format: 'json',\n      },\n      frags: [resultMachineName],\n    };\n\n    return this.request(\n      httpOptions,\n      '/entity/quiz_result_type/{quiz_result_type}'\n    );\n  }\n\n  // Result answer: interfaces TODO\n\n  /**\n   * Implements /quiz/{quiz}/result/{quiz_result}/answer/{quiz_result_answer}: GET\n   * Returns quiz result answer entity\n   * @param qid the quiz entity ID\n   * @param qrid the quiz result entity ID\n   * @param qrid the quiz result answer entity ID\n   */\n   getResultAnswer(qid: number, qrid: number, raid: number): Observable<any> {\n    const httpOptions: HttpOptions = {\n      method: 'get',\n      params: {\n        _format: 'json',\n      },\n      frags: [qid, qrid, raid],\n    };\n\n    return this.request(httpOptions, '/quiz/{quiz}/result/{quiz_result}/answer/{quiz_result_answer}');\n  }\n\n  /**\n   * Implements /entity/quiz_result_answer: POST\n   * Returns quiz result answer created entity\n   * @param answer the quiz result answer entity\n   */\n  createResultAnswer(answer: any): Observable<any> {\n    const httpOptions: HttpOptions = {\n      method: 'post',\n      params: {\n        _format: 'json',\n      },\n    };\n\n    return this.request(httpOptions, '/entity/quiz_result_answer', answer);\n  }\n\n  /**\n   * Implements /quiz/{quiz}/result/{quiz_result}/answer/{quiz_result_answer}: PATCH\n   * Returns quiz result updated entity\n   * Returns quiz result answer entity\n   * @param qid the quiz entity ID\n   * @param qrid the quiz result entity ID\n   * @param qrid the quiz result answer entity ID\n   * @param answer the quiz result answer entity\n   */\n   updateResultAnswer(qid: number, qrid: number, raid: number, answer: any): Observable<any> {\n    const httpOptions: HttpOptions = {\n      method: 'patch',\n      params: {\n        _format: 'json',\n      },\n      frags: [qid, qrid, raid]\n    };\n\n    return this.request(httpOptions, '/quiz/{quiz}/result/{quiz_result}/answer/{quiz_result_answer}', answer);\n  }\n\n  /**\n   * Implements /quiz/{quiz}/result/{quiz_result}/answer/{quiz_result_answer}: DELETE\n   * @param qid the quiz entity ID\n   * @param qrid the quiz result entity ID\n   * @param qrid the quiz result answer entity ID\n   */\n   deleteResultAnswer(qid: number, qrid: number, raid: number): Observable<null> {\n    const httpOptions: HttpOptions = {\n      method: 'delete',\n      params: {\n        _format: 'json',\n      },\n      frags: [qid, qrid, raid]\n    };\n\n    return this.request(httpOptions, '/quiz/{quiz}/result/{quiz_result}/answer/{quiz_result_answer}');\n  }\n\n/**\n   * Implements /entity/quiz_result_answer_type/{quiz_result_answer_type}: GET\n   * Returns quiz answer result type\n   * @param resultMachineName the type machine name\n   */\n  getResultAnswerType(resultAnswerMachineName: string): Observable<EntityBundleType> {\n    const httpOptions: HttpOptions = {\n      method: 'get',\n      params: {\n        _format: 'json',\n      },\n      frags: [resultAnswerMachineName],\n    };\n\n    return this.request(\n      httpOptions,\n      '/entity/quiz_result_answer_type/{quiz_result_answer_type}'\n    );\n  }\n}\n","import { NgModule, APP_INITIALIZER } from '@angular/core';\nimport { HttpClientModule } from '@angular/common/http';\n\nimport { DrupalConstants } from './config';\nimport { UserService } from './http/user.service';\nimport { BaseService } from './http/base.service';\nimport { ViewService } from './http/view.service';\nimport { ContentService } from './http/content.service';\nimport { TaxonomyService } from './http/taxonomy.service';\nimport { FileService } from './http/file.service';\nimport { MediaService } from './http/media.service';\nimport { FlagService } from './http/flag.service';\nimport { WebformService } from './http/webform.service';\nimport { PushService } from './http/push.service';\nimport { CommerceService } from './http/commerce.service';\nimport { CommentService } from './http/comment.service';\nimport { QuizService } from './http/quiz.service';\n\n/**\n * implement APP_INITIALIZER\n * @param userService user service\n * @see https://gillespie59.github.io/2016/12/04/angular2-code-before-rendering.html\n */\nexport function init(userService: UserService): () => void {\n  return () => {\n    DrupalConstants.Connection = userService.connection;\n  };\n}\n// @dynamic\n@NgModule({\n  imports: [\n    HttpClientModule\n  ],\n  providers: [\n    BaseService,\n    UserService,\n    ViewService,\n    ContentService,\n    TaxonomyService,\n    FileService,\n    MediaService,\n    FlagService,\n    WebformService,\n    PushService,\n    CommerceService,\n    CommentService,\n    QuizService,\n    {\n      'provide': APP_INITIALIZER,\n      'useFactory': init,\n      'deps': [UserService],\n      'multi': true\n    }\n  ]\n})\nexport class Drupal8RestModule { }\n\nexport {\n  BaseService,\n  UserService,\n  ViewService,\n  ContentService,\n  TaxonomyService,\n  FileService,\n  MediaService,\n  FlagService,\n  WebformService,\n  PushService,\n  CommerceService,\n  CommentService,\n  QuizService\n};\n","/*\n * Public API Surface of ngx-drupal8-rest\n */\nexport * from './lib/config';\nexport * from './lib/models';\nexport * from './lib/ngx-drupal8-rest.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}