| @@ -1398,6 +1398,32 @@ paths: | |||||
| style: form | style: form | ||||
| explode: true | explode: true | ||||
| allowReserved: false | allowReserved: false | ||||
| - | |||||
| name: partner.type | |||||
| in: query | |||||
| description: '' | |||||
| required: false | |||||
| deprecated: false | |||||
| allowEmptyValue: true | |||||
| schema: | |||||
| type: string | |||||
| style: form | |||||
| explode: false | |||||
| allowReserved: false | |||||
| - | |||||
| name: 'partner.type[]' | |||||
| in: query | |||||
| description: '' | |||||
| required: false | |||||
| deprecated: false | |||||
| allowEmptyValue: true | |||||
| schema: | |||||
| type: array | |||||
| items: | |||||
| type: string | |||||
| style: form | |||||
| explode: true | |||||
| allowReserved: false | |||||
| deprecated: false | deprecated: false | ||||
| post: | post: | ||||
| operationId: api_partner_follows_post | operationId: api_partner_follows_post | ||||
| @@ -1645,6 +1671,32 @@ paths: | |||||
| style: form | style: form | ||||
| explode: false | explode: false | ||||
| allowReserved: false | allowReserved: false | ||||
| - | |||||
| name: partner.type | |||||
| in: query | |||||
| description: '' | |||||
| required: false | |||||
| deprecated: false | |||||
| allowEmptyValue: true | |||||
| schema: | |||||
| type: string | |||||
| style: form | |||||
| explode: false | |||||
| allowReserved: false | |||||
| - | |||||
| name: 'partner.type[]' | |||||
| in: query | |||||
| description: '' | |||||
| required: false | |||||
| deprecated: false | |||||
| allowEmptyValue: true | |||||
| schema: | |||||
| type: array | |||||
| items: | |||||
| type: string | |||||
| style: form | |||||
| explode: true | |||||
| allowReserved: false | |||||
| deprecated: false | deprecated: false | ||||
| post: | post: | ||||
| operationId: api_partner_products_post | operationId: api_partner_products_post | ||||
| @@ -2692,6 +2744,46 @@ paths: | |||||
| allowReserved: false | allowReserved: false | ||||
| deprecated: false | deprecated: false | ||||
| parameters: [] | parameters: [] | ||||
| '/api/sale_summaries/{userId}': | |||||
| get: | |||||
| operationId: api_sale_summaries_userId_get | |||||
| tags: | |||||
| - SaleSummary | |||||
| responses: | |||||
| 200: | |||||
| description: 'SaleSummary resource' | |||||
| content: | |||||
| application/ld+json: | |||||
| schema: | |||||
| $ref: '#/components/schemas/SaleSummary.jsonld' | |||||
| application/json: | |||||
| schema: | |||||
| $ref: '#/components/schemas/SaleSummary' | |||||
| text/html: | |||||
| schema: | |||||
| $ref: '#/components/schemas/SaleSummary' | |||||
| application/hal+json: | |||||
| schema: | |||||
| $ref: '#/components/schemas/SaleSummary.jsonhal' | |||||
| 404: | |||||
| description: 'Resource not found' | |||||
| summary: 'Retrieves a SaleSummary resource.' | |||||
| description: 'Retrieves a SaleSummary resource.' | |||||
| parameters: | |||||
| - | |||||
| name: userId | |||||
| in: path | |||||
| description: 'SaleSummary identifier' | |||||
| required: true | |||||
| deprecated: false | |||||
| allowEmptyValue: false | |||||
| schema: | |||||
| type: string | |||||
| style: simple | |||||
| explode: false | |||||
| allowReserved: false | |||||
| deprecated: false | |||||
| parameters: [] | |||||
| /api/sales: | /api/sales: | ||||
| get: | get: | ||||
| operationId: api_sales_get_collection | operationId: api_sales_get_collection | ||||
| @@ -3595,6 +3687,21 @@ paths: | |||||
| style: form | style: form | ||||
| explode: true | explode: true | ||||
| allowReserved: false | allowReserved: false | ||||
| - | |||||
| name: 'order[product.name]' | |||||
| in: query | |||||
| description: '' | |||||
| required: false | |||||
| deprecated: false | |||||
| allowEmptyValue: true | |||||
| schema: | |||||
| type: string | |||||
| enum: | |||||
| - asc | |||||
| - desc | |||||
| style: form | |||||
| explode: false | |||||
| allowReserved: false | |||||
| deprecated: false | deprecated: false | ||||
| post: | post: | ||||
| operationId: api_user_products_post | operationId: api_user_products_post | ||||
| @@ -5162,11 +5269,8 @@ components: | |||||
| - string | - string | ||||
| - 'null' | - 'null' | ||||
| partner: | partner: | ||||
| type: | |||||
| - string | |||||
| - 'null' | |||||
| format: iri-reference | |||||
| example: 'https://example.com/' | |||||
| description: '?PartnerApi' | |||||
| $ref: '#/components/schemas/Partner' | |||||
| partnerName: | partnerName: | ||||
| readOnly: true | readOnly: true | ||||
| type: | type: | ||||
| @@ -5214,11 +5318,8 @@ components: | |||||
| - string | - string | ||||
| - 'null' | - 'null' | ||||
| partner: | partner: | ||||
| type: | |||||
| - string | |||||
| - 'null' | |||||
| format: iri-reference | |||||
| example: 'https://example.com/' | |||||
| description: '?PartnerApi' | |||||
| $ref: '#/components/schemas/Partner.jsonhal' | |||||
| partnerName: | partnerName: | ||||
| readOnly: true | readOnly: true | ||||
| type: | type: | ||||
| @@ -5280,11 +5381,8 @@ components: | |||||
| - string | - string | ||||
| - 'null' | - 'null' | ||||
| partner: | partner: | ||||
| type: | |||||
| - string | |||||
| - 'null' | |||||
| format: iri-reference | |||||
| example: 'https://example.com/' | |||||
| description: '?PartnerApi' | |||||
| $ref: '#/components/schemas/Partner.jsonld' | |||||
| partnerName: | partnerName: | ||||
| readOnly: true | readOnly: true | ||||
| type: | type: | ||||
| @@ -5314,22 +5412,16 @@ components: | |||||
| - product | - product | ||||
| properties: | properties: | ||||
| partner: | partner: | ||||
| type: | |||||
| - string | |||||
| - 'null' | |||||
| format: iri-reference | |||||
| example: 'https://example.com/' | |||||
| description: '?PartnerApi' | |||||
| $ref: '#/components/schemas/Partner' | |||||
| partnerName: | partnerName: | ||||
| readOnly: true | readOnly: true | ||||
| type: | type: | ||||
| - string | - string | ||||
| - 'null' | - 'null' | ||||
| product: | product: | ||||
| type: | |||||
| - string | |||||
| - 'null' | |||||
| format: iri-reference | |||||
| example: 'https://example.com/' | |||||
| description: '?ProductApi' | |||||
| $ref: '#/components/schemas/Product' | |||||
| productName: | productName: | ||||
| readOnly: true | readOnly: true | ||||
| type: | type: | ||||
| @@ -5359,22 +5451,16 @@ components: | |||||
| type: string | type: string | ||||
| format: iri-reference | format: iri-reference | ||||
| partner: | partner: | ||||
| type: | |||||
| - string | |||||
| - 'null' | |||||
| format: iri-reference | |||||
| example: 'https://example.com/' | |||||
| description: '?PartnerApi' | |||||
| $ref: '#/components/schemas/Partner.jsonhal' | |||||
| partnerName: | partnerName: | ||||
| readOnly: true | readOnly: true | ||||
| type: | type: | ||||
| - string | - string | ||||
| - 'null' | - 'null' | ||||
| product: | product: | ||||
| type: | |||||
| - string | |||||
| - 'null' | |||||
| format: iri-reference | |||||
| example: 'https://example.com/' | |||||
| description: '?ProductApi' | |||||
| $ref: '#/components/schemas/Product.jsonhal' | |||||
| productName: | productName: | ||||
| readOnly: true | readOnly: true | ||||
| type: | type: | ||||
| @@ -5418,22 +5504,16 @@ components: | |||||
| readOnly: true | readOnly: true | ||||
| type: string | type: string | ||||
| partner: | partner: | ||||
| type: | |||||
| - string | |||||
| - 'null' | |||||
| format: iri-reference | |||||
| example: 'https://example.com/' | |||||
| description: '?PartnerApi' | |||||
| $ref: '#/components/schemas/Partner.jsonld' | |||||
| partnerName: | partnerName: | ||||
| readOnly: true | readOnly: true | ||||
| type: | type: | ||||
| - string | - string | ||||
| - 'null' | - 'null' | ||||
| product: | product: | ||||
| type: | |||||
| - string | |||||
| - 'null' | |||||
| format: iri-reference | |||||
| example: 'https://example.com/' | |||||
| description: '?ProductApi' | |||||
| $ref: '#/components/schemas/Product.jsonld' | |||||
| productName: | productName: | ||||
| readOnly: true | readOnly: true | ||||
| type: | type: | ||||
| @@ -5484,6 +5564,16 @@ components: | |||||
| type: | type: | ||||
| - string | - string | ||||
| - 'null' | - 'null' | ||||
| partnerType: | |||||
| readOnly: true | |||||
| type: | |||||
| - string | |||||
| - 'null' | |||||
| enum: | |||||
| - customer | |||||
| - supplier | |||||
| - service | |||||
| - null | |||||
| product: | product: | ||||
| type: | type: | ||||
| - string | - string | ||||
| @@ -5623,6 +5713,16 @@ components: | |||||
| type: | type: | ||||
| - string | - string | ||||
| - 'null' | - 'null' | ||||
| partnerType: | |||||
| readOnly: true | |||||
| type: | |||||
| - string | |||||
| - 'null' | |||||
| enum: | |||||
| - customer | |||||
| - supplier | |||||
| - service | |||||
| - null | |||||
| product: | product: | ||||
| type: | type: | ||||
| - string | - string | ||||
| @@ -5769,6 +5869,16 @@ components: | |||||
| type: | type: | ||||
| - string | - string | ||||
| - 'null' | - 'null' | ||||
| partnerType: | |||||
| readOnly: true | |||||
| type: | |||||
| - string | |||||
| - 'null' | |||||
| enum: | |||||
| - customer | |||||
| - supplier | |||||
| - service | |||||
| - null | |||||
| product: | product: | ||||
| type: | type: | ||||
| - string | - string | ||||
| @@ -6276,6 +6386,8 @@ components: | |||||
| description: '' | description: '' | ||||
| deprecated: false | deprecated: false | ||||
| properties: | properties: | ||||
| userId: | |||||
| type: integer | |||||
| owner: | owner: | ||||
| type: | type: | ||||
| - string | - string | ||||
| @@ -6308,6 +6420,8 @@ components: | |||||
| href: | href: | ||||
| type: string | type: string | ||||
| format: iri-reference | format: iri-reference | ||||
| userId: | |||||
| type: integer | |||||
| owner: | owner: | ||||
| type: | type: | ||||
| - string | - string | ||||
| @@ -6337,6 +6451,25 @@ components: | |||||
| '@type': | '@type': | ||||
| readOnly: true | readOnly: true | ||||
| type: string | type: string | ||||
| '@context': | |||||
| readOnly: true | |||||
| oneOf: | |||||
| - | |||||
| type: string | |||||
| - | |||||
| type: object | |||||
| properties: | |||||
| '@vocab': | |||||
| type: string | |||||
| hydra: | |||||
| type: string | |||||
| enum: ['http://www.w3.org/ns/hydra/core#'] | |||||
| required: | |||||
| - '@vocab' | |||||
| - hydra | |||||
| additionalProperties: true | |||||
| userId: | |||||
| type: integer | |||||
| owner: | owner: | ||||
| type: | type: | ||||
| - string | - string | ||||
| @@ -7027,11 +7160,8 @@ components: | |||||
| - string | - string | ||||
| - 'null' | - 'null' | ||||
| product: | product: | ||||
| type: | |||||
| - string | |||||
| - 'null' | |||||
| format: iri-reference | |||||
| example: 'https://example.com/' | |||||
| description: '?ProductApi' | |||||
| $ref: '#/components/schemas/Product' | |||||
| productName: | productName: | ||||
| readOnly: true | readOnly: true | ||||
| type: | type: | ||||
| @@ -7079,11 +7209,8 @@ components: | |||||
| - string | - string | ||||
| - 'null' | - 'null' | ||||
| product: | product: | ||||
| type: | |||||
| - string | |||||
| - 'null' | |||||
| format: iri-reference | |||||
| example: 'https://example.com/' | |||||
| description: '?ProductApi' | |||||
| $ref: '#/components/schemas/Product.jsonhal' | |||||
| productName: | productName: | ||||
| readOnly: true | readOnly: true | ||||
| type: | type: | ||||
| @@ -7145,11 +7272,8 @@ components: | |||||
| - string | - string | ||||
| - 'null' | - 'null' | ||||
| product: | product: | ||||
| type: | |||||
| - string | |||||
| - 'null' | |||||
| format: iri-reference | |||||
| example: 'https://example.com/' | |||||
| description: '?ProductApi' | |||||
| $ref: '#/components/schemas/Product.jsonld' | |||||
| productName: | productName: | ||||
| readOnly: true | readOnly: true | ||||
| type: | type: | ||||
| @@ -23,28 +23,28 @@ | |||||
| </a> | </a> | ||||
| </li> | </li> | ||||
| <li class="nav-item mb-3"> | <li class="nav-item mb-3"> | ||||
| <a class="card" routerLink="/products" routerLinkActive="active"> | |||||
| <a class="card" routerLink="/product" routerLinkActive="active"> | |||||
| <div class="card-body position-relative bi bi-droplet-fill"> | <div class="card-body position-relative bi bi-droplet-fill"> | ||||
| <h3 class="position-absolute m-0">{{'basic.products' | translate}}</h3> | <h3 class="position-absolute m-0">{{'basic.products' | translate}}</h3> | ||||
| </div> | </div> | ||||
| </a> | </a> | ||||
| </li> | </li> | ||||
| <li class="nav-item mb-3"> | <li class="nav-item mb-3"> | ||||
| <a class="card" routerLink="/tasks" routerLinkActive="active"> | |||||
| <a class="card" routerLink="/task" routerLinkActive="active"> | |||||
| <div class="card-body position-relative bi bi-list-check"> | <div class="card-body position-relative bi bi-list-check"> | ||||
| <h3 class="position-absolute m-0">{{'basic.tasks' | translate}}</h3> | <h3 class="position-absolute m-0">{{'basic.tasks' | translate}}</h3> | ||||
| </div> | </div> | ||||
| </a> | </a> | ||||
| </li> | </li> | ||||
| <li class="nav-item mb-3"> | <li class="nav-item mb-3"> | ||||
| <a class="card" routerLink="/documents" routerLinkActive="active"> | |||||
| <a class="card" routerLink="/document" routerLinkActive="active"> | |||||
| <div class="card-body position-relative bi bi-journals"> | <div class="card-body position-relative bi bi-journals"> | ||||
| <h3 class="position-absolute m-0">{{'basic.documents' | translate}}</h3> | <h3 class="position-absolute m-0">{{'basic.documents' | translate}}</h3> | ||||
| </div> | </div> | ||||
| </a> | </a> | ||||
| </li> | </li> | ||||
| <li class="nav-item mb-3"> | <li class="nav-item mb-3"> | ||||
| <a class="card" routerLink="/sales" routerLinkActive="active"> | |||||
| <a class="card" routerLink="/sale" routerLinkActive="active"> | |||||
| <div class="card-body position-relative bi bi-journals"> | <div class="card-body position-relative bi bi-journals"> | ||||
| <h3 class="position-absolute m-0">{{'basic.sales' | translate}}</h3> | <h3 class="position-absolute m-0">{{'basic.sales' | translate}}</h3> | ||||
| </div> | </div> | ||||
| @@ -1,4 +1,4 @@ | |||||
| <div class="toggle-component"> | |||||
| <div class="toggle-component" (click)="openToggle()"> | |||||
| <div class="toggle collapsed" data-bs-toggle="collapse" [attr.data-bs-target]="'#collapse-' + toggleId" | <div class="toggle collapsed" data-bs-toggle="collapse" [attr.data-bs-target]="'#collapse-' + toggleId" | ||||
| aria-expanded="false"> | aria-expanded="false"> | ||||
| <h2>{{ headline }}</h2> | <h2>{{ headline }}</h2> | ||||
| @@ -9,8 +9,14 @@ import {ContactJsonld} from "@app/core/api/v1"; | |||||
| export class ToggleComponent { | export class ToggleComponent { | ||||
| @Input() public headline!: string; | @Input() public headline!: string; | ||||
| public isOpened: boolean = false; | |||||
| protected toggleId: string; | protected toggleId: string; | ||||
| constructor() { | constructor() { | ||||
| this.toggleId = uuidv4(); | this.toggleId = uuidv4(); | ||||
| } | } | ||||
| openToggle() { | |||||
| this.isOpened = true; | |||||
| } | |||||
| } | } | ||||
| @@ -286,6 +286,7 @@ export const postForm = new FormGroup({ | |||||
| ownerName: new FormControl(null, []), | ownerName: new FormControl(null, []), | ||||
| partner: new FormControl(null, []), | partner: new FormControl(null, []), | ||||
| partnerName: new FormControl(null, []), | partnerName: new FormControl(null, []), | ||||
| partnerType: new FormControl(null, []), | |||||
| product: new FormControl(null, []), | product: new FormControl(null, []), | ||||
| productName: new FormControl(null, []), | productName: new FormControl(null, []), | ||||
| contact: new FormControl(null, []), | contact: new FormControl(null, []), | ||||
| @@ -316,6 +317,7 @@ export const postJsonhalForm = new FormGroup({ | |||||
| ownerName: new FormControl(null, []), | ownerName: new FormControl(null, []), | ||||
| partner: new FormControl(null, []), | partner: new FormControl(null, []), | ||||
| partnerName: new FormControl(null, []), | partnerName: new FormControl(null, []), | ||||
| partnerType: new FormControl(null, []), | |||||
| product: new FormControl(null, []), | product: new FormControl(null, []), | ||||
| productName: new FormControl(null, []), | productName: new FormControl(null, []), | ||||
| contact: new FormControl(null, []), | contact: new FormControl(null, []), | ||||
| @@ -341,6 +343,7 @@ export const postJsonldForm = new FormGroup({ | |||||
| ownerName: new FormControl(null, []), | ownerName: new FormControl(null, []), | ||||
| partner: new FormControl(null, []), | partner: new FormControl(null, []), | ||||
| partnerName: new FormControl(null, []), | partnerName: new FormControl(null, []), | ||||
| partnerType: new FormControl(null, []), | |||||
| product: new FormControl(null, []), | product: new FormControl(null, []), | ||||
| productName: new FormControl(null, []), | productName: new FormControl(null, []), | ||||
| contact: new FormControl(null, []), | contact: new FormControl(null, []), | ||||
| @@ -439,6 +442,7 @@ export const saleJsonldForm = new FormGroup({ | |||||
| }); | }); | ||||
| export const saleSummaryForm = new FormGroup({ | export const saleSummaryForm = new FormGroup({ | ||||
| userId: new FormControl(null, []), | |||||
| owner: new FormControl(null, []), | owner: new FormControl(null, []), | ||||
| ownerName: new FormControl(null, []), | ownerName: new FormControl(null, []), | ||||
| turnover: new FormControl(null, []), | turnover: new FormControl(null, []), | ||||
| @@ -447,6 +451,7 @@ export const saleSummaryForm = new FormGroup({ | |||||
| export const saleSummaryJsonhalForm = new FormGroup({ | export const saleSummaryJsonhalForm = new FormGroup({ | ||||
| _links: new FormControl(null, []), | _links: new FormControl(null, []), | ||||
| userId: new FormControl(null, []), | |||||
| owner: new FormControl(null, []), | owner: new FormControl(null, []), | ||||
| ownerName: new FormControl(null, []), | ownerName: new FormControl(null, []), | ||||
| turnover: new FormControl(null, []), | turnover: new FormControl(null, []), | ||||
| @@ -454,6 +459,7 @@ export const saleSummaryJsonhalForm = new FormGroup({ | |||||
| }); | }); | ||||
| export const saleSummaryJsonldForm = new FormGroup({ | export const saleSummaryJsonldForm = new FormGroup({ | ||||
| userId: new FormControl(null, []), | |||||
| owner: new FormControl(null, []), | owner: new FormControl(null, []), | ||||
| ownerName: new FormControl(null, []), | ownerName: new FormControl(null, []), | ||||
| turnover: new FormControl(null, []), | turnover: new FormControl(null, []), | ||||
| @@ -0,0 +1,17 @@ | |||||
| import { TestBed } from '@angular/core/testing'; | |||||
| import { CanActivateFn } from '@angular/router'; | |||||
| import { adminGuard } from './admin.guard'; | |||||
| describe('adminGuard', () => { | |||||
| const executeGuard: CanActivateFn = (...guardParameters) => | |||||
| TestBed.runInInjectionContext(() => adminGuard(...guardParameters)); | |||||
| beforeEach(() => { | |||||
| TestBed.configureTestingModule({}); | |||||
| }); | |||||
| it('should be created', () => { | |||||
| expect(executeGuard).toBeTruthy(); | |||||
| }); | |||||
| }); | |||||
| @@ -0,0 +1,12 @@ | |||||
| import {CanActivateFn, Router} from '@angular/router'; | |||||
| import {inject} from "@angular/core"; | |||||
| import {AccountService} from "@app/_services"; | |||||
| export const adminGuard: CanActivateFn = (route, state) => { | |||||
| const accountService = inject(AccountService); | |||||
| if (accountService.isLoggedIn() && accountService.isUserAdmin()) { | |||||
| return true; | |||||
| } | |||||
| inject(Router).navigate(['/account/login'], { queryParams: { returnUrl: state.url }}); | |||||
| return false; | |||||
| }; | |||||
| @@ -0,0 +1,17 @@ | |||||
| import { TestBed } from '@angular/core/testing'; | |||||
| import { CanActivateFn } from '@angular/router'; | |||||
| import { salesGuard } from './sales.guard'; | |||||
| describe('salesGuard', () => { | |||||
| const executeGuard: CanActivateFn = (...guardParameters) => | |||||
| TestBed.runInInjectionContext(() => salesGuard(...guardParameters)); | |||||
| beforeEach(() => { | |||||
| TestBed.configureTestingModule({}); | |||||
| }); | |||||
| it('should be created', () => { | |||||
| expect(executeGuard).toBeTruthy(); | |||||
| }); | |||||
| }); | |||||
| @@ -0,0 +1,13 @@ | |||||
| import {CanActivateFn, Router} from '@angular/router'; | |||||
| import {inject} from "@angular/core"; | |||||
| import {AccountService} from "@app/_services"; | |||||
| import {Role} from "@app/_helpers/role"; | |||||
| export const salesGuard: CanActivateFn = (route, state) => { | |||||
| const accountService = inject(AccountService); | |||||
| if (accountService.isLoggedIn() && accountService.userHasRole(Role.ROLE_ADMIN)) { | |||||
| return true; | |||||
| } | |||||
| inject(Router).navigate(['/account/login'], { queryParams: { returnUrl: state.url }}); | |||||
| return false; | |||||
| }; | |||||
| @@ -0,0 +1,17 @@ | |||||
| import { TestBed } from '@angular/core/testing'; | |||||
| import { CanActivateFn } from '@angular/router'; | |||||
| import { userGuard } from './user.guard'; | |||||
| describe('userGuardGuard', () => { | |||||
| const executeGuard: CanActivateFn = (...guardParameters) => | |||||
| TestBed.runInInjectionContext(() => userGuard(...guardParameters)); | |||||
| beforeEach(() => { | |||||
| TestBed.configureTestingModule({}); | |||||
| }); | |||||
| it('should be created', () => { | |||||
| expect(executeGuard).toBeTruthy(); | |||||
| }); | |||||
| }); | |||||
| @@ -0,0 +1,13 @@ | |||||
| import {CanActivateFn, Router} from '@angular/router'; | |||||
| import {inject} from "@angular/core"; | |||||
| import {AccountService} from "@app/_services"; | |||||
| import {Role} from "@app/_helpers/role"; | |||||
| export const userGuard: CanActivateFn = (route, state) => { | |||||
| const accountService = inject(AccountService); | |||||
| if (accountService.isLoggedIn() && accountService.userHasRole(Role.ROLE_USER)) { | |||||
| return true; | |||||
| } | |||||
| inject(Router).navigate(['/account/login'], { queryParams: { returnUrl: state.url }}); | |||||
| return false; | |||||
| }; | |||||
| @@ -1,24 +0,0 @@ | |||||
| import { Injectable } from '@angular/core'; | |||||
| import { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router'; | |||||
| import { AccountService } from '@app/_services'; | |||||
| @Injectable({ providedIn: 'root' }) | |||||
| export class AuthGuard implements CanActivate { | |||||
| constructor( | |||||
| private router: Router, | |||||
| private accountService: AccountService | |||||
| ) {} | |||||
| canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) { | |||||
| const user = this.accountService.userValue; | |||||
| if (user) { | |||||
| // authorised so return true | |||||
| return true; | |||||
| } | |||||
| // not logged in so redirect to login page with the return url | |||||
| this.router.navigate(['/account/login'], { queryParams: { returnUrl: state.url }}); | |||||
| return false; | |||||
| } | |||||
| } | |||||
| @@ -1,3 +1,2 @@ | |||||
| export * from './auth.guard'; | |||||
| export * from './error.interceptor'; | |||||
| export * from './error.interceptor'; | |||||
| export * from './jwt.interceptor'; | export * from './jwt.interceptor'; | ||||
| @@ -0,0 +1,6 @@ | |||||
| export class Role { | |||||
| public static ROLE_ADMIN: string = 'ROLE_ADMIN'; | |||||
| public static ROLE_USER: string = 'ROLE_USER'; | |||||
| public static ROLE_SALES: string = 'ROLE_SALES'; | |||||
| } | |||||
| @@ -9,6 +9,7 @@ import { User } from '@app/_models'; | |||||
| @Injectable({ providedIn: 'root' }) | @Injectable({ providedIn: 'root' }) | ||||
| export class AccountService { | export class AccountService { | ||||
| private userSubject: BehaviorSubject<User | null>; | private userSubject: BehaviorSubject<User | null>; | ||||
| public user: Observable<User | null>; | public user: Observable<User | null>; | ||||
| @@ -41,6 +42,10 @@ export class AccountService { | |||||
| this.router.navigate(['/account/login']); | this.router.navigate(['/account/login']); | ||||
| } | } | ||||
| isLoggedIn() { | |||||
| return this.userValue !== null; | |||||
| } | |||||
| isUserAdmin(): boolean { | isUserAdmin(): boolean { | ||||
| if (this.userValue && this.userValue?.roles) { | if (this.userValue && this.userValue?.roles) { | ||||
| return this.userValue?.roles?.includes('ROLE_ADMIN'); | return this.userValue?.roles?.includes('ROLE_ADMIN'); | ||||
| @@ -48,6 +53,13 @@ export class AccountService { | |||||
| return false; | return false; | ||||
| } | } | ||||
| userHasRole(role: string): boolean { | |||||
| if (this.userValue && this.userValue?.roles) { | |||||
| return this.userValue?.roles?.includes(role); | |||||
| } | |||||
| return false; | |||||
| } | |||||
| register(user: User) { | register(user: User) { | ||||
| return this.http.post(`${environment.apiUrl}/users/register`, user); | return this.http.post(`${environment.apiUrl}/users/register`, user); | ||||
| } | } | ||||
| @@ -59,6 +59,6 @@ export class ContactListComponent implements OnInit, AfterViewInit { | |||||
| navigateToContactDetails(element: any) { | navigateToContactDetails(element: any) { | ||||
| const contact: ContactJsonld = element as ContactJsonld; | const contact: ContactJsonld = element as ContactJsonld; | ||||
| this.router.navigate(['/contacts', this.appHelperService.extractId(contact.id)]); | |||||
| this.router.navigate(['/contact', this.appHelperService.extractId(contact.id)]); | |||||
| } | } | ||||
| } | } | ||||
| @@ -32,7 +32,7 @@ | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| <app-toggle #togglePosts [headline]="'basic.posts' | translate"> | <app-toggle #togglePosts [headline]="'basic.posts' | translate"> | ||||
| <app-post-list *ngIf="contact" #postListComponent | |||||
| <app-post-list *ngIf="togglePosts.isOpened" #postListComponent | |||||
| [partner]="partner" | [partner]="partner" | ||||
| [contact]="contact" | [contact]="contact" | ||||
| ></app-post-list> | ></app-post-list> | ||||
| @@ -20,7 +20,7 @@ import {ToggleComponent} from "@app/_components/toggle/toggle.component"; | |||||
| styleUrl: './contacts-detail.component.scss' | styleUrl: './contacts-detail.component.scss' | ||||
| }) | }) | ||||
| export class ContactsDetailComponent implements OnInit, AfterViewInit { | export class ContactsDetailComponent implements OnInit, AfterViewInit { | ||||
| @ViewChild("togglePosts", { static: true }) togglePosts: ToggleComponent = new ToggleComponent(); | |||||
| @ViewChild("togglePosts", { static: true }) togglePosts!: ToggleComponent; | |||||
| @ViewChild("postListComponent", { static: false }) postsComponent!: PostListComponent; | @ViewChild("postListComponent", { static: false }) postsComponent!: PostListComponent; | ||||
| protected user: User | null; | protected user: User | null; | ||||
| @@ -36,21 +36,21 @@ | |||||
| <div class="container mb-5"> | <div class="container mb-5"> | ||||
| <div class="row pt-4 pb-4 d-flex"> | <div class="row pt-4 pb-4 d-flex"> | ||||
| <div class="col d-flex"> | <div class="col d-flex"> | ||||
| <a class="card" routerLink="/products" routerLinkActive="active"> | |||||
| <a class="card" routerLink="/product" routerLinkActive="active"> | |||||
| <div class="card-body position-relative bi bi-droplet-fill"> | <div class="card-body position-relative bi bi-droplet-fill"> | ||||
| <h3 class="position-absolute m-0">{{ 'basic.products' | translate }}</h3> | <h3 class="position-absolute m-0">{{ 'basic.products' | translate }}</h3> | ||||
| </div> | </div> | ||||
| </a> | </a> | ||||
| </div> | </div> | ||||
| <div class="col d-flex"> | <div class="col d-flex"> | ||||
| <a class="card" routerLink="/tasks" routerLinkActive="active"> | |||||
| <a class="card" routerLink="/task" routerLinkActive="active"> | |||||
| <div class="card-body position-relative bi bi-list-check"> | <div class="card-body position-relative bi bi-list-check"> | ||||
| <h3 class="position-absolute m-0">{{ 'basic.tasks' | translate }}</h3> | <h3 class="position-absolute m-0">{{ 'basic.tasks' | translate }}</h3> | ||||
| </div> | </div> | ||||
| </a> | </a> | ||||
| </div> | </div> | ||||
| <div class="col d-flex"> | <div class="col d-flex"> | ||||
| <a class="card" routerLink="/documents" routerLinkActive="active"> | |||||
| <a class="card" routerLink="/document" routerLinkActive="active"> | |||||
| <div class="card-body position-relative bi bi-journals"> | <div class="card-body position-relative bi bi-journals"> | ||||
| <h3 class="position-absolute m-0">{{ 'basic.documents' | translate }}</h3> | <h3 class="position-absolute m-0">{{ 'basic.documents' | translate }}</h3> | ||||
| </div> | </div> | ||||
| @@ -59,12 +59,4 @@ | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| <div class="container spt-container"> | |||||
| <app-toggle #toggleTasks [headline]="('user.my' | translate) + ' ' + ('basic.tasks' | translate)"> | |||||
| <app-task-list #taskListComponent | |||||
| [user]="user?.userResource"> | |||||
| </app-task-list> | |||||
| </app-toggle> | |||||
| </div> | |||||
| </div> | </div> | ||||
| @@ -12,9 +12,6 @@ import {TaskListComponent} from "@app/_views/tasks/task-list/task-list.component | |||||
| }) | }) | ||||
| export class HomeComponent implements OnInit, AfterViewInit { | export class HomeComponent implements OnInit, AfterViewInit { | ||||
| @ViewChild("toggleTasks", { static: true }) toggleTasks: ToggleComponent = new ToggleComponent(); | |||||
| @ViewChild("taskListComponent", { static: false }) taskListComponent!: TaskListComponent; | |||||
| protected user: User | null; | protected user: User | null; | ||||
| constructor( | constructor( | ||||
| @@ -3,7 +3,14 @@ import {PagingComponent} from "@app/_components/paging/paging.component"; | |||||
| import {AppHelperService} from "@app/_helpers/app-helper.service"; | import {AppHelperService} from "@app/_helpers/app-helper.service"; | ||||
| import {MatSort, Sort} from "@angular/material/sort"; | import {MatSort, Sort} from "@angular/material/sort"; | ||||
| import {Subscription} from "rxjs"; | import {Subscription} from "rxjs"; | ||||
| import {PartnerJsonld, PartnerService} from "@app/core/api/v1"; | |||||
| import { | |||||
| PartnerFollowService, | |||||
| PartnerJsonld, | |||||
| PartnerProductService, | |||||
| PartnerService, | |||||
| ProductJsonld, | |||||
| UserJsonld | |||||
| } from "@app/core/api/v1"; | |||||
| import {OrderFilter} from "@app/_models/orderFilter"; | import {OrderFilter} from "@app/_models/orderFilter"; | ||||
| import {ActivatedRoute, Router} from "@angular/router"; | import {ActivatedRoute, Router} from "@angular/router"; | ||||
| import {NgbModal} from "@ng-bootstrap/ng-bootstrap"; | import {NgbModal} from "@ng-bootstrap/ng-bootstrap"; | ||||
| @@ -20,6 +27,8 @@ import TypeEnum = PartnerJsonld.PartnerTypeEnum; | |||||
| }) | }) | ||||
| export class PartnerListComponent implements OnInit, AfterViewInit { | export class PartnerListComponent implements OnInit, AfterViewInit { | ||||
| @Input() public user!: UserJsonld; | |||||
| @Input() public product!: ProductJsonld; | |||||
| @Input("partnerType") partnerType!: string; | @Input("partnerType") partnerType!: string; | ||||
| @ViewChild(MatSort) sort; | @ViewChild(MatSort) sort; | ||||
| @ViewChild("pagingComponent", { static: false }) pagingComponent!: PagingComponent; | @ViewChild("pagingComponent", { static: false }) pagingComponent!: PagingComponent; | ||||
| @@ -36,8 +45,9 @@ export class PartnerListComponent implements OnInit, AfterViewInit { | |||||
| protected displayedColumns!: string[]; | protected displayedColumns!: string[]; | ||||
| constructor( | constructor( | ||||
| private route: ActivatedRoute, | |||||
| private partnerService: PartnerService, | private partnerService: PartnerService, | ||||
| private partnerFollowService: PartnerFollowService, | |||||
| private partnerProductService: PartnerProductService, | |||||
| private router: Router, | private router: Router, | ||||
| private translateService: TranslateService, | private translateService: TranslateService, | ||||
| protected appHelperService: AppHelperService, | protected appHelperService: AppHelperService, | ||||
| @@ -68,6 +78,16 @@ export class PartnerListComponent implements OnInit, AfterViewInit { | |||||
| } | } | ||||
| getData = () => { | getData = () => { | ||||
| if (this.user !== undefined) { | |||||
| this.getUserPartnerData(); | |||||
| } else if (this.product !== undefined) { | |||||
| this.getPartnerProducts(); | |||||
| } else { | |||||
| this.getPartnerData(); | |||||
| } | |||||
| } | |||||
| getPartnerData = () => { | |||||
| this.partnersSub = this.partnerService.partnersGetCollection( | this.partnersSub = this.partnerService.partnersGetCollection( | ||||
| this.pagingComponent.getPageIndex(), | this.pagingComponent.getPageIndex(), | ||||
| this.pagingComponent.getPageSize(), | this.pagingComponent.getPageSize(), | ||||
| @@ -84,7 +104,51 @@ export class PartnerListComponent implements OnInit, AfterViewInit { | |||||
| this.pagingComponent.dataLength = Number(data["hydra:totalItems"]); | this.pagingComponent.dataLength = Number(data["hydra:totalItems"]); | ||||
| } | } | ||||
| ); | ); | ||||
| // switch over this.dataType (customers, etc.) | |||||
| } | |||||
| getUserPartnerData = () => { | |||||
| this.partnersSub = this.partnerFollowService.partnerFollowsGetCollection( | |||||
| this.pagingComponent.getPageIndex(), | |||||
| this.pagingComponent.getPageSize(), | |||||
| undefined, | |||||
| undefined, | |||||
| this.user.id, | |||||
| undefined, | |||||
| this.partnerType | |||||
| ).subscribe( | |||||
| data => { | |||||
| let partnerFollows = data["hydra:member"]; | |||||
| this.partners = []; | |||||
| partnerFollows.forEach(item => { | |||||
| this.partners.push(item.partner); | |||||
| }); | |||||
| this.dataSource = new MatTableDataSource<PartnerJsonld>(this.partners); | |||||
| this.pagingComponent.dataLength = Number(data["hydra:totalItems"]); | |||||
| } | |||||
| ); | |||||
| } | |||||
| getPartnerProducts = () => { | |||||
| this.partnersSub = this.partnerProductService.partnerProductsGetCollection( | |||||
| this.pagingComponent.getPageIndex(), | |||||
| this.pagingComponent.getPageSize(), | |||||
| undefined, | |||||
| undefined, | |||||
| this.product.id, | |||||
| undefined, | |||||
| undefined, | |||||
| this.partnerType | |||||
| ).subscribe( | |||||
| data => { | |||||
| let partnerProducts = data["hydra:member"]; | |||||
| this.partners = []; | |||||
| partnerProducts.forEach(item => { | |||||
| this.partners.push(item.partner); | |||||
| }); | |||||
| this.dataSource = new MatTableDataSource<PartnerJsonld>(this.partners); | |||||
| this.pagingComponent.dataLength = Number(data["hydra:totalItems"]); | |||||
| } | |||||
| ); | |||||
| } | } | ||||
| onSortChange = (sortState: Sort) => { | onSortChange = (sortState: Sort) => { | ||||
| @@ -45,30 +45,31 @@ | |||||
| <p [innerHTML]="appHelperService.getSafeLongtext(partner.description)"></p> | <p [innerHTML]="appHelperService.getSafeLongtext(partner.description)"></p> | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| <div class="card-body row" *ngIf="partnerProducts"> | |||||
| <div class="col-12"> | |||||
| <ul *ngFor="let partnerProduct of partnerProducts"> | |||||
| <li><a href="/products/{{this.appHelperService.extractId(partnerProduct.product)}}">{{partnerProduct.productName}}</a></li> | |||||
| </ul> | |||||
| </div> | |||||
| </div> | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| <app-toggle #toggleProducts [headline]="'basic.products' | translate"> | |||||
| <app-product-list *ngIf="toggleProducts.isOpened" #productListComponent | |||||
| [partner]="partner"> | |||||
| </app-product-list> | |||||
| </app-toggle> | |||||
| <app-toggle #toggleContacts [headline]="'basic.contacts' | translate"> | <app-toggle #toggleContacts [headline]="'basic.contacts' | translate"> | ||||
| <app-contact-list *ngIf="partner" #contactListComponent | |||||
| [partner]="partner"> | |||||
| <app-contact-list *ngIf="toggleContacts.isOpened" #contactListComponent | |||||
| [partner]="partner"> | |||||
| </app-contact-list> | </app-contact-list> | ||||
| </app-toggle> | </app-toggle> | ||||
| <app-toggle #toggleTasks [headline]="'basic.tasks' | translate"> | <app-toggle #toggleTasks [headline]="'basic.tasks' | translate"> | ||||
| <app-task-list *ngIf="partner" #taskListComponent | |||||
| [partner]="partner"> | |||||
| <app-task-list *ngIf="toggleTasks.isOpened" #taskListComponent | |||||
| [partner]="partner"> | |||||
| </app-task-list> | </app-task-list> | ||||
| </app-toggle> | </app-toggle> | ||||
| <app-toggle #togglePosts [headline]="'basic.posts' | translate"> | <app-toggle #togglePosts [headline]="'basic.posts' | translate"> | ||||
| <app-post-list *ngIf="partner" #postListComponent | |||||
| [partner]="partner" | |||||
| [existsContact]="false" | |||||
| [existsSale]="false"> | |||||
| <app-post-list *ngIf="togglePosts.isOpened" #postListComponent | |||||
| [partner]="partner" | |||||
| [existsContact]="false" | |||||
| [existsSale]="false" | |||||
| > | |||||
| </app-post-list> | </app-post-list> | ||||
| </app-toggle> | </app-toggle> | ||||
| @@ -1,10 +1,9 @@ | |||||
| import {AfterViewInit, Component, OnInit, ViewChild} from '@angular/core'; | import {AfterViewInit, Component, OnInit, ViewChild} from '@angular/core'; | ||||
| import {NgbModal, NgbModalOptions} from "@ng-bootstrap/ng-bootstrap"; | |||||
| import {ActivatedRoute, Router} from "@angular/router"; | |||||
| import {NgbModal} from "@ng-bootstrap/ng-bootstrap"; | |||||
| import {ActivatedRoute} from "@angular/router"; | |||||
| import { | import { | ||||
| PartnerFollowJsonld, PartnerFollowService, | PartnerFollowJsonld, PartnerFollowService, | ||||
| PartnerJsonld, PartnerProductJsonld, PartnerProductService, | |||||
| PartnerService | |||||
| PartnerJsonld, PartnerService | |||||
| } from "@app/core/api/v1"; | } from "@app/core/api/v1"; | ||||
| import {Subscription} from "rxjs"; | import {Subscription} from "rxjs"; | ||||
| import {environment} from "@environments/environment"; | import {environment} from "@environments/environment"; | ||||
| @@ -17,6 +16,8 @@ import {ToggleComponent} from "@app/_components/toggle/toggle.component"; | |||||
| import {PostListComponent} from "@app/_views/posts/post-list/post-list.component"; | import {PostListComponent} from "@app/_views/posts/post-list/post-list.component"; | ||||
| import {ContactListComponent} from "@app/_views/contacts/contact-list/contact-list.component"; | import {ContactListComponent} from "@app/_views/contacts/contact-list/contact-list.component"; | ||||
| import {TaskListComponent} from "@app/_views/tasks/task-list/task-list.component"; | import {TaskListComponent} from "@app/_views/tasks/task-list/task-list.component"; | ||||
| import {ProductListComponent} from "@app/_views/products/product-list/product-list.component"; | |||||
| import {NewTaskComponent} from "@app/_views/tasks/new-task/new-task.component"; | |||||
| @Component({ | @Component({ | ||||
| selector: 'app-partners-detail', | selector: 'app-partners-detail', | ||||
| @@ -24,11 +25,14 @@ import {TaskListComponent} from "@app/_views/tasks/task-list/task-list.component | |||||
| styleUrl: './partners-detail.component.scss' | styleUrl: './partners-detail.component.scss' | ||||
| }) | }) | ||||
| export class PartnersDetailComponent implements OnInit, AfterViewInit { | export class PartnersDetailComponent implements OnInit, AfterViewInit { | ||||
| @ViewChild("toggleContacts", { static: true }) toggleContacts: ToggleComponent = new ToggleComponent(); | |||||
| @ViewChild("toggleProducts", { static: true }) toggleProducts!: ToggleComponent; | |||||
| @ViewChild("productListComponent", { static: false }) productsComponent!: ProductListComponent; | |||||
| @ViewChild("toggleContacts", { static: true }) toggleContacts!: ToggleComponent; | |||||
| @ViewChild("contactListComponent", { static: false }) contactsComponent!: ContactListComponent; | @ViewChild("contactListComponent", { static: false }) contactsComponent!: ContactListComponent; | ||||
| @ViewChild("toggleTasks", { static: true }) toggleTasks: ToggleComponent = new ToggleComponent(); | |||||
| @ViewChild("toggleTasks", { static: true }) toggleTasks!: ToggleComponent; | |||||
| @ViewChild("taskListComponent", { static: false }) taskListComponent!: TaskListComponent; | @ViewChild("taskListComponent", { static: false }) taskListComponent!: TaskListComponent; | ||||
| @ViewChild("togglePosts", { static: true }) togglePosts: ToggleComponent = new ToggleComponent(); | |||||
| @ViewChild("togglePosts", { static: true }) togglePosts!: ToggleComponent; | |||||
| @ViewChild("postListComponent", { static: false }) postsComponent!: PostListComponent; | @ViewChild("postListComponent", { static: false }) postsComponent!: PostListComponent; | ||||
| protected user: User | null; | protected user: User | null; | ||||
| @@ -38,26 +42,19 @@ export class PartnersDetailComponent implements OnInit, AfterViewInit { | |||||
| protected partnerDetailSub: Subscription; | protected partnerDetailSub: Subscription; | ||||
| protected partner!: PartnerJsonld; | protected partner!: PartnerJsonld; | ||||
| protected partnerProductSub: Subscription; | |||||
| protected partnerProducts: Array<PartnerProductJsonld>; | |||||
| protected partnerFollowSub: Subscription; | protected partnerFollowSub: Subscription; | ||||
| protected partnerFollow: PartnerFollowJsonld | null; | protected partnerFollow: PartnerFollowJsonld | null; | ||||
| constructor( | constructor( | ||||
| private router: Router, | |||||
| private accountService: AccountService, | private accountService: AccountService, | ||||
| private modalService: NgbModal, | private modalService: NgbModal, | ||||
| private route: ActivatedRoute, | private route: ActivatedRoute, | ||||
| private partnerService: PartnerService, | private partnerService: PartnerService, | ||||
| private partnerProductService: PartnerProductService, | |||||
| private partnerFollowService: PartnerFollowService, | private partnerFollowService: PartnerFollowService, | ||||
| protected appHelperService: AppHelperService | protected appHelperService: AppHelperService | ||||
| ) { | ) { | ||||
| this.partnerDetailSub = new Subscription(); | this.partnerDetailSub = new Subscription(); | ||||
| this.partnerProductSub = new Subscription(); | |||||
| this.partnerProducts = []; | |||||
| this.partnerFollowSub = new Subscription(); | this.partnerFollowSub = new Subscription(); | ||||
| this.partnerFollow = null; | this.partnerFollow = null; | ||||
| @@ -68,47 +65,28 @@ export class PartnersDetailComponent implements OnInit, AfterViewInit { | |||||
| this.route.params.subscribe(params => { | this.route.params.subscribe(params => { | ||||
| this.partnerId = params['id']; | this.partnerId = params['id']; | ||||
| }); | }); | ||||
| this.getPartnerData(); | |||||
| this.getPartnerProducts(); | |||||
| this.getPartnerFollowedStatus(); | |||||
| this.getData(); | |||||
| } | } | ||||
| ngAfterViewInit() { | ngAfterViewInit() { | ||||
| } | } | ||||
| getPartnerData() { | |||||
| this.partnerDetailSub = this.partnerService.partnersIdGet( | |||||
| this.partnerId | |||||
| ).subscribe( | |||||
| data => { | |||||
| this.partner = data; | |||||
| } | |||||
| ); | |||||
| getData = () => { | |||||
| this.getPartnerData(); | |||||
| this.getPartnerFollowedStatus(); | |||||
| } | } | ||||
| getPartnerProducts() { | |||||
| this.partnerProductSub = this.partnerProductService.partnerProductsGetCollection( | |||||
| 1, | |||||
| 50, | |||||
| getPartnerData = () => { | |||||
| this.partnerDetailSub = this.partnerService.partnersIdGet( | |||||
| this.partnerId | this.partnerId | ||||
| ).subscribe( | ).subscribe( | ||||
| data => { | data => { | ||||
| this.partnerProducts = data["hydra:member"]; | |||||
| this.partner = data; | |||||
| } | } | ||||
| ); | ); | ||||
| } | } | ||||
| openModalEditPartner() { | |||||
| const modalRef = this.modalService.open(NewPartnerComponent, this.appHelperService.getModalOptions()); | |||||
| modalRef.componentInstance.partner = this.partner; | |||||
| modalRef.componentInstance.submit.subscribe((modalStatus: ModalStatus) => { | |||||
| if (modalStatus === ModalStatus.Submitted) { | |||||
| modalRef.dismiss(); | |||||
| this.getPartnerData(); | |||||
| } | |||||
| }); | |||||
| } | |||||
| getPartnerFollowedStatus() { | getPartnerFollowedStatus() { | ||||
| this.partnerFollowSub = this.partnerFollowService.partnerFollowsGetCollection( | this.partnerFollowSub = this.partnerFollowService.partnerFollowsGetCollection( | ||||
| 1, | 1, | ||||
| @@ -130,7 +108,7 @@ export class PartnersDetailComponent implements OnInit, AfterViewInit { | |||||
| if (this.partnerFollow === null) { | if (this.partnerFollow === null) { | ||||
| this.partnerFollowSub = this.partnerFollowService.partnerFollowsPost( | this.partnerFollowSub = this.partnerFollowService.partnerFollowsPost( | ||||
| { | { | ||||
| partner: this.partner.id, | |||||
| partner: this.partner, | |||||
| contact: null, | contact: null, | ||||
| partnerProduct: null | partnerProduct: null | ||||
| } as PartnerFollowJsonld | } as PartnerFollowJsonld | ||||
| @@ -149,4 +127,8 @@ export class PartnersDetailComponent implements OnInit, AfterViewInit { | |||||
| ); | ); | ||||
| } | } | ||||
| } | } | ||||
| openModalEditPartner() { | |||||
| this.appHelperService.openModal(NewPartnerComponent, { 'partner': this.partner }, this.getData); | |||||
| } | |||||
| } | } | ||||
| @@ -9,6 +9,8 @@ | |||||
| <div class="card"> | <div class="card"> | ||||
| <div class="card-body"> | <div class="card-body"> | ||||
| <div class="d-flex justify-content-between align-items-center"> | <div class="d-flex justify-content-between align-items-center"> | ||||
| <h3 class="m-0"><a href="/{{post.partnerType}}/{{this.appHelperService.extractId(post.partner)}}">{{post.partnerName}}</a></h3> | |||||
| <h3 class="m-0" *ngIf="post.contact"><a href="/contact/{{this.appHelperService.extractId(post.contact)}}">{{contact.firstName}} {{contact.lastName}}</a></h3> | |||||
| <p>{{ post.createdAt | date:'dd.MM.YYYY' }}</p> | <p>{{ post.createdAt | date:'dd.MM.YYYY' }}</p> | ||||
| <p>{{ post.ownerName }}</p> | <p>{{ post.ownerName }}</p> | ||||
| </div> | </div> | ||||
| @@ -38,13 +38,9 @@ export class PostListComponent implements OnInit, AfterViewInit { | |||||
| protected partnerProducts: Array<PartnerProductJsonld>; | protected partnerProducts: Array<PartnerProductJsonld>; | ||||
| protected dataSource; | protected dataSource; | ||||
| protected commentsVisibility: Map<string, boolean>; | protected commentsVisibility: Map<string, boolean>; | ||||
| protected modalOptions: NgbModalOptions = { | |||||
| centered: true | |||||
| }; | |||||
| constructor( | constructor( | ||||
| private postService: PostService, | private postService: PostService, | ||||
| private modalService: NgbModal, | |||||
| protected appHelperService: AppHelperService | protected appHelperService: AppHelperService | ||||
| ) { | ) { | ||||
| this.postsSub = new Subscription(); | this.postsSub = new Subscription(); | ||||
| @@ -1,8 +1,15 @@ | |||||
| import {AfterViewInit, Component, OnInit, ViewChild} from '@angular/core'; | |||||
| import {AfterViewInit, Component, Input, OnInit, ViewChild} from '@angular/core'; | |||||
| import {MatSort, Sort} from "@angular/material/sort"; | import {MatSort, Sort} from "@angular/material/sort"; | ||||
| import {PagingComponent} from "@app/_components/paging/paging.component"; | import {PagingComponent} from "@app/_components/paging/paging.component"; | ||||
| import {Subscription} from "rxjs"; | import {Subscription} from "rxjs"; | ||||
| import {ProductJsonld, ProductService} from "@app/core/api/v1"; | |||||
| import { | |||||
| PartnerJsonld, | |||||
| PartnerProductService, | |||||
| ProductJsonld, | |||||
| ProductService, | |||||
| UserJsonld, | |||||
| UserProductService | |||||
| } from "@app/core/api/v1"; | |||||
| import {Router} from "@angular/router"; | import {Router} from "@angular/router"; | ||||
| import {AppHelperService} from "@app/_helpers/app-helper.service"; | import {AppHelperService} from "@app/_helpers/app-helper.service"; | ||||
| import {MatTableDataSource} from "@angular/material/table"; | import {MatTableDataSource} from "@angular/material/table"; | ||||
| @@ -16,6 +23,8 @@ import {NewProductComponent} from "@app/_views/products/new-product/new-product. | |||||
| }) | }) | ||||
| export class ProductListComponent implements OnInit, AfterViewInit { | export class ProductListComponent implements OnInit, AfterViewInit { | ||||
| @Input() public user!: UserJsonld; | |||||
| @Input() public partner!: PartnerJsonld; | |||||
| @ViewChild(MatSort) sort; | @ViewChild(MatSort) sort; | ||||
| @ViewChild("pagingComponent", { static: false }) pagingComponent!: PagingComponent; | @ViewChild("pagingComponent", { static: false }) pagingComponent!: PagingComponent; | ||||
| @@ -28,6 +37,8 @@ export class ProductListComponent implements OnInit, AfterViewInit { | |||||
| constructor( | constructor( | ||||
| private router: Router, | private router: Router, | ||||
| private productService: ProductService, | private productService: ProductService, | ||||
| private userProductService: UserProductService, | |||||
| private partnerProductService: PartnerProductService, | |||||
| protected appHelperService: AppHelperService, | protected appHelperService: AppHelperService, | ||||
| ) { | ) { | ||||
| this.sort = new MatSort(); | this.sort = new MatSort(); | ||||
| @@ -48,14 +59,62 @@ export class ProductListComponent implements OnInit, AfterViewInit { | |||||
| } | } | ||||
| getData = () => { | getData = () => { | ||||
| if (this.user !== undefined) { | |||||
| this.getUserProducts(); | |||||
| } else if (this.partner !== undefined) { | |||||
| this.getPartnerProducts(); | |||||
| } else { | |||||
| this.getProducts(); | |||||
| } | |||||
| } | |||||
| getUserProducts = () => { | |||||
| this.productsSub = this.userProductService.userProductsGetCollection( | |||||
| this.pagingComponent.getPageIndex(), | |||||
| this.pagingComponent.getPageSize(), | |||||
| this.user.id, | |||||
| ).subscribe( | |||||
| data => { | |||||
| let userProducts = data["hydra:member"]; | |||||
| this.products = []; | |||||
| userProducts.forEach(item => { | |||||
| this.products.push(item.product); | |||||
| }) | |||||
| this.pagingComponent.dataLength = Number(data["hydra:totalItems"]); | |||||
| this.dataSource = new MatTableDataSource<ProductJsonld>(this.products); | |||||
| } | |||||
| ); | |||||
| } | |||||
| getPartnerProducts = () => { | |||||
| this.productsSub = this.partnerProductService.partnerProductsGetCollection( | |||||
| this.pagingComponent.getPageIndex(), | |||||
| this.pagingComponent.getPageSize(), | |||||
| this.partner.id, | |||||
| ).subscribe( | |||||
| data => { | |||||
| console.log(data); | |||||
| let partnerProducts = data["hydra:member"]; | |||||
| this.products = []; | |||||
| partnerProducts.forEach(item => { | |||||
| this.products.push(item.product); | |||||
| }) | |||||
| console.log(this.products); | |||||
| this.pagingComponent.dataLength = Number(data["hydra:totalItems"]); | |||||
| this.dataSource = new MatTableDataSource<ProductJsonld>(this.products); | |||||
| } | |||||
| ); | |||||
| } | |||||
| getProducts = () => { | |||||
| this.productsSub = this.productService.productsGetCollection( | this.productsSub = this.productService.productsGetCollection( | ||||
| this.pagingComponent.getPageIndex(), | this.pagingComponent.getPageIndex(), | ||||
| this.pagingComponent.getPageSize() | this.pagingComponent.getPageSize() | ||||
| ).subscribe( | ).subscribe( | ||||
| data => { | data => { | ||||
| this.products = data["hydra:member"]; | this.products = data["hydra:member"]; | ||||
| this.dataSource = new MatTableDataSource<ProductJsonld>(this.products); | |||||
| this.pagingComponent.dataLength = Number(data["hydra:totalItems"]); | this.pagingComponent.dataLength = Number(data["hydra:totalItems"]); | ||||
| this.dataSource = new MatTableDataSource<ProductJsonld>(this.products); | |||||
| } | } | ||||
| ); | ); | ||||
| } | } | ||||
| @@ -74,7 +133,7 @@ export class ProductListComponent implements OnInit, AfterViewInit { | |||||
| navigateToProductDetails(element: any) { | navigateToProductDetails(element: any) { | ||||
| const product: ProductJsonld = element as ProductJsonld; | const product: ProductJsonld = element as ProductJsonld; | ||||
| this.router.navigate(['/products', this.appHelperService.extractId(product.id)]); | |||||
| this.router.navigate(['/product', this.appHelperService.extractId(product.id)]); | |||||
| } | } | ||||
| openModalNewProduct() { | openModalNewProduct() { | ||||
| @@ -33,4 +33,27 @@ | |||||
| (click)="openModalEditProduct()"></span> | (click)="openModalEditProduct()"></span> | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| </div> | |||||
| </div> | |||||
| <app-toggle #toggleCustomers [headline]="'basic.customer' | translate"> | |||||
| <app-partner-list *ngIf="toggleCustomers.isOpened" #customerListComponent | |||||
| [product]="product" | |||||
| [partnerType]="'customer'" | |||||
| > | |||||
| </app-partner-list> | |||||
| </app-toggle> | |||||
| <app-toggle #toggleSuppliers [headline]="'basic.supplier' | translate"> | |||||
| <app-partner-list *ngIf="toggleSuppliers.isOpened" #suppliersListComponent | |||||
| [product]="product" | |||||
| [partnerType]="'supplier'" | |||||
| > | |||||
| </app-partner-list> | |||||
| </app-toggle> | |||||
| <app-toggle #toggleServices [headline]="'basic.service' | translate"> | |||||
| <app-partner-list *ngIf="toggleServices.isOpened" #servicesListComponent | |||||
| [product]="product" | |||||
| [partnerType]="'service'" | |||||
| > | |||||
| </app-partner-list> | |||||
| </app-toggle> | |||||
| @@ -1,7 +1,7 @@ | |||||
| import {AfterViewInit, Component, OnInit} from '@angular/core'; | |||||
| import {AfterViewInit, Component, OnInit, ViewChild} from '@angular/core'; | |||||
| import {environment} from "@environments/environment"; | import {environment} from "@environments/environment"; | ||||
| import {ActivatedRoute} from "@angular/router"; | import {ActivatedRoute} from "@angular/router"; | ||||
| import {Subscription} from "rxjs"; | |||||
| import {Subscription, switchMap} from "rxjs"; | |||||
| import { | import { | ||||
| ProductJsonld, | ProductJsonld, | ||||
| ProductService, | ProductService, | ||||
| @@ -14,6 +14,9 @@ import {NewProductComponent} from "@app/_views/products/new-product/new-product. | |||||
| import {User} from "@app/_models"; | import {User} from "@app/_models"; | ||||
| import {AccountService} from "@app/_services"; | import {AccountService} from "@app/_services"; | ||||
| import {AppHelperService} from "@app/_helpers/app-helper.service"; | import {AppHelperService} from "@app/_helpers/app-helper.service"; | ||||
| import {NewSaleComponent} from "@app/_views/sales/new-sale/new-sale.component"; | |||||
| import {ToggleComponent} from "@app/_components/toggle/toggle.component"; | |||||
| import {PartnerListComponent} from "@app/_views/partners/partner-list/partner-list.component"; | |||||
| @Component({ | @Component({ | ||||
| selector: 'app-products-detail', | selector: 'app-products-detail', | ||||
| @@ -21,28 +24,31 @@ import {AppHelperService} from "@app/_helpers/app-helper.service"; | |||||
| styleUrl: './products-detail.component.scss' | styleUrl: './products-detail.component.scss' | ||||
| }) | }) | ||||
| export class ProductsDetailComponent implements OnInit, AfterViewInit { | export class ProductsDetailComponent implements OnInit, AfterViewInit { | ||||
| @ViewChild("toggleCustomers", { static: true }) toggleCustomers!: ToggleComponent; | |||||
| @ViewChild("customerListComponent", { static: false }) customerListComponent!: PartnerListComponent; | |||||
| @ViewChild("toggleSuppliers", { static: true }) toggleSuppliers!: ToggleComponent; | |||||
| @ViewChild("suppliersListComponent", { static: false }) suppliersListComponent!: PartnerListComponent; | |||||
| @ViewChild("toggleServices", { static: true }) toggleServices!: ToggleComponent; | |||||
| @ViewChild("servicesListComponent", { static: false }) servicesListComponent!: PartnerListComponent; | |||||
| protected readonly environment = environment; | protected readonly environment = environment; | ||||
| protected id: string; | |||||
| protected productId: string; | |||||
| protected productDetailSub: Subscription; | protected productDetailSub: Subscription; | ||||
| protected product: ProductJsonld; | protected product: ProductJsonld; | ||||
| protected userProductSub: Subscription; | protected userProductSub: Subscription; | ||||
| protected userProduct: UserProductJsonld | null; | protected userProduct: UserProductJsonld | null; | ||||
| protected user: User | null; | protected user: User | null; | ||||
| protected modalOptions: NgbModalOptions = { | |||||
| centered: true | |||||
| }; | |||||
| constructor( | constructor( | ||||
| private route: ActivatedRoute, | private route: ActivatedRoute, | ||||
| private accountService: AccountService, | private accountService: AccountService, | ||||
| private productService: ProductService, | private productService: ProductService, | ||||
| private userProductService: UserProductService, | private userProductService: UserProductService, | ||||
| private modalService: NgbModal, | |||||
| protected appHelperService: AppHelperService, | protected appHelperService: AppHelperService, | ||||
| ) { | ) { | ||||
| this.id = ""; | |||||
| this.productId = ""; | |||||
| this.user = this.accountService.userValue; | this.user = this.accountService.userValue; | ||||
| this.productDetailSub = new Subscription(); | this.productDetailSub = new Subscription(); | ||||
| this.product = {} as ProductJsonld; | this.product = {} as ProductJsonld; | ||||
| @@ -53,10 +59,9 @@ export class ProductsDetailComponent implements OnInit, AfterViewInit { | |||||
| ngOnInit() { | ngOnInit() { | ||||
| this.route.params.subscribe(params => { | this.route.params.subscribe(params => { | ||||
| this.id = params['id']; | |||||
| this.productId = params['id']; | |||||
| }); | }); | ||||
| this.getProductData(); | |||||
| this.getUserProductStatus(); | |||||
| this.getData(); | |||||
| } | } | ||||
| @@ -64,31 +69,28 @@ export class ProductsDetailComponent implements OnInit, AfterViewInit { | |||||
| } | } | ||||
| getProductData() { | |||||
| getData = () => { | |||||
| this.productDetailSub = this.productService.productsIdGet( | this.productDetailSub = this.productService.productsIdGet( | ||||
| this.id | |||||
| ).subscribe( | |||||
| data => { | |||||
| this.productId | |||||
| ).pipe( | |||||
| switchMap(data => { | |||||
| this.product = data; | this.product = data; | ||||
| } | |||||
| ); | |||||
| } | |||||
| getUserProductStatus() { | |||||
| this.userProductSub = this.userProductService.userProductsGetCollection( | |||||
| 1, | |||||
| 50, | |||||
| this.user?.id, | |||||
| undefined, | |||||
| this.product.id | |||||
| return this.userProductService.userProductsGetCollection( | |||||
| 1, | |||||
| 50, | |||||
| this.user?.id, | |||||
| undefined, | |||||
| this.product.id | |||||
| ); | |||||
| }) | |||||
| ).subscribe( | ).subscribe( | ||||
| data => { | |||||
| let userProduct = data["hydra:member"]; | |||||
| userProductData => { | |||||
| let userProduct = userProductData["hydra:member"]; | |||||
| if (userProduct.length > 0) { | if (userProduct.length > 0) { | ||||
| this.userProduct = userProduct[0]; | this.userProduct = userProduct[0]; | ||||
| } | } | ||||
| } | } | ||||
| ) | |||||
| ); | |||||
| } | } | ||||
| followProduct(event: any) { | followProduct(event: any) { | ||||
| @@ -96,7 +98,7 @@ export class ProductsDetailComponent implements OnInit, AfterViewInit { | |||||
| this.userProductSub = this.userProductService.userProductsPost( | this.userProductSub = this.userProductService.userProductsPost( | ||||
| { | { | ||||
| user: this.user?.id, | user: this.user?.id, | ||||
| product: this.product.id, | |||||
| product: this.product, | |||||
| } as UserProductJsonld | } as UserProductJsonld | ||||
| ).subscribe( | ).subscribe( | ||||
| data => { | data => { | ||||
| @@ -104,7 +106,7 @@ export class ProductsDetailComponent implements OnInit, AfterViewInit { | |||||
| } | } | ||||
| ); | ); | ||||
| } else { | } else { | ||||
| this.userProductSub = this.userProductService.userProductsIdDelete( | |||||
| this.userProductSub = this.userProductService.userProductsIdDelete( | |||||
| this.appHelperService.extractId(this.userProduct.id) | this.appHelperService.extractId(this.userProduct.id) | ||||
| ).subscribe( | ).subscribe( | ||||
| data => { | data => { | ||||
| @@ -115,13 +117,6 @@ export class ProductsDetailComponent implements OnInit, AfterViewInit { | |||||
| } | } | ||||
| openModalEditProduct() { | openModalEditProduct() { | ||||
| const modalRefProduct = this.modalService.open(NewProductComponent, this.appHelperService.getModalOptions()); | |||||
| modalRefProduct.componentInstance.product = this.product; | |||||
| modalRefProduct.componentInstance.submit.subscribe((modalStatus: ModalStatus) => { | |||||
| if (modalStatus === ModalStatus.Submitted) { | |||||
| modalRefProduct.dismiss(); | |||||
| this.getProductData(); | |||||
| } | |||||
| }); | |||||
| this.appHelperService.openModal(NewProductComponent, { 'product': this.product }, this.getData); | |||||
| } | } | ||||
| } | } | ||||
| @@ -1,15 +1,3 @@ | |||||
| <app-user | |||||
| <app-user-detail | |||||
| [user]="user" | [user]="user" | ||||
| ></app-user> | |||||
| <app-toggle #toggleTasks [headline]="('user.my' | translate) + ' ' + ('basic.tasks' | translate)"> | |||||
| <app-task-list #taskListComponent | |||||
| [user]="user"> | |||||
| </app-task-list> | |||||
| </app-toggle> | |||||
| <app-toggle #toggleSales [headline]="('user.my' | translate) + ' ' + ('basic.sales' | translate)"> | |||||
| <app-sale-list #saleListComponent | |||||
| [user]="user"> | |||||
| </app-sale-list> | |||||
| </app-toggle> | |||||
| ></app-user-detail> | |||||
| @@ -1,15 +1,7 @@ | |||||
| import {AfterViewInit, Component, OnInit, ViewChild} from '@angular/core'; | import {AfterViewInit, Component, OnInit, ViewChild} from '@angular/core'; | ||||
| import {User} from "@app/_models"; | |||||
| import {Router} from "@angular/router"; | |||||
| import {AccountService} from "@app/_services"; | import {AccountService} from "@app/_services"; | ||||
| import {Subscription} from "rxjs"; | |||||
| import {PartnerJsonld, UserJsonld, UserService} from "@app/core/api/v1"; | |||||
| import {AppHelperService} from "@app/_helpers/app-helper.service"; | |||||
| import {PagingComponent} from "@app/_components/paging/paging.component"; | |||||
| import {UserComponent} from "@app/_views/user/user/user.component"; | |||||
| import {ToggleComponent} from "@app/_components/toggle/toggle.component"; | |||||
| import {TaskListComponent} from "@app/_views/tasks/task-list/task-list.component"; | |||||
| import {SaleListComponent} from "@app/_views/sales/sale-list/sale-list.component"; | |||||
| import {UserJsonld} from "@app/core/api/v1"; | |||||
| import {UserDetailComponent} from "@app/_views/user/user-detail/user-detail.component"; | |||||
| @Component({ | @Component({ | ||||
| selector: 'app-profile', | selector: 'app-profile', | ||||
| @@ -18,11 +10,7 @@ import {SaleListComponent} from "@app/_views/sales/sale-list/sale-list.component | |||||
| }) | }) | ||||
| export class ProfileComponent implements OnInit, AfterViewInit { | export class ProfileComponent implements OnInit, AfterViewInit { | ||||
| @ViewChild("userComponent", { static: false }) userComponent!: UserComponent; | |||||
| @ViewChild("toggleTasks", { static: true }) toggleTasks: ToggleComponent = new ToggleComponent(); | |||||
| @ViewChild("taskListComponent", { static: false }) taskListComponent!: TaskListComponent; | |||||
| @ViewChild("toggleSales", { static: true }) toggleSales: ToggleComponent = new ToggleComponent(); | |||||
| @ViewChild("saleListComponent", { static: false }) saleListComponent!: SaleListComponent; | |||||
| @ViewChild("userDetailComponent", { static: false }) userDetailComponent!: UserDetailComponent; | |||||
| protected user!: UserJsonld; | protected user!: UserJsonld; | ||||
| @@ -32,7 +20,6 @@ export class ProfileComponent implements OnInit, AfterViewInit { | |||||
| if (this.accountService.userValue?.userResource) { | if (this.accountService.userValue?.userResource) { | ||||
| this.user = this.accountService.userValue?.userResource; | this.user = this.accountService.userValue?.userResource; | ||||
| } | } | ||||
| } | } | ||||
| ngOnInit() { | ngOnInit() { | ||||
| @@ -83,7 +83,7 @@ export class SaleListComponent implements OnInit, AfterViewInit { | |||||
| navigateToSaleDetails(element: any) { | navigateToSaleDetails(element: any) { | ||||
| const sale: SaleJsonld = element as SaleJsonld; | const sale: SaleJsonld = element as SaleJsonld; | ||||
| this.router.navigate(['/sales', this.appHelperService.extractId(sale.id)]); | |||||
| this.router.navigate(['/sale', this.appHelperService.extractId(sale.id)]); | |||||
| } | } | ||||
| openModalNewSale() { | openModalNewSale() { | ||||
| @@ -1,6 +1,7 @@ | |||||
| import {AfterViewInit, Component, Input, OnInit} from '@angular/core'; | import {AfterViewInit, Component, Input, OnInit} from '@angular/core'; | ||||
| import {Subscription} from "rxjs"; | import {Subscription} from "rxjs"; | ||||
| import {SaleSummaryJsonld, SaleSummaryService, UserJsonld} from "@app/core/api/v1"; | import {SaleSummaryJsonld, SaleSummaryService, UserJsonld} from "@app/core/api/v1"; | ||||
| import {AppHelperService} from "@app/_helpers/app-helper.service"; | |||||
| @Component({ | @Component({ | ||||
| selector: 'app-sale-summary', | selector: 'app-sale-summary', | ||||
| @@ -19,6 +20,7 @@ export class SaleSummaryComponent implements OnInit, AfterViewInit { | |||||
| constructor( | constructor( | ||||
| private saleSummaryService: SaleSummaryService, | private saleSummaryService: SaleSummaryService, | ||||
| protected appHelperService: AppHelperService, | |||||
| ) { | ) { | ||||
| this.salesSummarySub = new Subscription(); | this.salesSummarySub = new Subscription(); | ||||
| this.saleSummaries = []; | this.saleSummaries = []; | ||||
| @@ -32,20 +34,32 @@ export class SaleSummaryComponent implements OnInit, AfterViewInit { | |||||
| ngAfterViewInit(): void { | ngAfterViewInit(): void { | ||||
| } | } | ||||
| getData() { | getData() { | ||||
| this.salesSummarySub = this.saleSummaryService.saleSummariesGetCollection( | |||||
| 1, | |||||
| 50 | |||||
| ).subscribe( | |||||
| data => { | |||||
| this.saleSummaries = data["hydra:member"]; | |||||
| if (this.saleSummaries.length > 0) { | |||||
| this.saleSummaryMaxTurnover = Number(this.saleSummaries[0].turnover); | |||||
| if (this.user !== undefined) { | |||||
| console.log(this.user); | |||||
| this.salesSummarySub = this.saleSummaryService.saleSummariesUserIdGet( | |||||
| String(this.user?.id) | |||||
| ).subscribe( | |||||
| data => { | |||||
| this.saleSummaries = [data]; | |||||
| if (this.saleSummaries.length > 0) { | |||||
| this.saleSummaryMaxTurnover = Number(this.saleSummaries[0].turnover); | |||||
| } | |||||
| } | } | ||||
| } | |||||
| ) | |||||
| ) | |||||
| } else { | |||||
| this.salesSummarySub = this.saleSummaryService.saleSummariesGetCollection( | |||||
| 1, | |||||
| 50 | |||||
| ).subscribe( | |||||
| data => { | |||||
| this.saleSummaries = data["hydra:member"]; | |||||
| if (this.saleSummaries.length > 0) { | |||||
| this.saleSummaryMaxTurnover = Number(this.saleSummaries[0].turnover); | |||||
| } | |||||
| } | |||||
| ) | |||||
| } | |||||
| } | } | ||||
| calculateWidthPercentage(turnover: number, maxTurnOver: number): number { | calculateWidthPercentage(turnover: number, maxTurnOver: number): number { | ||||
| @@ -24,7 +24,7 @@ | |||||
| </div> | </div> | ||||
| <app-toggle #togglePosts [headline]="'basic.posts' | translate"> | <app-toggle #togglePosts [headline]="'basic.posts' | translate"> | ||||
| <div class="spt-container"> | |||||
| <div *ngIf="togglePosts.isOpened" class="spt-container"> | |||||
| <div class="posts position-relative"> | <div class="posts position-relative"> | ||||
| <button class="btn btn-primary toggle-btn" (click)="openModalNewPosting()">{{'basic.new-post' | translate}}</button> | <button class="btn btn-primary toggle-btn" (click)="openModalNewPosting()">{{'basic.new-post' | translate}}</button> | ||||
| <app-paging #pagingComponent | <app-paging #pagingComponent | ||||
| @@ -12,6 +12,7 @@ import {NewSaleComponent} from "@app/_views/sales/new-sale/new-sale.component"; | |||||
| import {ActivatedRoute} from "@angular/router"; | import {ActivatedRoute} from "@angular/router"; | ||||
| import {AppHelperService} from "@app/_helpers/app-helper.service"; | import {AppHelperService} from "@app/_helpers/app-helper.service"; | ||||
| import {PagingComponent} from "@app/_components/paging/paging.component"; | import {PagingComponent} from "@app/_components/paging/paging.component"; | ||||
| import {NewTaskComponent} from "@app/_views/tasks/new-task/new-task.component"; | |||||
| @Component({ | @Component({ | ||||
| selector: 'app-sales-detail', | selector: 'app-sales-detail', | ||||
| @@ -105,64 +106,29 @@ export class SalesDetailComponent implements OnInit, AfterViewInit { | |||||
| } | } | ||||
| openModalNewPosting() { | openModalNewPosting() { | ||||
| const modalRefPosting = this.modalService.open(NewPostComponent, this.appHelperService.getModalOptions()); | |||||
| let posting: PostJsonld = {} as PostJsonld; | let posting: PostJsonld = {} as PostJsonld; | ||||
| posting.sale = this.sale.id ?? null; | posting.sale = this.sale.id ?? null; | ||||
| posting.partner = this.sale.partner ?? null; | posting.partner = this.sale.partner ?? null; | ||||
| posting.product = this.sale.product ?? null; | posting.product = this.sale.product ?? null; | ||||
| modalRefPosting.componentInstance.posting = posting; | |||||
| modalRefPosting.componentInstance.submit.subscribe((modalStatus: ModalStatus) => { | |||||
| if (modalStatus === ModalStatus.Submitted) { | |||||
| modalRefPosting.dismiss(); | |||||
| this.getPostsData(); | |||||
| } | |||||
| }); | |||||
| this.appHelperService.openModal(NewPostComponent, { 'posting': posting }, this.getPostsData); | |||||
| } | |||||
| openModalEditPosting(post: PostJsonld) { | |||||
| this.appHelperService.openModal(NewPostComponent, { 'posting': post }, this.getPostsData); | |||||
| } | } | ||||
| openModalNewComment(post: PostJsonld) { | openModalNewComment(post: PostJsonld) { | ||||
| const modalRefComment = this.modalService.open(NewCommentComponent, this.appHelperService.getModalOptions()); | |||||
| let comment: CommentJsonld = {} as CommentJsonld; | let comment: CommentJsonld = {} as CommentJsonld; | ||||
| comment.post = post.id ?? null; | comment.post = post.id ?? null; | ||||
| modalRefComment.componentInstance.comment = comment; | |||||
| modalRefComment.componentInstance.submit.subscribe((modalStatus: ModalStatus) => { | |||||
| if (modalStatus === ModalStatus.Submitted) { | |||||
| modalRefComment.dismiss(); | |||||
| this.getPostsData(); | |||||
| } | |||||
| }); | |||||
| } | |||||
| openModalEditPosting(post: PostJsonld) { | |||||
| const modalRefPostingEdit = this.modalService.open(NewPostComponent, this.appHelperService.getModalOptions()); | |||||
| modalRefPostingEdit.componentInstance.posting = post; | |||||
| modalRefPostingEdit.componentInstance.submit.subscribe((modalStatus: ModalStatus) => { | |||||
| if (modalStatus === ModalStatus.Submitted) { | |||||
| modalRefPostingEdit.dismiss(); | |||||
| this.getPostsData(); | |||||
| } | |||||
| }); | |||||
| this.appHelperService.openModal(NewCommentComponent, { 'comment': comment }, this.getPostsData); | |||||
| } | } | ||||
| openModalEditComment(comment: CommentJsonld) { | openModalEditComment(comment: CommentJsonld) { | ||||
| const modalRefComment = this.modalService.open(NewCommentComponent, this.appHelperService.getModalOptions()); | |||||
| modalRefComment.componentInstance.comment = comment; | |||||
| modalRefComment.componentInstance.submit.subscribe((modalStatus: ModalStatus) => { | |||||
| if (modalStatus === ModalStatus.Submitted) { | |||||
| modalRefComment.dismiss(); | |||||
| this.getPostsData(); | |||||
| } | |||||
| }); | |||||
| this.appHelperService.openModal(NewCommentComponent, { 'comment': comment }, this.getPostsData); | |||||
| } | } | ||||
| openModalEditSale() { | openModalEditSale() { | ||||
| const modalRefSale = this.modalService.open(NewSaleComponent, this.appHelperService.getModalOptions()); | |||||
| modalRefSale.componentInstance.sale = this.sale; | |||||
| modalRefSale.componentInstance.submit.subscribe((modalStatus: ModalStatus) => { | |||||
| if (modalStatus === ModalStatus.Submitted) { | |||||
| modalRefSale.dismiss(); | |||||
| this.getSaleData(); | |||||
| } | |||||
| }); | |||||
| this.appHelperService.openModal(NewSaleComponent, { 'sale': this.sale }, this.getPostsData); | |||||
| } | } | ||||
| showComments(post: PostJsonld) { | showComments(post: PostJsonld) { | ||||
| @@ -0,0 +1,73 @@ | |||||
| <div class="spt-container"> | |||||
| <div class="card"> | |||||
| <div class="card-body row"> | |||||
| <div class="col-4"> | |||||
| <h1>{{ user.firstName }} {{ user.lastName }}</h1> | |||||
| <dl> | |||||
| <dt>Email:</dt> | |||||
| <dd>{{ user.email }}</dd> | |||||
| </dl> | |||||
| </div> | |||||
| <div class="col-4"> | |||||
| <img *ngIf="user.imageUrl !== null && user.imageUrl !== undefined" | |||||
| src="{{user.imageUrl}}" width="247" height="94" | |||||
| alt="{{user.firstName}} {{user.lastName}}" title="{{user.firstName}} {{user.lastName}}" /> | |||||
| </div> | |||||
| </div> | |||||
| </div> | |||||
| </div> | |||||
| <app-toggle #togglePosts [headline]="(isCurrentUser ? (('user.my' | translate) + ' ') : '') + ('basic.posts' | translate)"> | |||||
| <app-post-list *ngIf="togglePosts.isOpened" #postListComponent | |||||
| [user]="user" | |||||
| > | |||||
| </app-post-list> | |||||
| </app-toggle> | |||||
| <app-toggle #toggleTasks [headline]="(isCurrentUser ? (('user.my' | translate) + ' ') : '') + ('basic.tasks' | translate)"> | |||||
| <app-task-list *ngIf="toggleTasks.isOpened" #taskListComponent | |||||
| [user]="user" | |||||
| > | |||||
| </app-task-list> | |||||
| </app-toggle> | |||||
| <app-toggle #toggleSales [headline]="(isCurrentUser ? (('user.my' | translate) + ' ') : '') + ('basic.sales' | translate)"> | |||||
| <app-sale-summary *ngIf="toggleSales.isOpened" #saleSummaryComponent | |||||
| [user]="user" | |||||
| > | |||||
| </app-sale-summary> | |||||
| <app-sale-list *ngIf="toggleSales.isOpened" #saleListComponent | |||||
| [user]="user" | |||||
| > | |||||
| </app-sale-list> | |||||
| </app-toggle> | |||||
| <app-toggle #toggleProducts [headline]="(isCurrentUser ? (('user.my' | translate) + ' ') : '') + ('basic.products' | translate)"> | |||||
| <app-product-list *ngIf="toggleProducts.isOpened" #productListComponent | |||||
| [user]="user"> | |||||
| </app-product-list> | |||||
| </app-toggle> | |||||
| <app-toggle #toggleCustomers [headline]="(isCurrentUser ? (('user.my' | translate) + ' ') : '') + ('basic.customer' | translate)"> | |||||
| <app-partner-list *ngIf="toggleCustomers.isOpened" #customerListComponent | |||||
| [user]="user" | |||||
| [partnerType]="'customer'" | |||||
| > | |||||
| </app-partner-list> | |||||
| </app-toggle> | |||||
| <app-toggle #toggleSuppliers [headline]="(isCurrentUser ? (('user.my' | translate) + ' ') : '') + ('basic.supplier' | translate)"> | |||||
| <app-partner-list *ngIf="toggleSuppliers.isOpened" #suppliersListComponent | |||||
| [user]="user" | |||||
| [partnerType]="'supplier'" | |||||
| > | |||||
| </app-partner-list> | |||||
| </app-toggle> | |||||
| <app-toggle #toggleServices [headline]="(isCurrentUser ? (('user.my' | translate) + ' ') : '') + ('basic.service' | translate)"> | |||||
| <app-partner-list *ngIf="toggleServices.isOpened" #servicesListComponent | |||||
| [user]="user" | |||||
| [partnerType]="'service'" | |||||
| > | |||||
| </app-partner-list> | |||||
| </app-toggle> | |||||
| @@ -0,0 +1,23 @@ | |||||
| import { ComponentFixture, TestBed } from '@angular/core/testing'; | |||||
| import { UserDetailComponent } from './user-detail.component'; | |||||
| describe('UserDetailComponent', () => { | |||||
| let component: UserDetailComponent; | |||||
| let fixture: ComponentFixture<UserDetailComponent>; | |||||
| beforeEach(async () => { | |||||
| await TestBed.configureTestingModule({ | |||||
| declarations: [UserDetailComponent] | |||||
| }) | |||||
| .compileComponents(); | |||||
| fixture = TestBed.createComponent(UserDetailComponent); | |||||
| component = fixture.componentInstance; | |||||
| fixture.detectChanges(); | |||||
| }); | |||||
| it('should create', () => { | |||||
| expect(component).toBeTruthy(); | |||||
| }); | |||||
| }); | |||||
| @@ -0,0 +1,79 @@ | |||||
| import {AfterViewInit, Component, Input, OnInit, ViewChild} from '@angular/core'; | |||||
| import {UserJsonld, UserService} from "@app/core/api/v1"; | |||||
| import {Subscription} from "rxjs"; | |||||
| import {AccountService} from "@app/_services"; | |||||
| import {AppHelperService} from "@app/_helpers/app-helper.service"; | |||||
| import {UsersComponent} from "@app/_views/user/users.component"; | |||||
| import {ToggleComponent} from "@app/_components/toggle/toggle.component"; | |||||
| import {TaskListComponent} from "@app/_views/tasks/task-list/task-list.component"; | |||||
| import {SaleListComponent} from "@app/_views/sales/sale-list/sale-list.component"; | |||||
| import {ProductListComponent} from "@app/_views/products/product-list/product-list.component"; | |||||
| import {PartnerListComponent} from "@app/_views/partners/partner-list/partner-list.component"; | |||||
| import {PostListComponent} from "@app/_views/posts/post-list/post-list.component"; | |||||
| import {SaleSummaryComponent} from "@app/_views/sales/sale-summary/sale-summary.component"; | |||||
| @Component({ | |||||
| selector: 'app-user-detail', | |||||
| templateUrl: './user-detail.component.html', | |||||
| styleUrl: './user-detail.component.scss' | |||||
| }) | |||||
| export class UserDetailComponent implements OnInit, AfterViewInit { | |||||
| @Input() public user!: UserJsonld; | |||||
| @ViewChild("togglePosts", { static: true }) togglePosts!: ToggleComponent; | |||||
| @ViewChild("postListComponent", { static: false }) postsComponent!: PostListComponent; | |||||
| @ViewChild("toggleTasks", { static: true }) toggleTasks!: ToggleComponent; | |||||
| @ViewChild("taskListComponent", { static: false }) taskListComponent!: TaskListComponent; | |||||
| @ViewChild("toggleSales", { static: true }) toggleSales!: ToggleComponent; | |||||
| @ViewChild("saleSummaryComponent", { static: false }) saleSummaryComponent!: SaleSummaryComponent; | |||||
| @ViewChild("saleListComponent", { static: false }) saleListComponent!: SaleListComponent; | |||||
| @ViewChild("toggleProducts", { static: true }) toggleProducts!: ToggleComponent; | |||||
| @ViewChild("productListComponent", { static: false }) productListComponent!: ProductListComponent; | |||||
| @ViewChild("toggleCustomers", { static: true }) toggleCustomers!: ToggleComponent; | |||||
| @ViewChild("customerListComponent", { static: false }) customerListComponent!: PartnerListComponent; | |||||
| @ViewChild("toggleSuppliers", { static: true }) toggleSuppliers!: ToggleComponent; | |||||
| @ViewChild("suppliersListComponent", { static: false }) suppliersListComponent!: PartnerListComponent; | |||||
| @ViewChild("toggleServices", { static: true }) toggleServices!: ToggleComponent; | |||||
| @ViewChild("servicesListComponent", { static: false }) servicesListComponent!: PartnerListComponent; | |||||
| protected userSub: Subscription; | |||||
| protected isCurrentUser: boolean; | |||||
| constructor( | |||||
| private accountService: AccountService, | |||||
| private userService: UserService, | |||||
| protected appHelperService: AppHelperService | |||||
| ) { | |||||
| this.userSub = new Subscription(); | |||||
| this.isCurrentUser = false; | |||||
| if (this.accountService.userValue?.userResource) { | |||||
| let user = this.accountService.userValue?.userResource; | |||||
| this.isCurrentUser = user?.id === user?.id; | |||||
| } | |||||
| } | |||||
| ngOnInit() { | |||||
| } | |||||
| ngAfterViewInit(): void { | |||||
| this.getData(); | |||||
| } | |||||
| getData() { | |||||
| console.log(this.user); | |||||
| if (this.user === undefined) { | |||||
| const user = this.accountService.userValue; | |||||
| if (user?.id !== null && user?.id !== undefined) { | |||||
| this.userSub = this.userService.usersIdGet( | |||||
| this.appHelperService.extractId(user.id) | |||||
| ).subscribe( | |||||
| data => { | |||||
| this.user = data; | |||||
| } | |||||
| ); | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| @@ -1,18 +1,18 @@ | |||||
| import { ComponentFixture, TestBed } from '@angular/core/testing'; | import { ComponentFixture, TestBed } from '@angular/core/testing'; | ||||
| import { UserComponent } from './user.component'; | |||||
| import { UsersComponent } from './users.component'; | |||||
| describe('UserComponent', () => { | describe('UserComponent', () => { | ||||
| let component: UserComponent; | |||||
| let fixture: ComponentFixture<UserComponent>; | |||||
| let component: UsersComponent; | |||||
| let fixture: ComponentFixture<UsersComponent>; | |||||
| beforeEach(async () => { | beforeEach(async () => { | ||||
| await TestBed.configureTestingModule({ | await TestBed.configureTestingModule({ | ||||
| declarations: [UserComponent] | |||||
| declarations: [UsersComponent] | |||||
| }) | }) | ||||
| .compileComponents(); | .compileComponents(); | ||||
| fixture = TestBed.createComponent(UserComponent); | |||||
| fixture = TestBed.createComponent(UsersComponent); | |||||
| component = fixture.componentInstance; | component = fixture.componentInstance; | ||||
| fixture.detectChanges(); | fixture.detectChanges(); | ||||
| }); | }); | ||||
| @@ -5,11 +5,11 @@ import {AccountService} from "@app/_services"; | |||||
| import {AppHelperService} from "@app/_helpers/app-helper.service"; | import {AppHelperService} from "@app/_helpers/app-helper.service"; | ||||
| @Component({ | @Component({ | ||||
| selector: 'app-user', | |||||
| templateUrl: './user.component.html', | |||||
| styleUrl: './user.component.scss' | |||||
| selector: 'app-users', | |||||
| templateUrl: './users.component.html', | |||||
| styleUrl: './users.component.scss' | |||||
| }) | }) | ||||
| export class UserComponent implements OnInit, AfterViewInit { | |||||
| export class UsersComponent implements OnInit, AfterViewInit { | |||||
| @Input() public user!: UserJsonld; | @Input() public user!: UserJsonld; | ||||
| protected userSub: Subscription; | protected userSub: Subscription; | ||||
| @@ -1,8 +1,6 @@ | |||||
| import {NgModule} from '@angular/core'; | import {NgModule} from '@angular/core'; | ||||
| import {Routes, RouterModule} from '@angular/router'; | import {Routes, RouterModule} from '@angular/router'; | ||||
| import {HomeComponent} from './_views/home'; | import {HomeComponent} from './_views/home'; | ||||
| import {AuthGuard} from './_helpers'; | |||||
| import {PartnersComponent} from "@app/_views/partners/partners.component"; | import {PartnersComponent} from "@app/_views/partners/partners.component"; | ||||
| import {TwoColumnComponent} from "@app/_components/layout/two-column/two-column.component"; | import {TwoColumnComponent} from "@app/_components/layout/two-column/two-column.component"; | ||||
| import {PartnersDetailComponent} from "@app/_views/partners/partners-detail/partners-detail.component"; | import {PartnersDetailComponent} from "@app/_views/partners/partners-detail/partners-detail.component"; | ||||
| @@ -15,16 +13,19 @@ import {TasksComponent} from "@app/_views/tasks/tasks.component"; | |||||
| import {SalesComponent} from "@app/_views/sales/sales.component"; | import {SalesComponent} from "@app/_views/sales/sales.component"; | ||||
| import {SalesDetailComponent} from "@app/_views/sales/sales-detail/sales-detail.component"; | import {SalesDetailComponent} from "@app/_views/sales/sales-detail/sales-detail.component"; | ||||
| import {ProfileComponent} from "@app/_views/profile/profile.component"; | import {ProfileComponent} from "@app/_views/profile/profile.component"; | ||||
| import {UserDetailComponent} from "@app/_views/user/user-detail/user-detail.component"; | |||||
| import {userGuard} from "@app/_guards/user.guard"; | |||||
| import {adminGuard} from "@app/_guards/admin.guard"; | |||||
| const accountModule = () => import('@app/_views/account/account.module').then(x => x.AccountModule); | const accountModule = () => import('@app/_views/account/account.module').then(x => x.AccountModule); | ||||
| const routes: Routes = [ | const routes: Routes = [ | ||||
| {path: '', component: HomeComponent, canActivate: [AuthGuard]}, | |||||
| {path: '', component: HomeComponent, canActivate: [userGuard]}, | |||||
| {path: 'account', loadChildren: accountModule}, | {path: 'account', loadChildren: accountModule}, | ||||
| { | { | ||||
| path: 'customer', | path: 'customer', | ||||
| component: TwoColumnComponent, | component: TwoColumnComponent, | ||||
| canActivate: [AuthGuard], | |||||
| canActivate: [userGuard], | |||||
| children: [ | children: [ | ||||
| {path: '', component: PartnersComponent, data: {dataType: 'customer'}}, | {path: '', component: PartnersComponent, data: {dataType: 'customer'}}, | ||||
| {path: ':id', component: PartnersDetailComponent, data: {dataType: 'customer-detail'}}, | {path: ':id', component: PartnersDetailComponent, data: {dataType: 'customer-detail'}}, | ||||
| @@ -33,7 +34,7 @@ const routes: Routes = [ | |||||
| { | { | ||||
| path: 'supplier', | path: 'supplier', | ||||
| component: TwoColumnComponent, | component: TwoColumnComponent, | ||||
| canActivate: [AuthGuard], | |||||
| canActivate: [userGuard], | |||||
| children: [ | children: [ | ||||
| {path: '', component: PartnersComponent, data: {dataType: 'supplier'}}, | {path: '', component: PartnersComponent, data: {dataType: 'supplier'}}, | ||||
| {path: ':id', component: PartnersDetailComponent, data: {dataType: 'supplier-detail'}}, | {path: ':id', component: PartnersDetailComponent, data: {dataType: 'supplier-detail'}}, | ||||
| @@ -42,50 +43,50 @@ const routes: Routes = [ | |||||
| { | { | ||||
| path: 'service', | path: 'service', | ||||
| component: TwoColumnComponent, | component: TwoColumnComponent, | ||||
| canActivate: [AuthGuard], | |||||
| canActivate: [userGuard], | |||||
| children: [ | children: [ | ||||
| {path: '', component: PartnersComponent, data: {dataType: 'service'}}, | {path: '', component: PartnersComponent, data: {dataType: 'service'}}, | ||||
| {path: ':id', component: PartnersDetailComponent, data: {dataType: 'service-detail'}}, | {path: ':id', component: PartnersDetailComponent, data: {dataType: 'service-detail'}}, | ||||
| ] | ] | ||||
| }, | }, | ||||
| { | { | ||||
| path: 'contacts', | |||||
| path: 'contact', | |||||
| component: TwoColumnComponent, | component: TwoColumnComponent, | ||||
| canActivate: [AuthGuard], | |||||
| canActivate: [userGuard], | |||||
| children: [ | children: [ | ||||
| {path: '', component: ContactsComponent}, | {path: '', component: ContactsComponent}, | ||||
| {path: ':id', component: ContactsDetailComponent}, | {path: ':id', component: ContactsDetailComponent}, | ||||
| ] | ] | ||||
| }, | }, | ||||
| { | { | ||||
| path: 'products', | |||||
| path: 'product', | |||||
| component: TwoColumnComponent, | component: TwoColumnComponent, | ||||
| canActivate: [AuthGuard], | |||||
| canActivate: [userGuard], | |||||
| children: [ | children: [ | ||||
| {path: '', component: ProductsComponent}, | {path: '', component: ProductsComponent}, | ||||
| {path: ':id', component: ProductsDetailComponent}, | {path: ':id', component: ProductsDetailComponent}, | ||||
| ] | ] | ||||
| }, | }, | ||||
| { | { | ||||
| path: 'tasks', | |||||
| path: 'task', | |||||
| component: TwoColumnComponent, | component: TwoColumnComponent, | ||||
| canActivate: [AuthGuard], | |||||
| canActivate: [userGuard], | |||||
| children: [ | children: [ | ||||
| {path: '', component: TasksComponent}, | {path: '', component: TasksComponent}, | ||||
| ] | ] | ||||
| }, | }, | ||||
| { | { | ||||
| path: 'documents', | |||||
| path: 'document', | |||||
| component: TwoColumnComponent, | component: TwoColumnComponent, | ||||
| canActivate: [AuthGuard], | |||||
| canActivate: [userGuard], | |||||
| children: [ | children: [ | ||||
| {path: '', component: DocumentsComponent}, | {path: '', component: DocumentsComponent}, | ||||
| ] | ] | ||||
| }, | }, | ||||
| { | { | ||||
| path: 'sales', | |||||
| path: 'sale', | |||||
| component: TwoColumnComponent, | component: TwoColumnComponent, | ||||
| canActivate: [AuthGuard], | |||||
| canActivate: [userGuard], | |||||
| children: [ | children: [ | ||||
| {path: '', component: SalesComponent}, | {path: '', component: SalesComponent}, | ||||
| {path: ':id', component: SalesDetailComponent}, | {path: ':id', component: SalesDetailComponent}, | ||||
| @@ -94,11 +95,19 @@ const routes: Routes = [ | |||||
| { | { | ||||
| path: 'profile', | path: 'profile', | ||||
| component: TwoColumnComponent, | component: TwoColumnComponent, | ||||
| canActivate: [AuthGuard], | |||||
| canActivate: [userGuard], | |||||
| children: [ | children: [ | ||||
| {path: '', component: ProfileComponent}, | {path: '', component: ProfileComponent}, | ||||
| ] | ] | ||||
| }, | }, | ||||
| { | |||||
| path: 'user', | |||||
| component: TwoColumnComponent, | |||||
| canActivate: [userGuard, adminGuard], | |||||
| children: [ | |||||
| {path: ':id', component: UserDetailComponent}, | |||||
| ] | |||||
| }, | |||||
| // otherwise redirect to home | // otherwise redirect to home | ||||
| {path: '**', redirectTo: ''} | {path: '**', redirectTo: ''} | ||||
| ]; | ]; | ||||
| @@ -23,7 +23,6 @@ import {DocumentsComponent} from './_views/documents/documents.component'; | |||||
| import {PartnersComponent} from './_views/partners/partners.component'; | import {PartnersComponent} from './_views/partners/partners.component'; | ||||
| import {PartnersDetailComponent} from './_views/partners/partners-detail/partners-detail.component'; | import {PartnersDetailComponent} from './_views/partners/partners-detail/partners-detail.component'; | ||||
| import {NewContactComponent} from './_views/contacts/new-contact/new-contact.component'; | import {NewContactComponent} from './_views/contacts/new-contact/new-contact.component'; | ||||
| import {ContactsComponent} from './_views/contacts/contacts.component'; | |||||
| import {ContactsDetailComponent} from './_views/contacts/contacts-detail/contacts-detail.component'; | import {ContactsDetailComponent} from './_views/contacts/contacts-detail/contacts-detail.component'; | ||||
| import {PropertyInterceptor} from "@app/_helpers/property.interceptor"; | import {PropertyInterceptor} from "@app/_helpers/property.interceptor"; | ||||
| import {MatPaginatorModule} from "@angular/material/paginator"; | import {MatPaginatorModule} from "@angular/material/paginator"; | ||||
| @@ -59,7 +58,9 @@ import { ProductListComponent } from './_views/products/product-list/product-lis | |||||
| import { DocumentListComponent } from './_views/documents/document-list/document-list.component'; | import { DocumentListComponent } from './_views/documents/document-list/document-list.component'; | ||||
| import { SaleListComponent } from './_views/sales/sale-list/sale-list.component'; | import { SaleListComponent } from './_views/sales/sale-list/sale-list.component'; | ||||
| import { SaleSummaryComponent } from './_views/sales/sale-summary/sale-summary.component'; | import { SaleSummaryComponent } from './_views/sales/sale-summary/sale-summary.component'; | ||||
| import { UserComponent } from './_views/user/user/user.component'; | |||||
| import { UsersComponent } from './_views/user/users.component'; | |||||
| import { UserDetailComponent } from './_views/user/user-detail/user-detail.component'; | |||||
| export function apiConfigFactory(): Configuration { | export function apiConfigFactory(): Configuration { | ||||
| const params: ConfigurationParameters = { | const params: ConfigurationParameters = { | ||||
| @@ -140,7 +141,8 @@ export function HttpLoaderFactory(http: HttpClient) { | |||||
| DocumentListComponent, | DocumentListComponent, | ||||
| SaleListComponent, | SaleListComponent, | ||||
| SaleSummaryComponent, | SaleSummaryComponent, | ||||
| UserComponent, | |||||
| UsersComponent, | |||||
| UserDetailComponent, | |||||
| ], | ], | ||||
| providers: [ | providers: [ | ||||
| {provide: HTTP_INTERCEPTORS, useClass: JwtInterceptor, multi: true}, | {provide: HTTP_INTERCEPTORS, useClass: JwtInterceptor, multi: true}, | ||||
| @@ -1,440 +0,0 @@ | |||||
| /** | |||||
| * Matsen API Platform | |||||
| * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) | |||||
| * | |||||
| * The version of the OpenAPI document: 1.0.0 | |||||
| * | |||||
| * | |||||
| * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). | |||||
| * https://openapi-generator.tech | |||||
| * Do not edit the class manually. | |||||
| */ | |||||
| /* tslint:disable:no-unused-variable member-ordering */ | |||||
| import { Inject, Injectable, Optional } from '@angular/core'; | |||||
| import { HttpClient, HttpHeaders, HttpParams, | |||||
| HttpResponse, HttpEvent, HttpParameterCodec, HttpContext | |||||
| } from '@angular/common/http'; | |||||
| import { CustomHttpParameterCodec } from '../encoder'; | |||||
| import { Observable } from 'rxjs'; | |||||
| // @ts-ignore | |||||
| import { ApiMediasGetCollection200Response } from '../model/apiMediasGetCollection200Response'; | |||||
| // @ts-ignore | |||||
| import { ApiMediasGetCollection200Response1 } from '../model/apiMediasGetCollection200Response1'; | |||||
| // @ts-ignore | |||||
| import { MediaJsonhalMediaObjectRead } from '../model/mediaJsonhalMediaObjectRead'; | |||||
| // @ts-ignore | |||||
| import { MediaJsonldMediaObjectRead } from '../model/mediaJsonldMediaObjectRead'; | |||||
| // @ts-ignore | |||||
| import { MediaMediaObjectRead } from '../model/mediaMediaObjectRead'; | |||||
| // @ts-ignore | |||||
| import { BASE_PATH, COLLECTION_FORMATS } from '../variables'; | |||||
| import { Configuration } from '../configuration'; | |||||
| @Injectable({ | |||||
| providedIn: 'root' | |||||
| }) | |||||
| export class MediaService { | |||||
| protected basePath = 'http://localhost'; | |||||
| public defaultHeaders = new HttpHeaders(); | |||||
| public configuration = new Configuration(); | |||||
| public encoder: HttpParameterCodec; | |||||
| constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) { | |||||
| if (configuration) { | |||||
| this.configuration = configuration; | |||||
| } | |||||
| if (typeof this.configuration.basePath !== 'string') { | |||||
| if (Array.isArray(basePath) && basePath.length > 0) { | |||||
| basePath = basePath[0]; | |||||
| } | |||||
| if (typeof basePath !== 'string') { | |||||
| basePath = this.basePath; | |||||
| } | |||||
| this.configuration.basePath = basePath; | |||||
| } | |||||
| this.encoder = this.configuration.encoder || new CustomHttpParameterCodec(); | |||||
| } | |||||
| /** | |||||
| * @param consumes string[] mime-types | |||||
| * @return true: consumes contains 'multipart/form-data', false: otherwise | |||||
| */ | |||||
| private canConsumeForm(consumes: string[]): boolean { | |||||
| const form = 'multipart/form-data'; | |||||
| for (const consume of consumes) { | |||||
| if (form === consume) { | |||||
| return true; | |||||
| } | |||||
| } | |||||
| return false; | |||||
| } | |||||
| // @ts-ignore | |||||
| private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams { | |||||
| if (typeof value === "object" && value instanceof Date === false) { | |||||
| httpParams = this.addToHttpParamsRecursive(httpParams, value); | |||||
| } else { | |||||
| httpParams = this.addToHttpParamsRecursive(httpParams, value, key); | |||||
| } | |||||
| return httpParams; | |||||
| } | |||||
| private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams { | |||||
| if (value == null) { | |||||
| return httpParams; | |||||
| } | |||||
| if (typeof value === "object") { | |||||
| if (Array.isArray(value)) { | |||||
| (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key)); | |||||
| } else if (value instanceof Date) { | |||||
| if (key != null) { | |||||
| httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10)); | |||||
| } else { | |||||
| throw Error("key may not be null if value is Date"); | |||||
| } | |||||
| } else { | |||||
| Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive( | |||||
| httpParams, value[k], key != null ? `${key}.${k}` : k)); | |||||
| } | |||||
| } else if (key != null) { | |||||
| httpParams = httpParams.append(key, value); | |||||
| } else { | |||||
| throw Error("key may not be null if value is not object or array"); | |||||
| } | |||||
| return httpParams; | |||||
| } | |||||
| /** | |||||
| * Retrieves the collection of Media resources. | |||||
| * Retrieves the collection of Media resources. | |||||
| * @param page The collection page number | |||||
| * @param itemsPerPage The number of items per page | |||||
| * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. | |||||
| * @param reportProgress flag to report request and response progress. | |||||
| */ | |||||
| public mediasGetCollection(page?: number, itemsPerPage?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<ApiMediasGetCollection200Response>; | |||||
| public mediasGetCollection(page?: number, itemsPerPage?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<ApiMediasGetCollection200Response>>; | |||||
| public mediasGetCollection(page?: number, itemsPerPage?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<ApiMediasGetCollection200Response>>; | |||||
| public mediasGetCollection(page?: number, itemsPerPage?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<any> { | |||||
| let localVarQueryParameters = new HttpParams({encoder: this.encoder}); | |||||
| if (page !== undefined && page !== null) { | |||||
| localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, | |||||
| <any>page, 'page'); | |||||
| } | |||||
| if (itemsPerPage !== undefined && itemsPerPage !== null) { | |||||
| localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, | |||||
| <any>itemsPerPage, 'itemsPerPage'); | |||||
| } | |||||
| let localVarHeaders = this.defaultHeaders; | |||||
| let localVarCredential: string | undefined; | |||||
| // authentication (JWT) required | |||||
| localVarCredential = this.configuration.lookupCredential('JWT'); | |||||
| if (localVarCredential) { | |||||
| localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential); | |||||
| } | |||||
| let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept; | |||||
| if (localVarHttpHeaderAcceptSelected === undefined) { | |||||
| // to determine the Accept header | |||||
| const httpHeaderAccepts: string[] = [ | |||||
| 'application/ld+json', | |||||
| 'application/json', | |||||
| 'text/html', | |||||
| 'application/hal+json' | |||||
| ]; | |||||
| localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts); | |||||
| } | |||||
| if (localVarHttpHeaderAcceptSelected !== undefined) { | |||||
| localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected); | |||||
| } | |||||
| let localVarHttpContext: HttpContext | undefined = options && options.context; | |||||
| if (localVarHttpContext === undefined) { | |||||
| localVarHttpContext = new HttpContext(); | |||||
| } | |||||
| let localVarTransferCache: boolean | undefined = options && options.transferCache; | |||||
| if (localVarTransferCache === undefined) { | |||||
| localVarTransferCache = true; | |||||
| } | |||||
| let responseType_: 'text' | 'json' | 'blob' = 'json'; | |||||
| if (localVarHttpHeaderAcceptSelected) { | |||||
| if (localVarHttpHeaderAcceptSelected.startsWith('text')) { | |||||
| responseType_ = 'text'; | |||||
| } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) { | |||||
| responseType_ = 'json'; | |||||
| } else { | |||||
| responseType_ = 'blob'; | |||||
| } | |||||
| } | |||||
| let localVarPath = `/api/medias`; | |||||
| return this.httpClient.request<ApiMediasGetCollection200Response>('get', `${this.configuration.basePath}${localVarPath}`, | |||||
| { | |||||
| context: localVarHttpContext, | |||||
| params: localVarQueryParameters, | |||||
| responseType: <any>responseType_, | |||||
| withCredentials: this.configuration.withCredentials, | |||||
| headers: localVarHeaders, | |||||
| observe: observe, | |||||
| transferCache: localVarTransferCache, | |||||
| reportProgress: reportProgress | |||||
| } | |||||
| ); | |||||
| } | |||||
| /** | |||||
| * Removes the Media resource. | |||||
| * Removes the Media resource. | |||||
| * @param id MediaObject identifier | |||||
| * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. | |||||
| * @param reportProgress flag to report request and response progress. | |||||
| */ | |||||
| public mediasIdDelete(id: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext, transferCache?: boolean}): Observable<any>; | |||||
| public mediasIdDelete(id: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<any>>; | |||||
| public mediasIdDelete(id: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<any>>; | |||||
| public mediasIdDelete(id: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined, context?: HttpContext, transferCache?: boolean}): Observable<any> { | |||||
| if (id === null || id === undefined) { | |||||
| throw new Error('Required parameter id was null or undefined when calling mediasIdDelete.'); | |||||
| } | |||||
| let localVarHeaders = this.defaultHeaders; | |||||
| let localVarCredential: string | undefined; | |||||
| // authentication (JWT) required | |||||
| localVarCredential = this.configuration.lookupCredential('JWT'); | |||||
| if (localVarCredential) { | |||||
| localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential); | |||||
| } | |||||
| let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept; | |||||
| if (localVarHttpHeaderAcceptSelected === undefined) { | |||||
| // to determine the Accept header | |||||
| const httpHeaderAccepts: string[] = [ | |||||
| ]; | |||||
| localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts); | |||||
| } | |||||
| if (localVarHttpHeaderAcceptSelected !== undefined) { | |||||
| localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected); | |||||
| } | |||||
| let localVarHttpContext: HttpContext | undefined = options && options.context; | |||||
| if (localVarHttpContext === undefined) { | |||||
| localVarHttpContext = new HttpContext(); | |||||
| } | |||||
| let localVarTransferCache: boolean | undefined = options && options.transferCache; | |||||
| if (localVarTransferCache === undefined) { | |||||
| localVarTransferCache = true; | |||||
| } | |||||
| let responseType_: 'text' | 'json' | 'blob' = 'json'; | |||||
| if (localVarHttpHeaderAcceptSelected) { | |||||
| if (localVarHttpHeaderAcceptSelected.startsWith('text')) { | |||||
| responseType_ = 'text'; | |||||
| } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) { | |||||
| responseType_ = 'json'; | |||||
| } else { | |||||
| responseType_ = 'blob'; | |||||
| } | |||||
| } | |||||
| let localVarPath = `/api/medias/${this.configuration.encodeParam({name: "id", value: id, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined})}`; | |||||
| return this.httpClient.request<any>('delete', `${this.configuration.basePath}${localVarPath}`, | |||||
| { | |||||
| context: localVarHttpContext, | |||||
| responseType: <any>responseType_, | |||||
| withCredentials: this.configuration.withCredentials, | |||||
| headers: localVarHeaders, | |||||
| observe: observe, | |||||
| transferCache: localVarTransferCache, | |||||
| reportProgress: reportProgress | |||||
| } | |||||
| ); | |||||
| } | |||||
| /** | |||||
| * Retrieves a Media resource. | |||||
| * Retrieves a Media resource. | |||||
| * @param id MediaObject identifier | |||||
| * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. | |||||
| * @param reportProgress flag to report request and response progress. | |||||
| */ | |||||
| public mediasIdGet(id: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<MediaJsonldMediaObjectRead>; | |||||
| public mediasIdGet(id: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<MediaJsonldMediaObjectRead>>; | |||||
| public mediasIdGet(id: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<MediaJsonldMediaObjectRead>>; | |||||
| public mediasIdGet(id: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<any> { | |||||
| if (id === null || id === undefined) { | |||||
| throw new Error('Required parameter id was null or undefined when calling mediasIdGet.'); | |||||
| } | |||||
| let localVarHeaders = this.defaultHeaders; | |||||
| let localVarCredential: string | undefined; | |||||
| // authentication (JWT) required | |||||
| localVarCredential = this.configuration.lookupCredential('JWT'); | |||||
| if (localVarCredential) { | |||||
| localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential); | |||||
| } | |||||
| let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept; | |||||
| if (localVarHttpHeaderAcceptSelected === undefined) { | |||||
| // to determine the Accept header | |||||
| const httpHeaderAccepts: string[] = [ | |||||
| 'application/ld+json', | |||||
| 'application/json', | |||||
| 'text/html', | |||||
| 'application/hal+json' | |||||
| ]; | |||||
| localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts); | |||||
| } | |||||
| if (localVarHttpHeaderAcceptSelected !== undefined) { | |||||
| localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected); | |||||
| } | |||||
| let localVarHttpContext: HttpContext | undefined = options && options.context; | |||||
| if (localVarHttpContext === undefined) { | |||||
| localVarHttpContext = new HttpContext(); | |||||
| } | |||||
| let localVarTransferCache: boolean | undefined = options && options.transferCache; | |||||
| if (localVarTransferCache === undefined) { | |||||
| localVarTransferCache = true; | |||||
| } | |||||
| let responseType_: 'text' | 'json' | 'blob' = 'json'; | |||||
| if (localVarHttpHeaderAcceptSelected) { | |||||
| if (localVarHttpHeaderAcceptSelected.startsWith('text')) { | |||||
| responseType_ = 'text'; | |||||
| } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) { | |||||
| responseType_ = 'json'; | |||||
| } else { | |||||
| responseType_ = 'blob'; | |||||
| } | |||||
| } | |||||
| let localVarPath = `/api/medias/${this.configuration.encodeParam({name: "id", value: id, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined})}`; | |||||
| return this.httpClient.request<MediaJsonldMediaObjectRead>('get', `${this.configuration.basePath}${localVarPath}`, | |||||
| { | |||||
| context: localVarHttpContext, | |||||
| responseType: <any>responseType_, | |||||
| withCredentials: this.configuration.withCredentials, | |||||
| headers: localVarHeaders, | |||||
| observe: observe, | |||||
| transferCache: localVarTransferCache, | |||||
| reportProgress: reportProgress | |||||
| } | |||||
| ); | |||||
| } | |||||
| /** | |||||
| * Creates a Media resource. | |||||
| * Creates a Media resource. | |||||
| * @param file | |||||
| * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. | |||||
| * @param reportProgress flag to report request and response progress. | |||||
| */ | |||||
| public mediasPost(file?: Blob, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<MediaJsonldMediaObjectRead>; | |||||
| public mediasPost(file?: Blob, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<MediaJsonldMediaObjectRead>>; | |||||
| public mediasPost(file?: Blob, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<MediaJsonldMediaObjectRead>>; | |||||
| public mediasPost(file?: Blob, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<any> { | |||||
| let localVarHeaders = this.defaultHeaders; | |||||
| let localVarCredential: string | undefined; | |||||
| // authentication (JWT) required | |||||
| localVarCredential = this.configuration.lookupCredential('JWT'); | |||||
| if (localVarCredential) { | |||||
| localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential); | |||||
| } | |||||
| let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept; | |||||
| if (localVarHttpHeaderAcceptSelected === undefined) { | |||||
| // to determine the Accept header | |||||
| const httpHeaderAccepts: string[] = [ | |||||
| 'application/ld+json', | |||||
| 'application/json', | |||||
| 'text/html', | |||||
| 'application/hal+json' | |||||
| ]; | |||||
| localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts); | |||||
| } | |||||
| if (localVarHttpHeaderAcceptSelected !== undefined) { | |||||
| localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected); | |||||
| } | |||||
| let localVarHttpContext: HttpContext | undefined = options && options.context; | |||||
| if (localVarHttpContext === undefined) { | |||||
| localVarHttpContext = new HttpContext(); | |||||
| } | |||||
| let localVarTransferCache: boolean | undefined = options && options.transferCache; | |||||
| if (localVarTransferCache === undefined) { | |||||
| localVarTransferCache = true; | |||||
| } | |||||
| // to determine the Content-Type header | |||||
| const consumes: string[] = [ | |||||
| 'multipart/form-data' | |||||
| ]; | |||||
| const canConsumeForm = this.canConsumeForm(consumes); | |||||
| let localVarFormParams: { append(param: string, value: any): any; }; | |||||
| let localVarUseForm = false; | |||||
| let localVarConvertFormParamsToString = false; | |||||
| // use FormData to transmit files using content-type "multipart/form-data" | |||||
| // see https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data | |||||
| localVarUseForm = canConsumeForm; | |||||
| if (localVarUseForm) { | |||||
| localVarFormParams = new FormData(); | |||||
| } else { | |||||
| localVarFormParams = new HttpParams({encoder: this.encoder}); | |||||
| } | |||||
| if (file !== undefined) { | |||||
| localVarFormParams = localVarFormParams.append('file', <any>file) as any || localVarFormParams; | |||||
| } | |||||
| let responseType_: 'text' | 'json' | 'blob' = 'json'; | |||||
| if (localVarHttpHeaderAcceptSelected) { | |||||
| if (localVarHttpHeaderAcceptSelected.startsWith('text')) { | |||||
| responseType_ = 'text'; | |||||
| } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) { | |||||
| responseType_ = 'json'; | |||||
| } else { | |||||
| responseType_ = 'blob'; | |||||
| } | |||||
| } | |||||
| let localVarPath = `/api/medias`; | |||||
| return this.httpClient.request<MediaJsonldMediaObjectRead>('post', `${this.configuration.basePath}${localVarPath}`, | |||||
| { | |||||
| context: localVarHttpContext, | |||||
| body: localVarConvertFormParamsToString ? localVarFormParams.toString() : localVarFormParams, | |||||
| responseType: <any>responseType_, | |||||
| withCredentials: this.configuration.withCredentials, | |||||
| headers: localVarHeaders, | |||||
| observe: observe, | |||||
| transferCache: localVarTransferCache, | |||||
| reportProgress: reportProgress | |||||
| } | |||||
| ); | |||||
| } | |||||
| } | |||||
| @@ -108,13 +108,15 @@ export class PartnerFollowService { | |||||
| * @param partner2 | * @param partner2 | ||||
| * @param user | * @param user | ||||
| * @param user2 | * @param user2 | ||||
| * @param partnerType | |||||
| * @param partnerType2 | |||||
| * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. | * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. | ||||
| * @param reportProgress flag to report request and response progress. | * @param reportProgress flag to report request and response progress. | ||||
| */ | */ | ||||
| public partnerFollowsGetCollection(page?: number, itemsPerPage?: number, partner?: string, partner2?: Array<string>, user?: string, user2?: Array<string>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<ApiPartnerFollowsGetCollection200Response>; | |||||
| public partnerFollowsGetCollection(page?: number, itemsPerPage?: number, partner?: string, partner2?: Array<string>, user?: string, user2?: Array<string>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<ApiPartnerFollowsGetCollection200Response>>; | |||||
| public partnerFollowsGetCollection(page?: number, itemsPerPage?: number, partner?: string, partner2?: Array<string>, user?: string, user2?: Array<string>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<ApiPartnerFollowsGetCollection200Response>>; | |||||
| public partnerFollowsGetCollection(page?: number, itemsPerPage?: number, partner?: string, partner2?: Array<string>, user?: string, user2?: Array<string>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<any> { | |||||
| public partnerFollowsGetCollection(page?: number, itemsPerPage?: number, partner?: string, partner2?: Array<string>, user?: string, user2?: Array<string>, partnerType?: string, partnerType2?: Array<string>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<ApiPartnerFollowsGetCollection200Response>; | |||||
| public partnerFollowsGetCollection(page?: number, itemsPerPage?: number, partner?: string, partner2?: Array<string>, user?: string, user2?: Array<string>, partnerType?: string, partnerType2?: Array<string>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<ApiPartnerFollowsGetCollection200Response>>; | |||||
| public partnerFollowsGetCollection(page?: number, itemsPerPage?: number, partner?: string, partner2?: Array<string>, user?: string, user2?: Array<string>, partnerType?: string, partnerType2?: Array<string>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<ApiPartnerFollowsGetCollection200Response>>; | |||||
| public partnerFollowsGetCollection(page?: number, itemsPerPage?: number, partner?: string, partner2?: Array<string>, user?: string, user2?: Array<string>, partnerType?: string, partnerType2?: Array<string>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<any> { | |||||
| let localVarQueryParameters = new HttpParams({encoder: this.encoder}); | let localVarQueryParameters = new HttpParams({encoder: this.encoder}); | ||||
| if (page !== undefined && page !== null) { | if (page !== undefined && page !== null) { | ||||
| @@ -145,6 +147,16 @@ export class PartnerFollowService { | |||||
| <any>element, 'user[]'); | <any>element, 'user[]'); | ||||
| }) | }) | ||||
| } | } | ||||
| if (partnerType !== undefined && partnerType !== null) { | |||||
| localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, | |||||
| <any>partnerType, 'partner.type'); | |||||
| } | |||||
| if (partnerType2) { | |||||
| partnerType2.forEach((element) => { | |||||
| localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, | |||||
| <any>element, 'partner.type[]'); | |||||
| }) | |||||
| } | |||||
| let localVarHeaders = this.defaultHeaders; | let localVarHeaders = this.defaultHeaders; | ||||
| @@ -109,13 +109,15 @@ export class PartnerProductService { | |||||
| * @param product | * @param product | ||||
| * @param product2 | * @param product2 | ||||
| * @param productName | * @param productName | ||||
| * @param partnerType | |||||
| * @param partnerType2 | |||||
| * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. | * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. | ||||
| * @param reportProgress flag to report request and response progress. | * @param reportProgress flag to report request and response progress. | ||||
| */ | */ | ||||
| public partnerProductsGetCollection(page?: number, itemsPerPage?: number, partner?: string, partner2?: Array<string>, product?: string, product2?: Array<string>, productName?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<ApiPartnerProductsGetCollection200Response>; | |||||
| public partnerProductsGetCollection(page?: number, itemsPerPage?: number, partner?: string, partner2?: Array<string>, product?: string, product2?: Array<string>, productName?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<ApiPartnerProductsGetCollection200Response>>; | |||||
| public partnerProductsGetCollection(page?: number, itemsPerPage?: number, partner?: string, partner2?: Array<string>, product?: string, product2?: Array<string>, productName?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<ApiPartnerProductsGetCollection200Response>>; | |||||
| public partnerProductsGetCollection(page?: number, itemsPerPage?: number, partner?: string, partner2?: Array<string>, product?: string, product2?: Array<string>, productName?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<any> { | |||||
| public partnerProductsGetCollection(page?: number, itemsPerPage?: number, partner?: string, partner2?: Array<string>, product?: string, product2?: Array<string>, productName?: string, partnerType?: string, partnerType2?: Array<string>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<ApiPartnerProductsGetCollection200Response>; | |||||
| public partnerProductsGetCollection(page?: number, itemsPerPage?: number, partner?: string, partner2?: Array<string>, product?: string, product2?: Array<string>, productName?: string, partnerType?: string, partnerType2?: Array<string>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<ApiPartnerProductsGetCollection200Response>>; | |||||
| public partnerProductsGetCollection(page?: number, itemsPerPage?: number, partner?: string, partner2?: Array<string>, product?: string, product2?: Array<string>, productName?: string, partnerType?: string, partnerType2?: Array<string>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<ApiPartnerProductsGetCollection200Response>>; | |||||
| public partnerProductsGetCollection(page?: number, itemsPerPage?: number, partner?: string, partner2?: Array<string>, product?: string, product2?: Array<string>, productName?: string, partnerType?: string, partnerType2?: Array<string>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<any> { | |||||
| let localVarQueryParameters = new HttpParams({encoder: this.encoder}); | let localVarQueryParameters = new HttpParams({encoder: this.encoder}); | ||||
| if (page !== undefined && page !== null) { | if (page !== undefined && page !== null) { | ||||
| @@ -150,6 +152,16 @@ export class PartnerProductService { | |||||
| localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, | localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, | ||||
| <any>productName, 'product.name'); | <any>productName, 'product.name'); | ||||
| } | } | ||||
| if (partnerType !== undefined && partnerType !== null) { | |||||
| localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, | |||||
| <any>partnerType, 'partner.type'); | |||||
| } | |||||
| if (partnerType2) { | |||||
| partnerType2.forEach((element) => { | |||||
| localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, | |||||
| <any>element, 'partner.type[]'); | |||||
| }) | |||||
| } | |||||
| let localVarHeaders = this.defaultHeaders; | let localVarHeaders = this.defaultHeaders; | ||||
| @@ -24,6 +24,10 @@ import { ApiSaleSummariesGetCollection200Response } from '../model/apiSaleSummar | |||||
| import { ApiSaleSummariesGetCollection200Response1 } from '../model/apiSaleSummariesGetCollection200Response1'; | import { ApiSaleSummariesGetCollection200Response1 } from '../model/apiSaleSummariesGetCollection200Response1'; | ||||
| // @ts-ignore | // @ts-ignore | ||||
| import { SaleSummary } from '../model/saleSummary'; | import { SaleSummary } from '../model/saleSummary'; | ||||
| // @ts-ignore | |||||
| import { SaleSummaryJsonhal } from '../model/saleSummaryJsonhal'; | |||||
| // @ts-ignore | |||||
| import { SaleSummaryJsonld } from '../model/saleSummaryJsonld'; | |||||
| // @ts-ignore | // @ts-ignore | ||||
| import { BASE_PATH, COLLECTION_FORMATS } from '../variables'; | import { BASE_PATH, COLLECTION_FORMATS } from '../variables'; | ||||
| @@ -179,4 +183,79 @@ export class SaleSummaryService { | |||||
| ); | ); | ||||
| } | } | ||||
| /** | |||||
| * Retrieves a SaleSummary resource. | |||||
| * Retrieves a SaleSummary resource. | |||||
| * @param userId SaleSummary identifier | |||||
| * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. | |||||
| * @param reportProgress flag to report request and response progress. | |||||
| */ | |||||
| public saleSummariesUserIdGet(userId: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<SaleSummaryJsonld>; | |||||
| public saleSummariesUserIdGet(userId: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<SaleSummaryJsonld>>; | |||||
| public saleSummariesUserIdGet(userId: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<SaleSummaryJsonld>>; | |||||
| public saleSummariesUserIdGet(userId: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<any> { | |||||
| if (userId === null || userId === undefined) { | |||||
| throw new Error('Required parameter userId was null or undefined when calling saleSummariesUserIdGet.'); | |||||
| } | |||||
| let localVarHeaders = this.defaultHeaders; | |||||
| let localVarCredential: string | undefined; | |||||
| // authentication (JWT) required | |||||
| localVarCredential = this.configuration.lookupCredential('JWT'); | |||||
| if (localVarCredential) { | |||||
| localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential); | |||||
| } | |||||
| let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept; | |||||
| if (localVarHttpHeaderAcceptSelected === undefined) { | |||||
| // to determine the Accept header | |||||
| const httpHeaderAccepts: string[] = [ | |||||
| 'application/ld+json', | |||||
| 'application/json', | |||||
| 'text/html', | |||||
| 'application/hal+json' | |||||
| ]; | |||||
| localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts); | |||||
| } | |||||
| if (localVarHttpHeaderAcceptSelected !== undefined) { | |||||
| localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected); | |||||
| } | |||||
| let localVarHttpContext: HttpContext | undefined = options && options.context; | |||||
| if (localVarHttpContext === undefined) { | |||||
| localVarHttpContext = new HttpContext(); | |||||
| } | |||||
| let localVarTransferCache: boolean | undefined = options && options.transferCache; | |||||
| if (localVarTransferCache === undefined) { | |||||
| localVarTransferCache = true; | |||||
| } | |||||
| let responseType_: 'text' | 'json' | 'blob' = 'json'; | |||||
| if (localVarHttpHeaderAcceptSelected) { | |||||
| if (localVarHttpHeaderAcceptSelected.startsWith('text')) { | |||||
| responseType_ = 'text'; | |||||
| } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) { | |||||
| responseType_ = 'json'; | |||||
| } else { | |||||
| responseType_ = 'blob'; | |||||
| } | |||||
| } | |||||
| let localVarPath = `/api/sale_summaries/${this.configuration.encodeParam({name: "userId", value: userId, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined})}`; | |||||
| return this.httpClient.request<SaleSummaryJsonld>('get', `${this.configuration.basePath}${localVarPath}`, | |||||
| { | |||||
| context: localVarHttpContext, | |||||
| responseType: <any>responseType_, | |||||
| withCredentials: this.configuration.withCredentials, | |||||
| headers: localVarHeaders, | |||||
| observe: observe, | |||||
| transferCache: localVarTransferCache, | |||||
| reportProgress: reportProgress | |||||
| } | |||||
| ); | |||||
| } | |||||
| } | } | ||||
| @@ -108,13 +108,14 @@ export class UserProductService { | |||||
| * @param user2 | * @param user2 | ||||
| * @param product | * @param product | ||||
| * @param product2 | * @param product2 | ||||
| * @param orderProductName | |||||
| * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. | * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. | ||||
| * @param reportProgress flag to report request and response progress. | * @param reportProgress flag to report request and response progress. | ||||
| */ | */ | ||||
| public userProductsGetCollection(page?: number, itemsPerPage?: number, user?: string, user2?: Array<string>, product?: string, product2?: Array<string>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<ApiUserProductsGetCollection200Response>; | |||||
| public userProductsGetCollection(page?: number, itemsPerPage?: number, user?: string, user2?: Array<string>, product?: string, product2?: Array<string>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<ApiUserProductsGetCollection200Response>>; | |||||
| public userProductsGetCollection(page?: number, itemsPerPage?: number, user?: string, user2?: Array<string>, product?: string, product2?: Array<string>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<ApiUserProductsGetCollection200Response>>; | |||||
| public userProductsGetCollection(page?: number, itemsPerPage?: number, user?: string, user2?: Array<string>, product?: string, product2?: Array<string>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<any> { | |||||
| public userProductsGetCollection(page?: number, itemsPerPage?: number, user?: string, user2?: Array<string>, product?: string, product2?: Array<string>, orderProductName?: 'asc' | 'desc', observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<ApiUserProductsGetCollection200Response>; | |||||
| public userProductsGetCollection(page?: number, itemsPerPage?: number, user?: string, user2?: Array<string>, product?: string, product2?: Array<string>, orderProductName?: 'asc' | 'desc', observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<ApiUserProductsGetCollection200Response>>; | |||||
| public userProductsGetCollection(page?: number, itemsPerPage?: number, user?: string, user2?: Array<string>, product?: string, product2?: Array<string>, orderProductName?: 'asc' | 'desc', observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<ApiUserProductsGetCollection200Response>>; | |||||
| public userProductsGetCollection(page?: number, itemsPerPage?: number, user?: string, user2?: Array<string>, product?: string, product2?: Array<string>, orderProductName?: 'asc' | 'desc', observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/json' | 'text/html' | 'application/hal+json', context?: HttpContext, transferCache?: boolean}): Observable<any> { | |||||
| let localVarQueryParameters = new HttpParams({encoder: this.encoder}); | let localVarQueryParameters = new HttpParams({encoder: this.encoder}); | ||||
| if (page !== undefined && page !== null) { | if (page !== undefined && page !== null) { | ||||
| @@ -145,6 +146,10 @@ export class UserProductService { | |||||
| <any>element, 'product[]'); | <any>element, 'product[]'); | ||||
| }) | }) | ||||
| } | } | ||||
| if (orderProductName !== undefined && orderProductName !== null) { | |||||
| localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, | |||||
| <any>orderProductName, 'order[product.name]'); | |||||
| } | |||||
| let localVarHeaders = this.defaultHeaders; | let localVarHeaders = this.defaultHeaders; | ||||
| @@ -1,23 +0,0 @@ | |||||
| /** | |||||
| * Matsen API Platform | |||||
| * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) | |||||
| * | |||||
| * The version of the OpenAPI document: 1.0.0 | |||||
| * | |||||
| * | |||||
| * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). | |||||
| * https://openapi-generator.tech | |||||
| * Do not edit the class manually. | |||||
| */ | |||||
| import { MediaJsonldMediaObjectRead } from './mediaJsonldMediaObjectRead'; | |||||
| import { ApiCommentsGetCollection200ResponseHydraSearch } from './apiCommentsGetCollection200ResponseHydraSearch'; | |||||
| import { ApiCommentsGetCollection200ResponseHydraView } from './apiCommentsGetCollection200ResponseHydraView'; | |||||
| export interface ApiMediaGetCollection200Response { | |||||
| 'hydra:member': Array<MediaJsonldMediaObjectRead>; | |||||
| 'hydra:totalItems'?: number; | |||||
| 'hydra:view'?: ApiCommentsGetCollection200ResponseHydraView; | |||||
| 'hydra:search'?: ApiCommentsGetCollection200ResponseHydraSearch; | |||||
| } | |||||
| @@ -1,22 +0,0 @@ | |||||
| /** | |||||
| * Matsen API Platform | |||||
| * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) | |||||
| * | |||||
| * The version of the OpenAPI document: 1.0.0 | |||||
| * | |||||
| * | |||||
| * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). | |||||
| * https://openapi-generator.tech | |||||
| * Do not edit the class manually. | |||||
| */ | |||||
| import { MediaJsonhalMediaObjectRead } from './mediaJsonhalMediaObjectRead'; | |||||
| import { ApiCommentsGetCollection200Response1Links } from './apiCommentsGetCollection200Response1Links'; | |||||
| export interface ApiMediaGetCollection200Response1 { | |||||
| _embedded: Array<MediaJsonhalMediaObjectRead>; | |||||
| totalItems?: number; | |||||
| itemsPerPage?: number; | |||||
| _links: ApiCommentsGetCollection200Response1Links; | |||||
| } | |||||
| @@ -1,23 +0,0 @@ | |||||
| /** | |||||
| * Matsen API Platform | |||||
| * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) | |||||
| * | |||||
| * The version of the OpenAPI document: 1.0.0 | |||||
| * | |||||
| * | |||||
| * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). | |||||
| * https://openapi-generator.tech | |||||
| * Do not edit the class manually. | |||||
| */ | |||||
| import { MediaJsonldMediaObjectRead } from './mediaJsonldMediaObjectRead'; | |||||
| import { ApiCommentsGetCollection200ResponseHydraSearch } from './apiCommentsGetCollection200ResponseHydraSearch'; | |||||
| import { ApiCommentsGetCollection200ResponseHydraView } from './apiCommentsGetCollection200ResponseHydraView'; | |||||
| export interface ApiMediasGetCollection200Response { | |||||
| 'hydra:member': Array<MediaJsonldMediaObjectRead>; | |||||
| 'hydra:totalItems'?: number; | |||||
| 'hydra:view'?: ApiCommentsGetCollection200ResponseHydraView; | |||||
| 'hydra:search'?: ApiCommentsGetCollection200ResponseHydraSearch; | |||||
| } | |||||
| @@ -1,22 +0,0 @@ | |||||
| /** | |||||
| * Matsen API Platform | |||||
| * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) | |||||
| * | |||||
| * The version of the OpenAPI document: 1.0.0 | |||||
| * | |||||
| * | |||||
| * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). | |||||
| * https://openapi-generator.tech | |||||
| * Do not edit the class manually. | |||||
| */ | |||||
| import { MediaJsonhalMediaObjectRead } from './mediaJsonhalMediaObjectRead'; | |||||
| import { ApiCommentsGetCollection200Response1Links } from './apiCommentsGetCollection200Response1Links'; | |||||
| export interface ApiMediasGetCollection200Response1 { | |||||
| _embedded: Array<MediaJsonhalMediaObjectRead>; | |||||
| totalItems?: number; | |||||
| itemsPerPage?: number; | |||||
| _links: ApiCommentsGetCollection200Response1Links; | |||||
| } | |||||
| @@ -1,20 +0,0 @@ | |||||
| /** | |||||
| * Matsen API Platform | |||||
| * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) | |||||
| * | |||||
| * The version of the OpenAPI document: 1.0.0 | |||||
| * | |||||
| * | |||||
| * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). | |||||
| * https://openapi-generator.tech | |||||
| * Do not edit the class manually. | |||||
| */ | |||||
| /** | |||||
| * | |||||
| */ | |||||
| export interface DocumentDocumentObjectRead { | |||||
| contentUrl?: string | null; | |||||
| } | |||||
| @@ -1,22 +0,0 @@ | |||||
| /** | |||||
| * Matsen API Platform | |||||
| * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) | |||||
| * | |||||
| * The version of the OpenAPI document: 1.0.0 | |||||
| * | |||||
| * | |||||
| * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). | |||||
| * https://openapi-generator.tech | |||||
| * Do not edit the class manually. | |||||
| */ | |||||
| import { CommentJsonhalLinks } from './commentJsonhalLinks'; | |||||
| /** | |||||
| * | |||||
| */ | |||||
| export interface DocumentJsonhalDocumentObjectRead { | |||||
| _links?: CommentJsonhalLinks; | |||||
| contentUrl?: string | null; | |||||
| } | |||||
| @@ -1,24 +0,0 @@ | |||||
| /** | |||||
| * Matsen API Platform | |||||
| * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) | |||||
| * | |||||
| * The version of the OpenAPI document: 1.0.0 | |||||
| * | |||||
| * | |||||
| * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). | |||||
| * https://openapi-generator.tech | |||||
| * Do not edit the class manually. | |||||
| */ | |||||
| import { CommentJsonldContext } from './commentJsonldContext'; | |||||
| /** | |||||
| * | |||||
| */ | |||||
| export interface DocumentJsonldDocumentObjectRead { | |||||
| context?: CommentJsonldContext; | |||||
| readonly id?: string; | |||||
| readonly type?: string; | |||||
| contentUrl?: string | null; | |||||
| } | |||||
| @@ -1,22 +0,0 @@ | |||||
| /** | |||||
| * Matsen API Platform | |||||
| * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) | |||||
| * | |||||
| * The version of the OpenAPI document: 1.0.0 | |||||
| * | |||||
| * | |||||
| * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). | |||||
| * https://openapi-generator.tech | |||||
| * Do not edit the class manually. | |||||
| */ | |||||
| import { CommentJsonhalLinks } from './commentJsonhalLinks'; | |||||
| /** | |||||
| * | |||||
| */ | |||||
| export interface MediaJsonhalMediaObjectRead { | |||||
| _links?: CommentJsonhalLinks; | |||||
| contentUrl?: string | null; | |||||
| } | |||||
| @@ -1,24 +0,0 @@ | |||||
| /** | |||||
| * Matsen API Platform | |||||
| * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) | |||||
| * | |||||
| * The version of the OpenAPI document: 1.0.0 | |||||
| * | |||||
| * | |||||
| * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). | |||||
| * https://openapi-generator.tech | |||||
| * Do not edit the class manually. | |||||
| */ | |||||
| import { CommentJsonldContext } from './commentJsonldContext'; | |||||
| /** | |||||
| * | |||||
| */ | |||||
| export interface MediaJsonldMediaObjectRead { | |||||
| context?: CommentJsonldContext; | |||||
| readonly id?: string; | |||||
| readonly type?: string; | |||||
| contentUrl?: string | null; | |||||
| } | |||||
| @@ -1,20 +0,0 @@ | |||||
| /** | |||||
| * Matsen API Platform | |||||
| * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) | |||||
| * | |||||
| * The version of the OpenAPI document: 1.0.0 | |||||
| * | |||||
| * | |||||
| * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). | |||||
| * https://openapi-generator.tech | |||||
| * Do not edit the class manually. | |||||
| */ | |||||
| /** | |||||
| * | |||||
| */ | |||||
| export interface MediaMediaObjectRead { | |||||
| contentUrl?: string | null; | |||||
| } | |||||
| @@ -9,6 +9,7 @@ | |||||
| * https://openapi-generator.tech | * https://openapi-generator.tech | ||||
| * Do not edit the class manually. | * Do not edit the class manually. | ||||
| */ | */ | ||||
| import { Partner } from './partner'; | |||||
| /** | /** | ||||
| @@ -17,7 +18,10 @@ | |||||
| export interface PartnerFollow { | export interface PartnerFollow { | ||||
| readonly user?: string | null; | readonly user?: string | null; | ||||
| readonly userName?: string | null; | readonly userName?: string | null; | ||||
| partner: string | null; | |||||
| /** | |||||
| * ?PartnerApi | |||||
| */ | |||||
| partner: Partner; | |||||
| readonly partnerName?: string | null; | readonly partnerName?: string | null; | ||||
| readonly createdAt?: string | null; | readonly createdAt?: string | null; | ||||
| readonly owner?: string | null; | readonly owner?: string | null; | ||||
| @@ -10,6 +10,7 @@ | |||||
| * Do not edit the class manually. | * Do not edit the class manually. | ||||
| */ | */ | ||||
| import { CommentJsonhalLinks } from './commentJsonhalLinks'; | import { CommentJsonhalLinks } from './commentJsonhalLinks'; | ||||
| import { PartnerJsonhal } from './partnerJsonhal'; | |||||
| /** | /** | ||||
| @@ -19,7 +20,10 @@ export interface PartnerFollowJsonhal { | |||||
| _links?: CommentJsonhalLinks; | _links?: CommentJsonhalLinks; | ||||
| readonly user?: string | null; | readonly user?: string | null; | ||||
| readonly userName?: string | null; | readonly userName?: string | null; | ||||
| partner: string | null; | |||||
| /** | |||||
| * ?PartnerApi | |||||
| */ | |||||
| partner: PartnerJsonhal; | |||||
| readonly partnerName?: string | null; | readonly partnerName?: string | null; | ||||
| readonly createdAt?: string | null; | readonly createdAt?: string | null; | ||||
| readonly owner?: string | null; | readonly owner?: string | null; | ||||
| @@ -10,6 +10,7 @@ | |||||
| * Do not edit the class manually. | * Do not edit the class manually. | ||||
| */ | */ | ||||
| import { CommentJsonldContext } from './commentJsonldContext'; | import { CommentJsonldContext } from './commentJsonldContext'; | ||||
| import { PartnerJsonld } from './partnerJsonld'; | |||||
| /** | /** | ||||
| @@ -21,7 +22,10 @@ export interface PartnerFollowJsonld { | |||||
| readonly type?: string; | readonly type?: string; | ||||
| readonly user?: string | null; | readonly user?: string | null; | ||||
| readonly userName?: string | null; | readonly userName?: string | null; | ||||
| partner: string | null; | |||||
| /** | |||||
| * ?PartnerApi | |||||
| */ | |||||
| partner: PartnerJsonld; | |||||
| readonly partnerName?: string | null; | readonly partnerName?: string | null; | ||||
| readonly createdAt?: string | null; | readonly createdAt?: string | null; | ||||
| readonly owner?: string | null; | readonly owner?: string | null; | ||||
| @@ -36,7 +36,7 @@ export interface PartnerJsonhal { | |||||
| */ | */ | ||||
| posts?: Array<string>; | posts?: Array<string>; | ||||
| contacts?: Array<string>; | contacts?: Array<string>; | ||||
| partnerProducts?: Array<string>; | |||||
| readonly partnerProducts?: any | null; | |||||
| } | } | ||||
| export namespace PartnerJsonhal { | export namespace PartnerJsonhal { | ||||
| export type PartnerTypeEnum = 'customer' | 'supplier' | 'service'; | export type PartnerTypeEnum = 'customer' | 'supplier' | 'service'; | ||||
| @@ -9,15 +9,23 @@ | |||||
| * https://openapi-generator.tech | * https://openapi-generator.tech | ||||
| * Do not edit the class manually. | * Do not edit the class manually. | ||||
| */ | */ | ||||
| import { Product } from './product'; | |||||
| import { Partner } from './partner'; | |||||
| /** | /** | ||||
| * | * | ||||
| */ | */ | ||||
| export interface PartnerProduct { | export interface PartnerProduct { | ||||
| partner: string | null; | |||||
| /** | |||||
| * ?PartnerApi | |||||
| */ | |||||
| partner: Partner; | |||||
| readonly partnerName?: string | null; | readonly partnerName?: string | null; | ||||
| product: string | null; | |||||
| /** | |||||
| * ?ProductApi | |||||
| */ | |||||
| product: Product; | |||||
| readonly productName?: string | null; | readonly productName?: string | null; | ||||
| readonly createdAt?: string | null; | readonly createdAt?: string | null; | ||||
| } | } | ||||
| @@ -10,6 +10,8 @@ | |||||
| * Do not edit the class manually. | * Do not edit the class manually. | ||||
| */ | */ | ||||
| import { CommentJsonhalLinks } from './commentJsonhalLinks'; | import { CommentJsonhalLinks } from './commentJsonhalLinks'; | ||||
| import { ProductJsonhal } from './productJsonhal'; | |||||
| import { PartnerJsonhal } from './partnerJsonhal'; | |||||
| /** | /** | ||||
| @@ -17,9 +19,15 @@ import { CommentJsonhalLinks } from './commentJsonhalLinks'; | |||||
| */ | */ | ||||
| export interface PartnerProductJsonhal { | export interface PartnerProductJsonhal { | ||||
| _links?: CommentJsonhalLinks; | _links?: CommentJsonhalLinks; | ||||
| partner: string | null; | |||||
| /** | |||||
| * ?PartnerApi | |||||
| */ | |||||
| partner: PartnerJsonhal; | |||||
| readonly partnerName?: string | null; | readonly partnerName?: string | null; | ||||
| product: string | null; | |||||
| /** | |||||
| * ?ProductApi | |||||
| */ | |||||
| product: ProductJsonhal; | |||||
| readonly productName?: string | null; | readonly productName?: string | null; | ||||
| readonly createdAt?: string | null; | readonly createdAt?: string | null; | ||||
| } | } | ||||
| @@ -10,6 +10,8 @@ | |||||
| * Do not edit the class manually. | * Do not edit the class manually. | ||||
| */ | */ | ||||
| import { CommentJsonldContext } from './commentJsonldContext'; | import { CommentJsonldContext } from './commentJsonldContext'; | ||||
| import { ProductJsonld } from './productJsonld'; | |||||
| import { PartnerJsonld } from './partnerJsonld'; | |||||
| /** | /** | ||||
| @@ -19,9 +21,15 @@ export interface PartnerProductJsonld { | |||||
| context?: CommentJsonldContext; | context?: CommentJsonldContext; | ||||
| readonly id?: string; | readonly id?: string; | ||||
| readonly type?: string; | readonly type?: string; | ||||
| partner: string | null; | |||||
| /** | |||||
| * ?PartnerApi | |||||
| */ | |||||
| partner: PartnerJsonld; | |||||
| readonly partnerName?: string | null; | readonly partnerName?: string | null; | ||||
| product: string | null; | |||||
| /** | |||||
| * ?ProductApi | |||||
| */ | |||||
| product: ProductJsonld; | |||||
| readonly productName?: string | null; | readonly productName?: string | null; | ||||
| readonly createdAt?: string | null; | readonly createdAt?: string | null; | ||||
| } | } | ||||
| @@ -22,6 +22,7 @@ export interface Post { | |||||
| readonly ownerName?: string | null; | readonly ownerName?: string | null; | ||||
| partner?: string | null; | partner?: string | null; | ||||
| readonly partnerName?: string | null; | readonly partnerName?: string | null; | ||||
| readonly partnerType?: Post.PartnerTypeEnum | null; | |||||
| product?: string | null; | product?: string | null; | ||||
| readonly productName?: string | null; | readonly productName?: string | null; | ||||
| contact?: string | null; | contact?: string | null; | ||||
| @@ -32,4 +33,14 @@ export interface Post { | |||||
| comments?: Array<Comment>; | comments?: Array<Comment>; | ||||
| readonly createdAt?: string | null; | readonly createdAt?: string | null; | ||||
| } | } | ||||
| export namespace Post { | |||||
| export type PartnerTypeEnum = 'customer' | 'supplier' | 'service' | 'null'; | |||||
| export const PartnerTypeEnum = { | |||||
| Customer: 'customer' as PartnerTypeEnum, | |||||
| Supplier: 'supplier' as PartnerTypeEnum, | |||||
| Service: 'service' as PartnerTypeEnum, | |||||
| Null: 'null' as PartnerTypeEnum | |||||
| }; | |||||
| } | |||||
| @@ -24,6 +24,7 @@ export interface PostJsonhal { | |||||
| readonly ownerName?: string | null; | readonly ownerName?: string | null; | ||||
| partner?: string | null; | partner?: string | null; | ||||
| readonly partnerName?: string | null; | readonly partnerName?: string | null; | ||||
| readonly partnerType?: PostJsonhal.PartnerTypeEnum | null; | |||||
| product?: string | null; | product?: string | null; | ||||
| readonly productName?: string | null; | readonly productName?: string | null; | ||||
| contact?: string | null; | contact?: string | null; | ||||
| @@ -34,4 +35,14 @@ export interface PostJsonhal { | |||||
| comments?: Array<CommentJsonhal>; | comments?: Array<CommentJsonhal>; | ||||
| readonly createdAt?: string | null; | readonly createdAt?: string | null; | ||||
| } | } | ||||
| export namespace PostJsonhal { | |||||
| export type PartnerTypeEnum = 'customer' | 'supplier' | 'service' | 'null'; | |||||
| export const PartnerTypeEnum = { | |||||
| Customer: 'customer' as PartnerTypeEnum, | |||||
| Supplier: 'supplier' as PartnerTypeEnum, | |||||
| Service: 'service' as PartnerTypeEnum, | |||||
| Null: 'null' as PartnerTypeEnum | |||||
| }; | |||||
| } | |||||
| @@ -26,6 +26,7 @@ export interface PostJsonld { | |||||
| readonly ownerName?: string | null; | readonly ownerName?: string | null; | ||||
| partner?: string | null; | partner?: string | null; | ||||
| readonly partnerName?: string | null; | readonly partnerName?: string | null; | ||||
| readonly partnerType?: PostJsonld.PartnerTypeEnum | null; | |||||
| product?: string | null; | product?: string | null; | ||||
| readonly productName?: string | null; | readonly productName?: string | null; | ||||
| contact?: string | null; | contact?: string | null; | ||||
| @@ -36,4 +37,14 @@ export interface PostJsonld { | |||||
| comments?: Array<CommentJsonld>; | comments?: Array<CommentJsonld>; | ||||
| readonly createdAt?: string | null; | readonly createdAt?: string | null; | ||||
| } | } | ||||
| export namespace PostJsonld { | |||||
| export type PartnerTypeEnum = 'customer' | 'supplier' | 'service' | 'null'; | |||||
| export const PartnerTypeEnum = { | |||||
| Customer: 'customer' as PartnerTypeEnum, | |||||
| Supplier: 'supplier' as PartnerTypeEnum, | |||||
| Service: 'service' as PartnerTypeEnum, | |||||
| Null: 'null' as PartnerTypeEnum | |||||
| }; | |||||
| } | |||||
| @@ -15,6 +15,7 @@ | |||||
| * | * | ||||
| */ | */ | ||||
| export interface SaleSummary { | export interface SaleSummary { | ||||
| userId?: number; | |||||
| owner?: string | null; | owner?: string | null; | ||||
| ownerName?: string | null; | ownerName?: string | null; | ||||
| turnover?: number | null; | turnover?: number | null; | ||||
| @@ -17,6 +17,7 @@ import { CommentJsonhalLinks } from './commentJsonhalLinks'; | |||||
| */ | */ | ||||
| export interface SaleSummaryJsonhal { | export interface SaleSummaryJsonhal { | ||||
| _links?: CommentJsonhalLinks; | _links?: CommentJsonhalLinks; | ||||
| userId?: number; | |||||
| owner?: string | null; | owner?: string | null; | ||||
| ownerName?: string | null; | ownerName?: string | null; | ||||
| turnover?: number | null; | turnover?: number | null; | ||||
| @@ -9,6 +9,7 @@ | |||||
| * https://openapi-generator.tech | * https://openapi-generator.tech | ||||
| * Do not edit the class manually. | * Do not edit the class manually. | ||||
| */ | */ | ||||
| import { CommentJsonldContext } from './commentJsonldContext'; | |||||
| /** | /** | ||||
| @@ -17,6 +18,8 @@ | |||||
| export interface SaleSummaryJsonld { | export interface SaleSummaryJsonld { | ||||
| readonly id?: string; | readonly id?: string; | ||||
| readonly type?: string; | readonly type?: string; | ||||
| context?: CommentJsonldContext; | |||||
| userId?: number; | |||||
| owner?: string | null; | owner?: string | null; | ||||
| ownerName?: string | null; | ownerName?: string | null; | ||||
| turnover?: number | null; | turnover?: number | null; | ||||
| @@ -9,6 +9,7 @@ | |||||
| * https://openapi-generator.tech | * https://openapi-generator.tech | ||||
| * Do not edit the class manually. | * Do not edit the class manually. | ||||
| */ | */ | ||||
| import { Product } from './product'; | |||||
| /** | /** | ||||
| @@ -17,7 +18,10 @@ | |||||
| export interface UserProduct { | export interface UserProduct { | ||||
| readonly user?: string | null; | readonly user?: string | null; | ||||
| readonly userName?: string | null; | readonly userName?: string | null; | ||||
| product: string | null; | |||||
| /** | |||||
| * ?ProductApi | |||||
| */ | |||||
| product: Product; | |||||
| readonly productName?: string | null; | readonly productName?: string | null; | ||||
| readonly createdAt?: string | null; | readonly createdAt?: string | null; | ||||
| readonly owner?: string | null; | readonly owner?: string | null; | ||||
| @@ -10,6 +10,7 @@ | |||||
| * Do not edit the class manually. | * Do not edit the class manually. | ||||
| */ | */ | ||||
| import { CommentJsonhalLinks } from './commentJsonhalLinks'; | import { CommentJsonhalLinks } from './commentJsonhalLinks'; | ||||
| import { ProductJsonhal } from './productJsonhal'; | |||||
| /** | /** | ||||
| @@ -19,7 +20,10 @@ export interface UserProductJsonhal { | |||||
| _links?: CommentJsonhalLinks; | _links?: CommentJsonhalLinks; | ||||
| readonly user?: string | null; | readonly user?: string | null; | ||||
| readonly userName?: string | null; | readonly userName?: string | null; | ||||
| product: string | null; | |||||
| /** | |||||
| * ?ProductApi | |||||
| */ | |||||
| product: ProductJsonhal; | |||||
| readonly productName?: string | null; | readonly productName?: string | null; | ||||
| readonly createdAt?: string | null; | readonly createdAt?: string | null; | ||||
| readonly owner?: string | null; | readonly owner?: string | null; | ||||
| @@ -10,6 +10,7 @@ | |||||
| * Do not edit the class manually. | * Do not edit the class manually. | ||||
| */ | */ | ||||
| import { CommentJsonldContext } from './commentJsonldContext'; | import { CommentJsonldContext } from './commentJsonldContext'; | ||||
| import { ProductJsonld } from './productJsonld'; | |||||
| /** | /** | ||||
| @@ -21,7 +22,10 @@ export interface UserProductJsonld { | |||||
| readonly type?: string; | readonly type?: string; | ||||
| readonly user?: string | null; | readonly user?: string | null; | ||||
| readonly userName?: string | null; | readonly userName?: string | null; | ||||
| product: string | null; | |||||
| /** | |||||
| * ?ProductApi | |||||
| */ | |||||
| product: ProductJsonld; | |||||
| readonly productName?: string | null; | readonly productName?: string | null; | ||||
| readonly createdAt?: string | null; | readonly createdAt?: string | null; | ||||
| readonly owner?: string | null; | readonly owner?: string | null; | ||||