From 202f9ec2d250f00517d3fb827e8954e8b576070f Mon Sep 17 00:00:00 2001 From: amalieur <amalieur@stud.ntnu.no> Date: Wed, 7 Apr 2021 12:19:57 +0200 Subject: [PATCH] Issue: Admin category (#20) --- client/src/app/app-routing.module.ts | 5 +++- client/src/app/app.module.ts | 4 ++- .../admin-category.component.html | 1 + .../admin-category.component.scss | 0 .../admin-category.component.spec.ts | 25 +++++++++++++++++++ .../admin-category.component.ts | 15 +++++++++++ client/src/app/posts/post.service.ts | 23 +++++++++++++++++ 7 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 client/src/app/categories/admin-category/admin-category.component.html create mode 100644 client/src/app/categories/admin-category/admin-category.component.scss create mode 100644 client/src/app/categories/admin-category/admin-category.component.spec.ts create mode 100644 client/src/app/categories/admin-category/admin-category.component.ts diff --git a/client/src/app/app-routing.module.ts b/client/src/app/app-routing.module.ts index c0d5aee..bb9568b 100644 --- a/client/src/app/app-routing.module.ts +++ b/client/src/app/app-routing.module.ts @@ -7,6 +7,7 @@ import { UserRegistrationFormComponent } from './users/user-registration-form/us import { UserLoginFormComponent } from './users/user-login-form/user-login-form.component'; import { UserProfileComponent } from './users/user-profile/user-profile.component'; import { UserGuestProfileComponent } from './users/user-guest-profile/user-guest-profile.component'; +import { AdminCategoryComponent} from './categories/admin-category/admin-category.component'; const routes: Routes = [ { path: 'annonse/ny', component: PostFormComponent }, @@ -17,7 +18,9 @@ const routes: Routes = [ { path: 'user/:id', component: UserGuestProfileComponent }, { path: 'profile', component: UserProfileComponent }, { path: 'register', component: UserRegistrationFormComponent }, - { path: 'login', component: UserLoginFormComponent } + { path: 'login', component: UserLoginFormComponent }, + + { path: 'admin/category', component: AdminCategoryComponent } ]; @NgModule({ diff --git a/client/src/app/app.module.ts b/client/src/app/app.module.ts index 9b89086..24d3015 100644 --- a/client/src/app/app.module.ts +++ b/client/src/app/app.module.ts @@ -9,6 +9,7 @@ import { PostModule } from './posts/post.module'; import { UserModule } from './users/user.module'; import { AuthModule } from './authentication/auth.module'; import { SharedModule } from './shared/shared.module'; +import { AdminCategoryComponent } from './categories/admin-category/admin-category.component'; export function tokenGetter() { return localStorage.getItem("token"); @@ -16,7 +17,8 @@ export function tokenGetter() { @NgModule({ declarations: [ - AppComponent + AppComponent, + AdminCategoryComponent ], imports: [ BrowserModule, diff --git a/client/src/app/categories/admin-category/admin-category.component.html b/client/src/app/categories/admin-category/admin-category.component.html new file mode 100644 index 0000000..bdbf67b --- /dev/null +++ b/client/src/app/categories/admin-category/admin-category.component.html @@ -0,0 +1 @@ +<p>admin-category works!</p> diff --git a/client/src/app/categories/admin-category/admin-category.component.scss b/client/src/app/categories/admin-category/admin-category.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/client/src/app/categories/admin-category/admin-category.component.spec.ts b/client/src/app/categories/admin-category/admin-category.component.spec.ts new file mode 100644 index 0000000..7797ede --- /dev/null +++ b/client/src/app/categories/admin-category/admin-category.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AdminCategoryComponent } from './admin-category.component'; + +describe('AdminCategoryComponent', () => { + let component: AdminCategoryComponent; + let fixture: ComponentFixture<AdminCategoryComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ AdminCategoryComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(AdminCategoryComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/client/src/app/categories/admin-category/admin-category.component.ts b/client/src/app/categories/admin-category/admin-category.component.ts new file mode 100644 index 0000000..526d7de --- /dev/null +++ b/client/src/app/categories/admin-category/admin-category.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-admin-category', + templateUrl: './admin-category.component.html', + styleUrls: ['./admin-category.component.scss'] +}) +export class AdminCategoryComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/client/src/app/posts/post.service.ts b/client/src/app/posts/post.service.ts index 63ea702..5a90bf8 100644 --- a/client/src/app/posts/post.service.ts +++ b/client/src/app/posts/post.service.ts @@ -104,7 +104,30 @@ export class PostService { private add_post(post: Post) { return this.http.post(this.postUrl, post.serialize()); } + /** + * Adds category to database + */ + addCategory(category: Category): Promise<string> { + return new Promise<string>( + (resolve, reject) => { + this.add_category(category).subscribe((data: any) => { + try { + resolve(data.status); + } catch (err: any) { + reject(err); + } + }, + (err: any) => { + console.log(err.message); + reject(err); + }); + } + ); + } + private add_category(category: Category) { + return this.http.post(this.categoryUrl, category.serialize()); + } /** * Get all categories from database. -- GitLab