{"version":3,"file":"opengigdb-ogdb-api-lib.mjs","sources":["../../../projects/ogdb-api-lib/src/lib/ogdb-api-lib.service.ts","../../../projects/ogdb-api-lib/src/lib/pipes/cover-image.pipe.ts","../../../projects/ogdb-api-lib/src/lib/pipes/local-date.pipe.ts","../../../projects/ogdb-api-lib/src/lib/pipes/local-time.pipe.ts","../../../projects/ogdb-api-lib/src/lib/pipes/primary-image.pipe.ts","../../../projects/ogdb-api-lib/src/lib/ogdb-api-lib.module.ts","../../../projects/ogdb-api-lib/src/lib/enums/app-status.enum.ts","../../../projects/ogdb-api-lib/src/lib/enums/band-status.enum.ts","../../../projects/ogdb-api-lib/src/lib/enums/band-user-role.enum.ts","../../../projects/ogdb-api-lib/src/lib/enums/doc-id.enum.ts","../../../projects/ogdb-api-lib/src/lib/enums/gig-sort-by.enum.ts","../../../projects/ogdb-api-lib/src/lib/enums/gig-status.enum.ts","../../../projects/ogdb-api-lib/src/lib/enums/image-category.enum.ts","../../../projects/ogdb-api-lib/src/lib/enums/invitation-status.enum.ts","../../../projects/ogdb-api-lib/src/lib/enums/user-status.enum.ts","../../../projects/ogdb-api-lib/src/lib/enums/venue-status.enum.ts","../../../projects/ogdb-api-lib/src/lib/models/filestack-info.model.ts","../../../projects/ogdb-api-lib/src/lib/models/search/get-bands-request.model.ts","../../../projects/ogdb-api-lib/src/lib/models/search/get-gigs-request.model.ts","../../../projects/ogdb-api-lib/src/lib/models/image-info.model.ts","../../../projects/ogdb-api-lib/src/lib/models/search/search-bands-request.model.ts","../../../projects/ogdb-api-lib/src/lib/models/search/search-gigs-request.model.ts","../../../projects/ogdb-api-lib/src/lib/models/search/search-venues-request.model.ts","../../../projects/ogdb-api-lib/src/lib/services/ogdb.service.ts","../../../projects/ogdb-api-lib/src/lib/services/app.service.ts","../../../projects/ogdb-api-lib/src/lib/services/auth.service.ts","../../../projects/ogdb-api-lib/src/lib/utils/http-params-builder.util.ts","../../../projects/ogdb-api-lib/src/lib/services/band.service.ts","../../../projects/ogdb-api-lib/src/lib/services/gig.service.ts","../../../projects/ogdb-api-lib/src/lib/services/image.service.ts","../../../projects/ogdb-api-lib/src/lib/services/lookup.service.ts","../../../projects/ogdb-api-lib/src/lib/services/user.service.ts","../../../projects/ogdb-api-lib/src/lib/services/venue.service.ts","../../../projects/ogdb-api-lib/src/public-api.ts","../../../projects/ogdb-api-lib/src/opengigdb-ogdb-api-lib.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class OgdbApiLibService {\n\n  constructor() { }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Band } from '../models/band.model';\n\n@Pipe({\n  name: 'coverImage'\n})\nexport class CoverImagePipe implements PipeTransform {\n\n  public static DEFAULT_IMG_URL  = 'https://via.placeholder.com/1500x600?text=.';\n\n  transform( ogdbObj: Band | undefined ): string {\n\n    if ( ogdbObj === undefined ) {\n      return CoverImagePipe.DEFAULT_IMG_URL;\n    }\n\n    // Get the primary image URL\n    let coverImageUrl:string | undefined | null = ogdbObj.coverImageUrl;\n\n    // Done\n    return ( coverImageUrl === null || coverImageUrl === undefined || coverImageUrl === '' ) ?\n        CoverImagePipe.DEFAULT_IMG_URL :\n        coverImageUrl;\n\n  }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DateTimeFormatter, LocalDate } from '@js-joda/core';\nimport { Locale } from '@js-joda/locale_en-us';\n\n@Pipe({\n  name: 'localDate'\n})\nexport class LocalDatePipe implements PipeTransform {\n  \n  transform(localDate: LocalDate | null | undefined, pattern:string): string {\n\n    if ( localDate === null || localDate === undefined ) {\n      return '';\n    }\n\n    return localDate.format( DateTimeFormatter.ofPattern(pattern).withLocale(Locale.US) );\n  }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DateTimeFormatter, LocalTime } from '@js-joda/core';\nimport { Locale } from '@js-joda/locale_en-us';\n\n@Pipe({\n  name: 'localTime'\n})\nexport class LocalTimePipe implements PipeTransform {\n\n  transform(localTime:LocalTime | null | undefined, pattern:string): string {\n\n    if ( localTime === null || localTime === undefined ) {\n      return '';\n    }\n\n    return localTime?.format( DateTimeFormatter.ofPattern(pattern).withLocale(Locale.US) );\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Gig } from '../models/gig.model';\nimport { Band } from '../models/band.model';\nimport { Venue } from '../models/venue.model';\nimport { BandMember } from '../models/band-member.model';\n\n@Pipe({\n  name: 'primaryImage'\n})\nexport class PrimaryImagePipe implements PipeTransform {\n\n  public static DEFAULT_IMG_URL  = 'https://via.placeholder.com/800x600?text=.';\n\n  transform( ogdbObj: Gig | Band | Venue | BandMember | undefined ): string {\n\n    if ( ogdbObj === undefined ) {\n      return PrimaryImagePipe.DEFAULT_IMG_URL;\n    }\n\n    // Get the primary image URL\n    let primaryImageUrl:string | undefined | null = ogdbObj.primaryImageUrl;\n\n    // See if it's not set\n    if ( primaryImageUrl === null || primaryImageUrl === undefined || primaryImageUrl === '' ) {\n\n      // For gigs, fall back to the venue's image\n      if ( 'gigId' in ogdbObj ) {\n        primaryImageUrl = ogdbObj.venue?.primaryImageUrl;\n      }\n    }\n\n    // Done\n    return ( primaryImageUrl === null || primaryImageUrl === undefined || primaryImageUrl === '' ) ?\n      PrimaryImagePipe.DEFAULT_IMG_URL :\n      primaryImageUrl;\n\n  }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CoverImagePipe } from './pipes/cover-image.pipe';\nimport { LocalDatePipe } from './pipes/local-date.pipe';\nimport { LocalTimePipe } from './pipes/local-time.pipe';\nimport { PrimaryImagePipe } from './pipes/primary-image.pipe';\n\n\n@NgModule({\n  declarations: [\n    CoverImagePipe, \n    LocalDatePipe,\n    LocalTimePipe,\n    PrimaryImagePipe,\n  ],\n  imports: [\n  ],\n  exports: [    \n    CoverImagePipe,\n    LocalDatePipe,\n    LocalTimePipe,\n    PrimaryImagePipe\n  ]\n})\nexport class OgdbApiLibModule { }\n","export enum AppStatusEnum {\n  ACTIVE=\"ACTIVE\",\n  SUSPENDED=\"SUSPENDED\",\n  DELETED=\"DELETED\"\n}\n","export enum BandStatusEnum {\n  ACTIVE=\"ACTIVE\",\n  DELETED=\"DELETED\"\n}\n","export enum BandUserRoleEnum {\n  ADMIN=\"ADMIN\",\n  EDITOR=\"EDITOR\"\n}\n\n","export enum DocIdEnum {\n\n    // pages\n    privacy_policy=\"privacy_policy\",\n\tterms_of_use=\"terms_of_use\",\n\n    // help topics\n    calendar_subscription=\"calendar_subscription\",\n    whats_a_slug=\"whats_a_slug\",\n}","export enum GigSortByEnum {\n    NONE=\"NONE\",\n    STARTDATE_ASC=\"STARTDATE_ASC\",\n    STARTDATE_DESC=\"STARTDATE_DESC\"\n}","export enum GigStatusEnum {\n  UNPUBLISHED=\"UNPUBLISHED\",\n  PUBLISHED=\"PUBLISHED\",\n  ARCHIVED=\"ARCHIVED\",\n\tDELETED=\"DELETED\"\n}\n","export enum ImageCategoryEnum {\n  LOGO=\"LOGO\",\n  COVER=\"COVER\"\n}\n","export enum InvitationStatusEnum {\n    PENDING=\"PENDING\",\n\tACCEPTED=\"ACCEPTED\",\n\tDECLINED=\"DECLINED\",\n\tDELETED=\"DELETED\"\n}","export enum UserStatusEnum {\n  ACTIVE=\"ACTIVE\",\n  SUSPENDED=\"SUSPENDED\",\n  DELETED=\"DELETED\"\n}\n","export enum VenueStatusEnum {\n  ACTIVE=\"ACTIVE\",\n\tDELETED=\"DELETED\"\n}\n","export interface FilestackInfo {\n\thandle?:string;\n\tfileName?:string;\n\tmimeType?:string;\n\tsize?:number;\n\turl?:string;\n\tawsContainer?:string;\n\tawsKey?:string;\n}\n\nexport class FilestackInfoBuilder {\n    protected filestackInfo:FilestackInfo;\n\n    constructor(){\n        this.filestackInfo = {};\n    }\n\n    public withJSFilestackInfo( jsFilestackInfo:any ) : FilestackInfoBuilder {\n\n        this.filestackInfo = {\n            handle : jsFilestackInfo.handle,\n            fileName : jsFilestackInfo.filename,\n            mimeType : jsFilestackInfo.mimetype,\n            size : jsFilestackInfo.size,\n            url : jsFilestackInfo.url,\n            awsContainer : jsFilestackInfo.container,\n            awsKey : jsFilestackInfo.key\n        };\n\n        return this;\n    }\n\n    public build() : FilestackInfo {\n        return this.filestackInfo;\n    }\n\n}\n","import { BandStatusEnum } from \"../../enums/band-status.enum\";\nimport { User } from \"../user.model\";\n\nexport interface GetBandsRequest {\n    user:string;    \n    status:BandStatusEnum[];\n    index:number;\n    limit:number;\n}\n\n\nexport class GetBandsRequestBuilder {\n    getBandsRequest:GetBandsRequest;\n\n    constructor() {\n        this.getBandsRequest = {\n            user:'',\n            status:[],\n            index:0,\n            limit:50\n        };\n    }\n\n    public withUser( user:User ): GetBandsRequestBuilder {\n        this.getBandsRequest.user = (user.userId ?? '');\n        return this;\n    }\n\n    public withStatus( status:BandStatusEnum ): GetBandsRequestBuilder {\n        this.getBandsRequest.status.push(status);\n        return this;\n    }\n\n    public withLimit( index:number, limit:number ): GetBandsRequestBuilder {\n        this.getBandsRequest.index = index;\n        this.getBandsRequest.limit = limit;\n        return this;\n    }\n\n    public build(): GetBandsRequest {\n        return this.getBandsRequest;\n    }\n}\n\n","import { DateTimeFormatter, LocalDate } from '@js-joda/core';\nimport { Locale } from '@js-joda/locale_en-us';\nimport { GigSortByEnum } from '../../enums/gig-sort-by.enum';\nimport { GigStatusEnum } from \"../../enums/gig-status.enum\";\nimport { Band } from \"../band.model\";\nimport { Venue } from \"../venue.model\";\n\nexport interface GetGigsRequest {\n    band:string;\n    venue:string;\n    status:GigStatusEnum[];\n    after:string;\n    before:string;\n    sort:string;\n    index:number;\n    limit:number;\n}\n\nexport class GetGigsRequestBuilder {\n    getGigsRequest:GetGigsRequest;\n\n    constructor() {\n        this.getGigsRequest = {\n            band:'',\n            venue:'',\n            status:[],\n            after:'',\n            before:'',\n            sort:'',\n            index:0,\n            limit:50\n        };\n    }\n\n    public withBand( band:Band ): GetGigsRequestBuilder {\n        this.getGigsRequest.band = band.bandId ?? ( band.slug ?? '' );\n        return this;\n    }\n\n    public withVenue( venue:Venue ): GetGigsRequestBuilder {\n        this.getGigsRequest.venue = venue.venueId ?? ( venue.slug ?? '' );\n        return this;\n    }\n\n    public withStatus( status:GigStatusEnum ): GetGigsRequestBuilder {\n        this.getGigsRequest.status.push(status);\n        return this;\n    }\n\n    public withStartDate(startDate:LocalDate): GetGigsRequestBuilder {\n        this.getGigsRequest.after = startDate.minusDays(1).format(DateTimeFormatter.ofPattern('yyyy-MM-dd').withLocale(Locale.US)); \n        this.getGigsRequest.before = startDate.plusDays(1).format(DateTimeFormatter.ofPattern('yyyy-MM-dd').withLocale(Locale.US)); \n        return this;\n    }\n\n    public withStartDateBefore(beforeDate:LocalDate): GetGigsRequestBuilder {\n        this.getGigsRequest.before = beforeDate.format(DateTimeFormatter.ofPattern('yyyy-MM-dd').withLocale(Locale.US)); \n        return this;\n    }\n\n    public withStartDateAfter(afterDate:LocalDate): GetGigsRequestBuilder {\n        this.getGigsRequest.after = afterDate.format(DateTimeFormatter.ofPattern('yyyy-MM-dd').withLocale(Locale.US)); \n        return this;\n    }\n\n    public withSort(sortCode:GigSortByEnum): GetGigsRequestBuilder {\n        this.getGigsRequest.sort = sortCode;\n        return this;\n    }\n\n    public withLimit( index:number, limit:number ): GetGigsRequestBuilder {\n        this.getGigsRequest.index = index;\n        this.getGigsRequest.limit = limit;\n        return this;\n    }\n\n    public build(): GetGigsRequest {\n        return this.getGigsRequest;\n    }\n}\n\n","import { ImageCategoryEnum } from \"../enums/image-category.enum\";\nimport { FilestackInfo } from \"./filestack-info.model\";\n\nexport enum ImageAspectRatio {\n  SQUARE=\"SQUARE\",\n  FOURTHREE=\"FOURTHREE\",\n  FIVETWO=\"FIVETWO\"\n}\n\nexport const ImageAspectRatioValue = new Map<ImageAspectRatio, number>([\n  [ ImageAspectRatio.SQUARE, 1.0],\n  [ ImageAspectRatio.FOURTHREE, 1.333],\n  [ ImageAspectRatio.FIVETWO, 2.5],\n]);\n\nexport interface ImageInfo {\n  imageId?:string;\n  imageUrl?:string;\n  category?:ImageCategoryEnum;\n  filestackInfo?:FilestackInfo;\n}\n","export interface SearchBandsRequest {\n    q?:string;\n    limit:number;\n}\n\n\nexport class SearchBandsRequestBuilder {\n    searchBandsRequest:SearchBandsRequest;\n\n    constructor() {\n        this.searchBandsRequest = {\n            q:'',            \n            limit:30\n        };\n    }\n\n    public withQuery(query:string): SearchBandsRequestBuilder {\n        this.searchBandsRequest.q = query;\n        return this;\n    }    \n\n    public withLimt(limit:number): SearchBandsRequestBuilder {\n        this.searchBandsRequest.limit = limit;\n        return this;\n    }\n\n    public build(): SearchBandsRequest {\n        return this.searchBandsRequest;\n    }\n}\n","import { DateTimeFormatter, LocalDate } from \"@js-joda/core\";\nimport { Locale } from \"@js-joda/locale_en-us\";\nimport { GigSortByEnum } from \"../../enums/gig-sort-by.enum\";\nimport { Coordinate, CoordinateBox } from \"../coordinate.model\";\n\nexport interface SearchGigsRequest {\n    q?:string;\n    lat?:number;\n    lon?:number;\n    r?:number;\n    lat1?:number;\n    lon1?:number;\n    lat2?:number;\n    lon2?:number;\n    after?:string;\n    before?:string;\n    sort?:string;\n    limit:number;\n}\n\n\nexport class SearchGigsRequestBuilder {\n    searchGigsRequest:SearchGigsRequest;\n\n    constructor() {\n        this.searchGigsRequest = {\n            q:'',            \n            limit:30\n        };\n    }\n\n    public withQuery(query:string): SearchGigsRequestBuilder {\n        this.searchGigsRequest.q = query;\n        return this;\n    }\n    \n    public withCenterPoint( centerPoint:Coordinate, radiusInMeters:number = 25000 ): SearchGigsRequestBuilder {\n        this.searchGigsRequest.lat = centerPoint.latitude;\n        this.searchGigsRequest.lon = centerPoint.longitude;\n        return this;\n    }\n\n    public withBoundingBox( boundingBox:CoordinateBox ): SearchGigsRequestBuilder {\n        this.searchGigsRequest.lat1 = boundingBox.topLeft.latitude;\n        this.searchGigsRequest.lon1 = boundingBox.topLeft.longitude;\n        this.searchGigsRequest.lat2 = boundingBox.bottomRight.latitude;\n        this.searchGigsRequest.lon2 = boundingBox.bottomRight.longitude;\n        return this;\n    }\n\n    public withStartDate(startDate:LocalDate): SearchGigsRequestBuilder {\n        this.searchGigsRequest.after = startDate.minusDays(1).format(DateTimeFormatter.ofPattern('yyyy-MM-dd').withLocale(Locale.US)); \n        this.searchGigsRequest.before = startDate.plusDays(1).format(DateTimeFormatter.ofPattern('yyyy-MM-dd').withLocale(Locale.US)); \n        return this;\n    }\n\n    public withStartDateBefore(beforeDate:LocalDate): SearchGigsRequestBuilder {\n        this.searchGigsRequest.before = beforeDate.format(DateTimeFormatter.ofPattern('yyyy-MM-dd').withLocale(Locale.US)); \n        return this;\n    }\n\n    public withStartDateAfter(afterDate:LocalDate): SearchGigsRequestBuilder {\n        this.searchGigsRequest.after = afterDate.format(DateTimeFormatter.ofPattern('yyyy-MM-dd').withLocale(Locale.US)); \n        return this;\n    }\n\n    public withSort(sortCode:GigSortByEnum): SearchGigsRequestBuilder {\n        this.searchGigsRequest.sort = sortCode;\n        return this;\n    }\n\n\n    public withLimt(limit:number): SearchGigsRequestBuilder {\n        this.searchGigsRequest.limit = limit;\n        return this;\n    }\n\n    public build(): SearchGigsRequest {\n        return this.searchGigsRequest;\n    }\n}\n","import { Coordinate, CoordinateBox } from \"../coordinate.model\";\n\nexport interface SearchVenuesRequest {\n    q?:string;\n    lat?:number;\n    lon?:number;\n    r?:number;\n    lat1?:number;\n    lon1?:number;\n    lat2?:number;\n    lon2?:number;\n    limit:number;\n}\n\n\nexport class SearchVenuesRequestBuilder {\n    searchVenuesRequest:SearchVenuesRequest;\n\n    constructor() {\n        this.searchVenuesRequest = {\n            q:'',            \n            limit:30\n        };\n    }\n\n    public withQuery(query:string): SearchVenuesRequestBuilder {\n        this.searchVenuesRequest.q = query;\n        return this;\n    }\n    \n    public withCenterPoint( centerPoint:Coordinate, radiusInMeters:number = 25000 ): SearchVenuesRequestBuilder {\n        this.searchVenuesRequest.lat = centerPoint.latitude;\n        this.searchVenuesRequest.lon = centerPoint.longitude;\n        return this;\n    }\n\n    public withBoundingBox( boundingBox:CoordinateBox ): SearchVenuesRequestBuilder {\n        this.searchVenuesRequest.lat1 = boundingBox.topLeft.latitude;\n        this.searchVenuesRequest.lon1 = boundingBox.topLeft.longitude;\n        this.searchVenuesRequest.lat2 = boundingBox.bottomRight.latitude;\n        this.searchVenuesRequest.lon2 = boundingBox.bottomRight.longitude;\n        return this;\n    }\n\n    public withLimt(limit:number): SearchVenuesRequestBuilder {\n        this.searchVenuesRequest.limit = limit;\n        return this;\n    }\n\n    public build(): SearchVenuesRequest {\n        return this.searchVenuesRequest;\n    }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpHeaders } from '@angular/common/http';\nimport { OgdbEnvironment } from '../models/ogdb-environment.model';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class OgdbService {\n  ogdbEnvironment?:OgdbEnvironment;\n\n  constructor() {\n    // nnop\n  }\n\n  public setEnvironment(ogdbEnvironment:OgdbEnvironment) {\n    this.ogdbEnvironment = ogdbEnvironment;\n  }\n\n  public buildHttpOptionsNoAuth() : object {\n\n    const headers = new HttpHeaders()\n        .set('Content-Type', 'application/json')\n        .set('x-app-key', this.ogdbEnvironment?.appPublicKey ?? \"\")\n        .set('x-app-secret', this.ogdbEnvironment?.appSecretKey ?? \"\");\n\n    const options = {\n        headers: headers\n    };\n\n    return options;\n  }\n\n  public buildHttpOptions( accessToken:string ) : object {\n\n    const headers = new HttpHeaders()\n        .set('Authorization', `Bearer ${accessToken}`)\n        .set('Content-Type', 'application/json')\n        .set('x-app-key', this.ogdbEnvironment?.appPublicKey ?? \"\")\n        .set('x-app-secret', this.ogdbEnvironment?.appSecretKey ?? \"\");\n\n    const options = {\n        headers: headers\n    };\n\n    return options;\n  }\n\n\n  public getApiUrl(uri:string) {\n    return `${this.ogdbEnvironment?.apiUri ?? 'http://localhost:8080/api'}/${uri}`;\n  }\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { App } from '../models/app.model';\nimport { OgdbService } from './ogdb.service';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class AppService {\n\n  constructor(\n    protected ogdbService:OgdbService,\n    protected http: HttpClient ) {\n  }\n\n\n\n  public getApps(accessToken:string) : Observable<App[]> {\n    const options = this.ogdbService.buildHttpOptions(accessToken);\n    const url = this.ogdbService.getApiUrl('apps');\n\n    console.log(\"get::\" + url);\n\n    return this.http.get<App[]>( url, options );\n  }\n\n  public createApp(accessToken:string, app:App) : Observable<App> {\n    const options = this.ogdbService.buildHttpOptions(accessToken);\n    const url = this.ogdbService.getApiUrl('apps');\n\n    console.log(\"post::\" + url);\n\n    return this.http.post<App>( url, app, options );\n  }\n\n  public updateApp(accessToken:string, app:App) : Observable<App> {\n    const options = this.ogdbService.buildHttpOptions(accessToken);\n    const url = this.ogdbService.getApiUrl(`apps/${app.appId}`);\n\n    console.log(\"put::\" + url);\n\n    return this.http.put<App>( url, app, options );\n  }  \n\n\n  public deleteApp(accessToken:string, app:App) : Observable<void> {\n    const options = this.ogdbService.buildHttpOptions(accessToken);\n    const url = this.ogdbService.getApiUrl(`apps/${app.appId}`);\n\n    console.log(\"delete::\" + url);\n\n    return this.http.delete<void>( url, options );\n  }    \n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { AuthRequest } from '../models/auth-request.model';\nimport { AuthResponse } from '../models/auth-response.model';\nimport { User } from '../models/user.model';\nimport { OgdbService } from './ogdb.service';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class AuthService {\n\n  constructor(\n    protected ogdbService:OgdbService,\n    protected http: HttpClient ) {\n  }\n\n  public auth(authRequest:AuthRequest) : Observable<AuthResponse> {\n    const options = this.ogdbService.buildHttpOptionsNoAuth();\n    const url = this.ogdbService.getApiUrl(\"auth\");\n\n    console.log(\"post::\" + url);\n\n    return this.http.post<AuthResponse>( url, authRequest, options );\n  }\n\n\n  public authIdentity(accessToken:string, idToken:string) : Observable<User> {\n    const options = this.ogdbService.buildHttpOptions(accessToken);\n    const url = this.ogdbService.getApiUrl(`auth/identity?idToken=${idToken}`);\n\n    console.log(\"get::\" + url);\n\n    return this.http.get<User>( url, options );\n  }\n\n}\n","import { HttpParams } from '@angular/common/http';\n\nexport class HttpParamsBuilder {\n    private _httpParams:HttpParams = new HttpParams();\n\n    constructor(){\n        this.reset();\n    }\n\n    public reset() {\n        this._httpParams = new HttpParams();\n    }\n\n    public build() : HttpParams {\n        return this._httpParams;\n    }\n\n    public with(key:string, value:string) : HttpParamsBuilder {\n        if ( value ) {\n            this._httpParams = this._httpParams.set( key, value );\n        }\n\n        return this;\n    }\n\n    public withNumber(key:string, value:number) : HttpParamsBuilder {\n        this.with(key, String(value));\n        return this;\n    }\n\n    public withObject(obj:object) : HttpParamsBuilder {\n        Object.keys(obj).forEach(key => {            \n            this.with(key, obj[key as keyof typeof obj] );            \n        });\n\n        return this;\n    }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BandUserRoleEnum } from '../enums/band-user-role.enum';\nimport { InvitationStatusEnum } from '../enums/invitation-status.enum';\nimport { BandMember } from '../models/band-member.model';\nimport { BandUser } from '../models/band-user.model';\nimport { Band } from '../models/band.model';\nimport { Invitation } from '../models/invitation.model';\nimport { GetBandsRequest } from '../models/search/get-bands-request.model';\nimport { SearchBandsRequest } from '../models/search/search-bands-request.model';\nimport { User } from '../models/user.model';\nimport { HttpParamsBuilder } from '../utils/http-params-builder.util';\nimport { OgdbService } from './ogdb.service';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class BandService {\n\n  constructor(\n    protected ogdbService:OgdbService,\n    protected http: HttpClient ) {\n  }\n\n  public searchBands( searchBandsRequest:SearchBandsRequest ) : Observable<Band[]> {\n\n    var httpParams = new HttpParamsBuilder()\n                            .withObject( searchBandsRequest )                            \n                            .build();\n\n    const options = this.ogdbService.buildHttpOptionsNoAuth();\n    const url = this.ogdbService.getApiUrl(`search-bands?${httpParams.toString()}`);\n\n    console.log(\"get::\" + url);\n\n    return this.http.get<Band[]>( url, options );\n  }\n\n\n  public getBands( getBandsRequest:GetBandsRequest ) : Observable<Band[]> {\n\n    var httpParams = new HttpParamsBuilder()\n                            .withObject( getBandsRequest )                            \n                            .build();\n\n    const options = this.ogdbService.buildHttpOptionsNoAuth();\n    const url = this.ogdbService.getApiUrl(`bands?${httpParams.toString()}`);\n\n    console.log(\"get::\" + url);\n\n    return this.http.get<Band[]>( url, options );\n  }\n\n  public getBand( bandIdOrSlug:string ) : Observable<Band> {\n    const options = this.ogdbService.buildHttpOptionsNoAuth();\n    const url = this.ogdbService.getApiUrl(`bands/${bandIdOrSlug}`);\n\n    console.log(\"get::\" + url);\n\n    return this.http.get<Band>( url, options );\n  }\n\n  public createBand( accessToken:string, bandInfo:Band): Observable<Band> {\n    const options = this.ogdbService.buildHttpOptions(accessToken);\n    const url = this.ogdbService.getApiUrl(`bands`);\n\n    console.log(\"post::\" + url);\n\n    return this.http.post<Band>( url, bandInfo, options );\n  }\n\n  public updateBand( accessToken:string, bandInfo:Band): Observable<Band> {\n    const options = this.ogdbService.buildHttpOptions(accessToken);\n    const url = this.ogdbService.getApiUrl(`bands/${bandInfo.bandId}`);\n\n    console.log(\"put::\" + url);\n\n    return this.http.put<Band>( url, bandInfo, options );\n  }\n\n  public deleteBand( accessToken:string, bandInfo:Band): Observable<void> {\n    const options = this.ogdbService.buildHttpOptions(accessToken);\n    const url = this.ogdbService.getApiUrl(`bands/${bandInfo.bandId}`);\n\n    console.log(\"delete::\" + url);\n\n    return this.http.delete<void>( url, options );\n  }\n\n  public getBandMembers( band:Band ) : Observable<BandMember[]> {\n    const options = this.ogdbService.buildHttpOptionsNoAuth();\n    const url = this.ogdbService.getApiUrl(`bands/${band.bandId}/members`);\n\n    console.log(\"get::\" + url);\n\n    return this.http.get<BandMember[]>( url, options );\n  }\n\n\n  public createBandMember( accessToken:string, band:Band, bandMember:BandMember ) : Observable<BandMember> {\n    const options = this.ogdbService.buildHttpOptions(accessToken);\n    const url = this.ogdbService.getApiUrl(`bands/${band.bandId}/members`);\n\n    bandMember.bandId = band.bandId;\n\n    console.log(\"post::\" + url);\n\n    return this.http.post<BandMember>( url, bandMember, options );\n  }\n\n  public updateBandMember( accessToken:string, band:Band, bandMember:BandMember ) : Observable<BandMember> {\n    const options = this.ogdbService.buildHttpOptions(accessToken);\n    const url = this.ogdbService.getApiUrl(`bands/${band.bandId}/members/${bandMember.memberId}`);\n\n    bandMember.bandId = band.bandId;\n\n    console.log(\"put::\" + url);\n\n    return this.http.put<BandMember>( url, bandMember, options );\n  }\n\n  public deleteBandMember( accessToken:string, band:Band, bandMember:BandMember ) : Observable<BandMember> {\n    const options = this.ogdbService.buildHttpOptions(accessToken);\n    const url = this.ogdbService.getApiUrl(`bands/${band.bandId}/members/${bandMember.memberId}`);\n\n    console.log(\"delete::\" + url);\n\n    return this.http.delete<BandMember>( url, options );\n  }\n\n  public searchBandUsers( band:Band | null, user:User | null, role:BandUserRoleEnum | null ) : Observable<BandUser[]> {\n    const options = this.ogdbService.buildHttpOptionsNoAuth();\n    const url = this.ogdbService.getApiUrl(`band-users?band=${band === null ? '' : band.bandId}&user=${user === null ? '' : user.userId}&role=${role === null ? '' : role}`);\n\n    console.log(\"get::\" + url);\n\n    return this.http.get<BandUser[]>( url, options );\n  }\n\n\n  public getBandUsers( band:Band ) : Observable<BandUser[]> {\n    const options = this.ogdbService.buildHttpOptionsNoAuth();\n    const url = this.ogdbService.getApiUrl(`bands/${band.bandId}/users`);\n\n    console.log(\"get::\" + url);\n\n    return this.http.get<BandUser[]>( url, options );\n  }\n\n\n  public getBandUser( band:Band, user:User ) : Observable<BandUser> {\n    const options = this.ogdbService.buildHttpOptionsNoAuth();\n    const url = this.ogdbService.getApiUrl(`bands/${band.bandId}/users/${user.userId}`);\n\n    console.log(\"get::\" + url);\n\n    return this.http.get<BandUser>( url, options );\n  }\n\n\n\n  public updateBandUser( accessToken:string, bandUser:BandUser ) : Observable<BandUser> {\n    const options = this.ogdbService.buildHttpOptions(accessToken);\n    const url = this.ogdbService.getApiUrl(`bands/${bandUser.band.bandId}/users/${bandUser.user.userId}`);\n\n    console.log(\"put::\" + url);\n\n    return this.http.put<BandUser>( url, bandUser, options );\n  }\n\n  public deleteBandUser( accessToken:string, bandUser:BandUser ) : Observable<void> {\n    const options = this.ogdbService.buildHttpOptions(accessToken);\n    const url = this.ogdbService.getApiUrl(`bands/${bandUser.band.bandId}/users/${bandUser.user.userId}`);\n\n    console.log(\"delete::\" + url);\n\n    return this.http.delete<void>( url, options );\n  }\n\n  public getInvitations( accessToken:string, band:Band | null, emailAddress:string | null, status:InvitationStatusEnum[] | null = null) : Observable<Invitation[]> {\n    const options = this.ogdbService.buildHttpOptions(accessToken);\n    const url = this.ogdbService.getApiUrl(`invitations?band=${band === null ? '' : band.bandId}&email=${emailAddress === null ? '' : emailAddress}&status=${status == null ? '' : status}`);\n\n    console.log(\"get::\" + url);\n\n    return this.http.get<Invitation[]>( url, options );\n  }\n\n\n  public createInvitation( accessToken:string, invitation:Invitation ) : Observable<Invitation> {\n    const options = this.ogdbService.buildHttpOptions(accessToken);\n    const url = this.ogdbService.getApiUrl(`invitations`);\n    \n    console.log(\"post::\" + url);\n\n    return this.http.post<Invitation>( url, invitation, options );\n  }\n\n\n  public updateInvitation( accessToken:string, invitation:Invitation ) : Observable<Invitation> {\n    const options = this.ogdbService.buildHttpOptions(accessToken);\n    const url = this.ogdbService.getApiUrl(`invitations/${invitation.invitationId}`);\n    \n    console.log(\"put::\" + url);\n\n    return this.http.put<Invitation>( url, invitation, options );\n  }\n\n  public deleteInvitation( accessToken:string, invitation:Invitation ) : Observable<void> {\n    const options = this.ogdbService.buildHttpOptions(accessToken);\n    const url = this.ogdbService.getApiUrl(`invitations/${invitation.invitationId}`);\n    \n    console.log(\"delete::\" + url);\n\n    return this.http.delete<void>( url, options );\n  }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Gig } from '../models/gig.model';\nimport { OgdbService } from './ogdb.service';\nimport { LocalDate, LocalTime } from '@js-joda/core';\nimport { GetGigsRequest } from '../models/search/get-gigs-request.model';\nimport { HttpParamsBuilder } from '../utils/http-params-builder.util';\nimport { SearchGigsRequest } from '../models/search/search-gigs-request.model';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class GigService {\n\n  constructor(\n    protected ogdbService:OgdbService,\n    protected http: HttpClient ) {\n  }\n\n\n  public searchGigs( searchGigsRequest:SearchGigsRequest ) : Observable<Gig[]> {\n\n    var httpParams = new HttpParamsBuilder()\n                            .withObject( searchGigsRequest )                            \n                            .build();\n\n    const options = this.ogdbService.buildHttpOptionsNoAuth();\n    const url = this.ogdbService.getApiUrl(`search-gigs?${httpParams.toString()}`);\n\n    console.log(\"get::\" + url);\n\n    return this.http.get<Gig[]>( url, options )\n      .pipe(\n        map( (gigs) => {\n          // convert date strings to LocalDate instances\n          for ( const gig of gigs ) {\n            gig.startDate = LocalDate.parse( gig.startDate?.toString() ?? \"\" );\n            gig.startTime = LocalTime.parse( gig.startTime?.toString() ?? \"\" );\n            gig.endTime = LocalTime.parse( gig.endTime?.toString() ?? \"\" );\n          }\n          return gigs;\n        })\n      );\n  }\n  \n  public getGigs( getGigsRequest:GetGigsRequest ) : Observable<Gig[]> {\n\n    var httpParams = new HttpParamsBuilder()\n                            .withObject( getGigsRequest )                            \n                            .build();\n\n    const options = this.ogdbService.buildHttpOptionsNoAuth();\n    const url = this.ogdbService.getApiUrl(`gigs?${httpParams.toString()}`);\n\n    console.log(\"get::\" + url);\n\n    return this.http.get<Gig[]>( url, options )\n      .pipe(\n        map( (gigs) => {\n          // convert date strings to LocalDate instances\n          for ( const gig of gigs ) {\n            gig.startDate = LocalDate.parse( gig.startDate?.toString() ?? \"\" );\n            gig.startTime = LocalTime.parse( gig.startTime?.toString() ?? \"\" );\n            gig.endTime = LocalTime.parse( gig.endTime?.toString() ?? \"\" );\n          }\n          return gigs;\n        })\n      );\n  }\n\n\n  public getGig(gigIdOrSlug:string ) : Observable<Gig> {\n    const options = this.ogdbService.buildHttpOptionsNoAuth();\n    const url = this.ogdbService.getApiUrl(`gigs/${gigIdOrSlug}`);\n\n    console.log(\"get::\" + url );\n\n    return this.http.get<Gig>( url, options )\n    .pipe(\n      map( (gig) => {\n        // convert date strings to LocalDate instances        \n        gig.startDate = LocalDate.parse( gig.startDate?.toString() ?? \"\" );\n        gig.startTime = LocalTime.parse( gig.startTime?.toString() ?? \"\" );\n        gig.endTime = LocalTime.parse( gig.endTime?.toString() ?? \"\" );        \n        return gig;\n      })\n    );\n  }\n\n  public createGig( accessToken:string, gigInfo:Gig ) : Observable<Gig> {\n    const options = this.ogdbService.buildHttpOptions(accessToken);\n    const url = this.ogdbService.getApiUrl(`gigs`);\n\n    //console.log(\"post::\" + url + \", gigInfo=\" + JSON.stringify(gigInfo) );\n    console.log(\"post::\" + url );\n\n    return this.http.post<Gig>( url, gigInfo, options );\n  }\n\n\n  public updateGig( accessToken:string, gigInfo:Gig ) : Observable<Gig> {\n    const options = this.ogdbService.buildHttpOptions(accessToken);\n    const url = this.ogdbService.getApiUrl(`gigs/${gigInfo.gigId}`);\n\n    console.log(\"put::\" + url );\n\n    return this.http.put<Gig>( url, gigInfo, options );\n  }\n\n\n  public deleteGig( accessToken:string, gigInfo:Gig ) : Observable<void> {\n    const options = this.ogdbService.buildHttpOptions(accessToken);\n    const url = this.ogdbService.getApiUrl(`gigs/${gigInfo.gigId}`);\n\n    console.log(\"delete::\" + url );\n\n    return this.http.delete<void>( url, options );\n  }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ImageInfo } from '../models/image-info.model';\nimport { OgdbService } from './ogdb.service';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ImageService {\n  //public static PlaceholderUrl = 'https://cdn.opengigdb.com/static/images/placeholder-01-900x675.png';\n\n  constructor(\n    protected ogdbService:OgdbService,\n    protected http: HttpClient ) {\n  }\n\n  public uploadImage( accessToken:string, imageInfo:ImageInfo ) : Observable<ImageInfo> {\n    const options = this.ogdbService.buildHttpOptions(accessToken);\n    const url = this.ogdbService.getApiUrl('images');\n\n    console.log(\"post::\" + url);\n\n    return this.http.post<ImageInfo>( url, imageInfo, options );\n  }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { DocIdEnum } from '../enums/doc-id.enum';\nimport { Country } from '../models/country.model';\nimport { Doc } from '../models/cms/doc.model';\nimport { FAQ } from '../models/cms/faq.model';\nimport { OgdbService } from './ogdb.service';\nimport { FeaturedApp } from '../models/cms/featured-app.model';\nimport { Coordinate } from '../models/coordinate.model';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class LookupService {\n\n  constructor(\n    protected ogdbService:OgdbService,\n    protected http: HttpClient ) {\n  }\n\n  public getCountries() : Observable<Country[]> {\n    const options = this.ogdbService.buildHttpOptionsNoAuth();\n    const url = this.ogdbService.getApiUrl('lookup/countries');\n\n    console.log(\"get::\" + url);\n\n    return this.http.get<Country[]>( url, options );\n  }\n\n\n  public getDocument(documentId:DocIdEnum) : Observable<Doc> {\n    const options = this.ogdbService.buildHttpOptionsNoAuth();\n    const url = this.ogdbService.getApiUrl(`lookup/documents/${documentId}`);\n\n    console.log(\"get::\" + url);\n\n    return this.http.get<Doc>( url, options );\n  }\n\n\n  public getFAQs() : Observable<FAQ[]> {\n    const options = this.ogdbService.buildHttpOptionsNoAuth();\n    const url = this.ogdbService.getApiUrl('lookup/faqs');\n\n    console.log(\"get::\" + url);\n\n    return this.http.get<FAQ[]>( url, options );\n  }\n\n\n  public getTimezones(coordinate:Coordinate) : Observable<string[]> {\n    const options = this.ogdbService.buildHttpOptionsNoAuth();\n    const url = this.ogdbService.getApiUrl(`lookup/timezones?latitude=${coordinate.latitude}&longitude=${coordinate.longitude}`);\n\n    console.log(\"get::\" + url);\n\n    return this.http.get<string[]>( url, options );\n  }\n\n  public getFeaturedApps() : Observable<FeaturedApp[]> {\n    const options = this.ogdbService.buildHttpOptionsNoAuth();\n    const url = this.ogdbService.getApiUrl('lookup/featured-apps');\n\n    console.log(\"get::\" + url);\n\n    return this.http.get<FeaturedApp[]>( url, options );\n  }\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { Invitation } from '../models/invitation.model';\nimport { User } from '../models/user.model';\nimport { OgdbService } from './ogdb.service';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class UserService {\n\n  constructor(\n    protected ogdbService:OgdbService,\n    protected http: HttpClient ) {\n  }\n\n  public getUser(accessToken:string, userId:string) : Observable<User> {\n    const options = this.ogdbService.buildHttpOptions(accessToken);\n    const url = this.ogdbService.getApiUrl(`users/${userId}`);\n\n    console.log(\"get::\" + url);\n\n    return this.http.get<User>( url, options );\n  }\n\n\n  public createUser(accessToken:string, userInfo:User) : Observable<User> {\n    const options = this.ogdbService.buildHttpOptions(accessToken);\n    const url = this.ogdbService.getApiUrl('users');\n\n    console.log(\"post::\" + url);\n\n    return this.http.post<User>( url, userInfo, options );\n  }\n\n\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { SearchVenuesRequest } from '../models/search/search-venues-request.model';\nimport { Venue } from '../models/venue.model';\nimport { HttpParamsBuilder } from '../utils/http-params-builder.util';\nimport { OgdbService } from './ogdb.service';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class VenueService {\n\n  constructor(\n    protected ogdbService:OgdbService,\n    protected http: HttpClient ) {\n  }\n\n  public searchVenues(searchVenuesRequest:SearchVenuesRequest) : Observable<Venue[]> {\n\n    var httpParams = new HttpParamsBuilder()\n                            .withObject( searchVenuesRequest )                            \n                            .build();\n\n    const options = this.ogdbService.buildHttpOptionsNoAuth();\n    const url = this.ogdbService.getApiUrl(`search-venues?${httpParams.toString()}`);\n\n    console.log(\"get::\" + url);\n\n    return this.http.get<Venue[]>( url, options );\n  }\n\n  public getVenue(venueIdOrSlig:string) : Observable<Venue> {\n    const options = this.ogdbService.buildHttpOptionsNoAuth();\n    const url = this.ogdbService.getApiUrl(`venues/${venueIdOrSlig}`);\n\n    console.log(\"get::\" + url);\n\n    return this.http.get<Venue>( url, options );\n  }  \n\n  public createVenue(accessToken:string, venueInfo:Venue) : Observable<Venue> {\n    const options = this.ogdbService.buildHttpOptions(accessToken);\n    const url = this.ogdbService.getApiUrl('venues');\n\n    console.log(\"post::\" + url);\n\n    return this.http.post<Venue>( url, venueInfo, options );\n  }\n}\n","/*\n * Public API Surface of ogdb-api-lib\n */\n\nexport * from './lib/ogdb-api-lib.service';\nexport * from './lib/ogdb-api-lib.module';\n\n/*\n * Enums\n */\n\nexport { AppStatusEnum } from './lib/enums/app-status.enum';\nexport { BandStatusEnum } from './lib/enums/band-status.enum';\nexport { BandUserRoleEnum } from './lib/enums/band-user-role.enum';\nexport { DocIdEnum } from './lib/enums/doc-id.enum';\nexport { GigSortByEnum } from './lib/enums/gig-sort-by.enum';\nexport { GigStatusEnum } from './lib/enums/gig-status.enum';\nexport { ImageCategoryEnum } from './lib/enums/image-category.enum';\nexport { InvitationStatusEnum } from './lib/enums/invitation-status.enum';\nexport { UserStatusEnum } from './lib/enums/user-status.enum';\nexport { VenueStatusEnum } from './lib/enums/venue-status.enum';\n\n/*\n * Models\n */\n\nexport { Address } from './lib/models/address.model';\nexport { App } from './lib/models/app.model';\nexport { AuthRequest  } from './lib/models/auth-request.model';\nexport { AuthResponse } from './lib/models/auth-response.model';\nexport { Band } from './lib/models/band.model';\nexport { BandMember } from './lib/models/band-member.model';\nexport { BandUser } from './lib/models/band-user.model';\nexport { Coordinate, CoordinateBox } from './lib/models/coordinate.model';\nexport { Country } from './lib/models/country.model';\nexport { Doc } from './lib/models/cms/doc.model';\nexport { FAQ } from './lib/models/cms/faq.model';\nexport { FeaturedApp } from './lib/models/cms/featured-app.model';\nexport { FilestackInfo, FilestackInfoBuilder } from './lib/models/filestack-info.model';\nexport { GetBandsRequest, GetBandsRequestBuilder } from './lib/models/search/get-bands-request.model';\nexport { GetGigsRequest, GetGigsRequestBuilder } from './lib/models/search/get-gigs-request.model';\nexport { Gig } from './lib/models/gig.model';\nexport { ImageInfo, ImageAspectRatio, ImageAspectRatioValue } from './lib/models/image-info.model';\nexport { Invitation } from './lib/models/invitation.model';\nexport { OgdbEnvironment } from './lib/models/ogdb-environment.model';\nexport { SearchBandsRequest, SearchBandsRequestBuilder } from './lib/models/search/search-bands-request.model';\nexport { SearchGigsRequest, SearchGigsRequestBuilder } from './lib/models/search/search-gigs-request.model';\nexport { SearchVenuesRequest, SearchVenuesRequestBuilder } from './lib/models/search/search-venues-request.model';\nexport { User } from './lib/models/user.model';\nexport { Venue } from './lib/models/venue.model';\n\n/*\n * Services\n */\n\nexport { OgdbService } from './lib/services/ogdb.service';\nexport { AppService } from './lib/services/app.service';\nexport { AuthService } from './lib/services/auth.service';\nexport { BandService } from './lib/services/band.service';\nexport { GigService } from './lib/services/gig.service';\nexport { ImageService } from './lib/services/image.service';\nexport { LookupService } from './lib/services/lookup.service';\nexport { UserService } from './lib/services/user.service';\nexport { VenueService } from './lib/services/venue.service';\n\n/*\n * Pipes\n */\n\nexport { CoverImagePipe } from './lib/pipes/cover-image.pipe';\nexport { LocalDatePipe } from './lib/pipes/local-date.pipe';\nexport { LocalTimePipe } from './lib/pipes/local-time.pipe';\nexport { PrimaryImagePipe } from './lib/pipes/primary-image.pipe';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.OgdbService"],"mappings":"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"}