diff --git a/package-lock.json b/package-lock.json index 37097a9..8da3987 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3192,12 +3192,12 @@ "dev": true }, "core-js-compat": { - "version": "3.16.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.16.2.tgz", - "integrity": "sha512-4lUshXtBXsdmp8cDWh6KKiHUg40AjiuPD3bOWkNVsr1xkAhpUqCjaZ8lB1bKx9Gb5fXcbRbFJ4f4qpRIRTuJqQ==", + "version": "3.16.3", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.16.3.tgz", + "integrity": "sha512-A/OtSfSJQKLAFRVd4V0m6Sep9lPdjD8bpN8v3tCCGwE0Tmh0hOiVDm9tw6mXmWOKOSZIyr3EkywPo84cJjGvIQ==", "dev": true, "requires": { - "browserslist": "^4.16.7", + "browserslist": "^4.16.8", "semver": "7.0.0" }, "dependencies": { @@ -6974,9 +6974,9 @@ } }, "needle": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.8.0.tgz", - "integrity": "sha512-ZTq6WYkN/3782H1393me3utVYdq2XyqNUFBsprEE3VMAT0+hP/cItpnITpqsY6ep2yeFE4Tqtqwc74VqUlUYtw==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.0.tgz", + "integrity": "sha512-UBLC4P8w9to3rAhWOQYXIXzTUio9yVnDzIeKxfGbF+Hngy+2bXTqqFK+6nF42EAQKfJdezXK6vzMsefUa1Y3ag==", "dev": true, "optional": true, "requires": { @@ -10326,9 +10326,9 @@ } }, "sockjs-client": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.1.tgz", - "integrity": "sha512-VnVAb663fosipI/m6pqRXakEOw7nvd7TUgdr3PlR/8V2I95QIdwT8L4nMxhyU8SmDBHYXU1TOElaKOmKLfYzeQ==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.2.tgz", + "integrity": "sha512-ZzRxPBISQE7RpzlH4tKJMQbHM9pabHluk0WBaxAQ+wm/UieeBVBou0p4wVnSQGN9QmpAZygQ0cDIypWuqOFmFQ==", "dev": true, "requires": { "debug": "^3.2.6", @@ -10336,7 +10336,7 @@ "faye-websocket": "^0.11.3", "inherits": "^2.0.4", "json3": "^3.3.3", - "url-parse": "^1.5.1" + "url-parse": "^1.5.3" }, "dependencies": { "debug": { diff --git a/package.json b/package.json index 64edb14..bff58d7 100644 --- a/package.json +++ b/package.json @@ -19,11 +19,11 @@ "@angular/platform-browser-dynamic": "~12.2.0", "@angular/router": "~12.2.0", "rxjs": "~6.6.0", - "tslib": "^2.3.0", + "tslib": "^2.3.1", "zone.js": "~0.11.4" }, "devDependencies": { - "@angular-devkit/build-angular": "~12.2.2", + "@angular-devkit/build-angular": "^12.2.2", "@angular/cli": "~12.2.2", "@angular/compiler-cli": "~12.2.0", "@types/jasmine": "~3.8.0", diff --git a/src/app/app.component.html b/src/app/app.component.html index 1b3c70a..d5c3642 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -3,4 +3,13 @@
{{recipe.ingredients}}
{{recipe.instructions}}
--> - + + + + + + + + + + diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 3fa2be5..01a8d1f 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -2,6 +2,9 @@ import { HttpErrorResponse } from '@angular/common/http'; import { AfterViewInit, Component, ElementRef, OnInit } from '@angular/core'; import { Recipe } from './recipe'; import { RecipeService } from './services/recipe.service'; +import { UserService } from './services/user.service'; +import { BlogPostService } from './services/blog-post.service'; +import { TagService } from './services/tag.service'; @Component({ selector: 'app-root', @@ -13,7 +16,12 @@ export class AppComponent implements OnInit, AfterViewInit{ // public employees: Employee[]; public recipes: Recipe[]; - constructor(/*private empoloyeeService: EmployeeService,*/ private recipeService: RecipeService, private elementRef: ElementRef){} + constructor( + private recipeService: RecipeService, + private userService: UserService, + private blogPostService: BlogPostService, + private tagService: TagService, + private elementRef: ElementRef){} ngOnInit() { //this.getEmployees(); @@ -21,7 +29,7 @@ export class AppComponent implements OnInit, AfterViewInit{ } ngAfterViewInit(){ - this.elementRef.nativeElement.ownerDocument.body.style.backgroundColor = "#C0CFEA"; + this.elementRef.nativeElement.ownerDocument.body.style.backgroundColor = "#7ea381"; } // public getEmployees(): void { diff --git a/src/app/app.module.ts b/src/app/app.module.ts index e94dc4c..14eb289 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -9,9 +9,17 @@ import { RecipeComponent } from './components/recipe/recipe.component'; import { LoginComponent } from './components/login/login.component'; import { HeaderComponent } from './components/header/header.component'; import { RouterModule, Routes } from '@angular/router'; +import { AboutComponent } from './components/about/about.component'; +import { ContactComponent } from './components/contact/contact.component'; +import { BlogsComponent } from './components/blogs/blogs.component'; +import { ThankyouComponent } from './components/thankyou/thankyou.component'; +import { SidebarComponent } from './components/sidebar/sidebar.component'; const approutes: Routes = [ - {path: '', component: AppComponent} + {path: '', component: LoginComponent}, + {path: 'about', component: AboutComponent}, + {path: 'thankyou', component: ThankyouComponent}, + {path: 'contact', component: ContactComponent} ] @NgModule({ @@ -20,12 +28,17 @@ const approutes: Routes = [ // EmployeeComponent, RecipeComponent, LoginComponent, - HeaderComponent + HeaderComponent, + AboutComponent, + ContactComponent, + BlogsComponent, + ThankyouComponent, + SidebarComponent ], imports: [ BrowserModule, - HttpClientModule//, - //RouterModule.forRoot(approutes) + HttpClientModule, + RouterModule.forRoot(approutes) ], providers: [/*EmployeeService*/], bootstrap: [AppComponent] diff --git a/src/app/blogPost.ts b/src/app/blogPost.ts new file mode 100644 index 0000000..008591b --- /dev/null +++ b/src/app/blogPost.ts @@ -0,0 +1,5 @@ +export interface BlogPost { + id: number; + title: string; + imageUrl: string; +} \ No newline at end of file diff --git a/src/app/components/about/about.component.css b/src/app/components/about/about.component.css new file mode 100644 index 0000000..3a91c6b --- /dev/null +++ b/src/app/components/about/about.component.css @@ -0,0 +1,52 @@ +.banner { + height: 500px; + background: url(https://c8.alamy.com/comp/TB2Y8M/border-leaves-of-fern-and-tropical-friuts-orange-lemon-lime-on-punchy-yellow-top-view-and-space-for-text-summer-travel-concept-TB2Y8M.jpg); + background-size: cover; +} + +h1 { + text-align: center; + padding-top: 8%; + margin-top: -0.5%; + font-size: 400%; + font-family: 'UnPenheulim', sans-serif; + text-shadow: -5px 0px 10px rgb(255, 250, 244); +} + +body { + background-color: rgb(255, 250, 244); + margin-top: -12%; + margin-left: 13%; + margin-right: 13%; +} + +.aboutSection { + text-align: center; + margin-top: 7%; + margin-bottom: 4%; + font-size: large; + padding-bottom: 3%; + font-family: 'UnJamoBatang', sans-serif; +} + +.border-top { + position: relative; + bottom: -30px; + width: 60%; + left: 20%; + right: 10%; + border: 3px; + border-color: black; + border-style: solid; +} + +.border-bottom { + position: relative; + top: -30px; + width: 60%; + left: 20%; + right: 10%; + border: 3px; + border-color: black; + border-style: solid; +} diff --git a/src/app/components/about/about.component.html b/src/app/components/about/about.component.html new file mode 100644 index 0000000..e8a9925 --- /dev/null +++ b/src/app/components/about/about.component.html @@ -0,0 +1,24 @@ + + + + +
+
+

Sublime Kitchen was created in 2021.

+

Our blog is dedicated to bringing people who love food together in one place.

+

However, not just anyone can create a Sublime Kitchen user account.

+

There is a strict vetting process, including a background check, an

+

assessment, and one or more physical challenges.


+

Many have been killed, maimed, or seriously injured in this process,

+

which has been fondly named "The Hunger Games."

+

Those that make it through, however, can expect a friendly, cooking oriented

+

community filled with people who love food and cooking, working together,

+

and sharing their kitchen secrets.


+ +
+
+ diff --git a/src/app/components/about/about.component.spec.ts b/src/app/components/about/about.component.spec.ts new file mode 100644 index 0000000..0e0d812 --- /dev/null +++ b/src/app/components/about/about.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AboutComponent } from './about.component'; + +describe('AboutComponent', () => { + let component: AboutComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ AboutComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(AboutComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/about/about.component.ts b/src/app/components/about/about.component.ts new file mode 100644 index 0000000..e4ae6d9 --- /dev/null +++ b/src/app/components/about/about.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-about', + templateUrl: './about.component.html', + styleUrls: ['./about.component.css'] +}) +export class AboutComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/src/app/components/blogs/blogs.component.css b/src/app/components/blogs/blogs.component.css new file mode 100644 index 0000000..f854973 --- /dev/null +++ b/src/app/components/blogs/blogs.component.css @@ -0,0 +1,3 @@ +#postTypes div{ + +} \ No newline at end of file diff --git a/src/app/components/blogs/blogs.component.html b/src/app/components/blogs/blogs.component.html new file mode 100644 index 0000000..1ac1f21 --- /dev/null +++ b/src/app/components/blogs/blogs.component.html @@ -0,0 +1,17 @@ + +
+
+ +
+
+
+ + +
+ + + + + + +
\ No newline at end of file diff --git a/src/app/components/blogs/blogs.component.spec.ts b/src/app/components/blogs/blogs.component.spec.ts new file mode 100644 index 0000000..f86ff1d --- /dev/null +++ b/src/app/components/blogs/blogs.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { BlogsComponent } from './blogs.component'; + +describe('BlogsComponent', () => { + let component: BlogsComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ BlogsComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(BlogsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/blogs/blogs.component.ts b/src/app/components/blogs/blogs.component.ts new file mode 100644 index 0000000..1abebcf --- /dev/null +++ b/src/app/components/blogs/blogs.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-blogs', + templateUrl: './blogs.component.html', + styleUrls: ['./blogs.component.css'] +}) +export class BlogsComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/src/app/components/contact/contact.component.css b/src/app/components/contact/contact.component.css new file mode 100644 index 0000000..4c88415 --- /dev/null +++ b/src/app/components/contact/contact.component.css @@ -0,0 +1,8 @@ +.rightSide { + /* display: inline-block; */ + float: right; +} + +.contactForm { + display: inline-block; +} \ No newline at end of file diff --git a/src/app/components/contact/contact.component.html b/src/app/components/contact/contact.component.html new file mode 100644 index 0000000..b1b2af6 --- /dev/null +++ b/src/app/components/contact/contact.component.html @@ -0,0 +1,19 @@ +
+ Contact us +
+
+
+
+
+

+
+

+
+
+ +
+
+
+ +
+ diff --git a/src/app/components/contact/contact.component.spec.ts b/src/app/components/contact/contact.component.spec.ts new file mode 100644 index 0000000..2f386db --- /dev/null +++ b/src/app/components/contact/contact.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ContactComponent } from './contact.component'; + +describe('ContactComponent', () => { + let component: ContactComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ ContactComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(ContactComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/contact/contact.component.ts b/src/app/components/contact/contact.component.ts new file mode 100644 index 0000000..bdb4bda --- /dev/null +++ b/src/app/components/contact/contact.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-contact', + templateUrl: './contact.component.html', + styleUrls: ['./contact.component.css'] +}) +export class ContactComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/src/app/components/header/header.component.css b/src/app/components/header/header.component.css index e69de29..43f8514 100644 --- a/src/app/components/header/header.component.css +++ b/src/app/components/header/header.component.css @@ -0,0 +1,7 @@ +#navigation ul{ + list-style: none; +} + +#navigation li{ + display: inline; +} \ No newline at end of file diff --git a/src/app/components/header/header.component.html b/src/app/components/header/header.component.html index 4f5a95d..c3810d7 100644 --- a/src/app/components/header/header.component.html +++ b/src/app/components/header/header.component.html @@ -1 +1,10 @@ -

header works!

+
+

{{ title }}

+ +
\ No newline at end of file diff --git a/src/app/components/header/header.component.ts b/src/app/components/header/header.component.ts index a093fe7..ef60175 100644 --- a/src/app/components/header/header.component.ts +++ b/src/app/components/header/header.component.ts @@ -6,6 +6,7 @@ import { Component, OnInit } from '@angular/core'; styleUrls: ['./header.component.css'] }) export class HeaderComponent implements OnInit { +title: string = 'Food Blog'; constructor() { } diff --git a/src/app/components/login/login.component.css b/src/app/components/login/login.component.css index 501eff4..e45e981 100644 --- a/src/app/components/login/login.component.css +++ b/src/app/components/login/login.component.css @@ -1,20 +1,47 @@ -@font-face { - font-family: liberation-sans; - src: url(http://fonts.cdnfonts.com/css/liberation-sans) format("truetype"); - } +body { + height: 70vh; + margin-top: 3%; + margin-bottom: 3%; + margin-left: -1%; + margin-right: -1%; + padding-top: 3%; + padding-bottom: 3%; + background-image: url(https://c.stocksy.com/a/QDR400/z9/1057932.jpg); + background-size: cover; +} + +.login { + height: 22px; + width: 12%; +} + +.login-button { + margin-top: 0.25%; + height: 22px; + width: 5%; +} .loginForm { + color: rgb(250, 253, 237); text-align: center; - margin-top:5% + margin-top: 4% + } h1 { text-align: center; - margin-top:20%; - font-family: 'Liberation Sans', sans-serif; + margin-top: 9%; + color: rgb(250, 253, 237); + font-size: 600%; + font-family: 'UnJamoBatang', sans-serif; + text-shadow: 0px -5px 20px black; } -label{ +label { position: relative; - right: 2%; + right: 4%; + font-size: 100%; + color: rgb(250, 253, 237); + text-shadow: 0px 0px 10px black; + font-family: 'UnJamoBatang', sans-serif; } \ No newline at end of file diff --git a/src/app/components/login/login.component.html b/src/app/components/login/login.component.html index cda5cda..a4f7bc3 100644 --- a/src/app/components/login/login.component.html +++ b/src/app/components/login/login.component.html @@ -1,10 +1,16 @@ -

Food Blog

+ + +

Sublime Kitchen


-

+


-

- +

+
+ + diff --git a/src/app/components/recipe/recipe.component.html b/src/app/components/recipe/recipe.component.html index 8cab4a7..4f24c14 100644 --- a/src/app/components/recipe/recipe.component.html +++ b/src/app/components/recipe/recipe.component.html @@ -1 +1,18 @@ -

recipe works!

+ +
+ diff --git a/src/app/components/recipe/recipe.component.ts b/src/app/components/recipe/recipe.component.ts index 27b5706..f92c82a 100644 --- a/src/app/components/recipe/recipe.component.ts +++ b/src/app/components/recipe/recipe.component.ts @@ -1,5 +1,6 @@ import { Component, OnInit } from '@angular/core'; + @Component({ selector: 'app-recipe', templateUrl: './recipe.component.html', diff --git a/src/app/components/sidebar/sidebar.component.css b/src/app/components/sidebar/sidebar.component.css new file mode 100644 index 0000000..9ca19d4 --- /dev/null +++ b/src/app/components/sidebar/sidebar.component.css @@ -0,0 +1,3 @@ +#sidebar div{ + display: inline-block; +} \ No newline at end of file diff --git a/src/app/components/sidebar/sidebar.component.html b/src/app/components/sidebar/sidebar.component.html new file mode 100644 index 0000000..6c36b5a --- /dev/null +++ b/src/app/components/sidebar/sidebar.component.html @@ -0,0 +1,11 @@ + + + \ No newline at end of file diff --git a/src/app/components/sidebar/sidebar.component.spec.ts b/src/app/components/sidebar/sidebar.component.spec.ts new file mode 100644 index 0000000..1f932e2 --- /dev/null +++ b/src/app/components/sidebar/sidebar.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { SidebarComponent } from './sidebar.component'; + +describe('SidebarComponent', () => { + let component: SidebarComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ SidebarComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(SidebarComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/sidebar/sidebar.component.ts b/src/app/components/sidebar/sidebar.component.ts new file mode 100644 index 0000000..a9b4922 --- /dev/null +++ b/src/app/components/sidebar/sidebar.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-sidebar', + templateUrl: './sidebar.component.html', + styleUrls: ['./sidebar.component.css'] +}) +export class SidebarComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/src/app/components/thankyou/thankyou.component.css b/src/app/components/thankyou/thankyou.component.css new file mode 100644 index 0000000..e69de29 diff --git a/src/app/components/thankyou/thankyou.component.html b/src/app/components/thankyou/thankyou.component.html new file mode 100644 index 0000000..f4e6932 --- /dev/null +++ b/src/app/components/thankyou/thankyou.component.html @@ -0,0 +1,16 @@ + +
+

Thank you for your feedback!

+

Sublime Kitchen is committed to responding to each user in a timely manner.

+

If you do not hear back from us soon, like, say....I dunno.....3 weeks? Give or take?

+

Whatever, just don't like, try to submit more feedback.


+

Do you know how annoying that is? Like, we have lives. We don't just sit here all day

+

and read your dumb feedback. I swear to God, everyone thinks their complaint or compliment

+

is the most important, and if we don't get back to them soon enough, they're all -

+

"Oh, you didn't respond back, don't you care about your users?"


+

No, I don't care about no user! You don't pay me! Get off my back, this site is free!

+

You know damn well you don't watch the ads, so we don't even get paid half the time.

+

But that doesn't stop you from submitting your dumb recipe for boiled clams,

+

or whatever the hell it is you people are out there making.

+
+ \ No newline at end of file diff --git a/src/app/components/thankyou/thankyou.component.spec.ts b/src/app/components/thankyou/thankyou.component.spec.ts new file mode 100644 index 0000000..ffc0e72 --- /dev/null +++ b/src/app/components/thankyou/thankyou.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ThankyouComponent } from './thankyou.component'; + +describe('ThankyouComponent', () => { + let component: ThankyouComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ ThankyouComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(ThankyouComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/thankyou/thankyou.component.ts b/src/app/components/thankyou/thankyou.component.ts new file mode 100644 index 0000000..e25786d --- /dev/null +++ b/src/app/components/thankyou/thankyou.component.ts @@ -0,0 +1,16 @@ +import { Component, OnInit } from '@angular/core'; +import { HeaderComponent } from '../header/header.component'; + +@Component({ + selector: 'app-thankyou', + templateUrl: './thankyou.component.html', + styleUrls: ['./thankyou.component.css'] +}) +export class ThankyouComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/src/app/services/blog-post.service.spec.ts b/src/app/services/blog-post.service.spec.ts new file mode 100644 index 0000000..dae4ceb --- /dev/null +++ b/src/app/services/blog-post.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { BlogPostService } from './blog-post.service'; + +describe('BlogPostService', () => { + let service: BlogPostService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(BlogPostService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/services/blog-post.service.ts b/src/app/services/blog-post.service.ts new file mode 100644 index 0000000..9daa869 --- /dev/null +++ b/src/app/services/blog-post.service.ts @@ -0,0 +1,30 @@ +import { Injectable } from '@angular/core'; +import { Observable } from 'rxjs'; +import { HttpClient } from '@angular/common/http' +import { environment } from 'src/environments/environment'; +import { BlogPost } from '../blogPost'; + +@Injectable({ + providedIn: 'root' +}) +export class BlogPostService { + private apiServerUrl = environment.apiBaseUrl; + + constructor(private http: HttpClient) { } + + public getRecipes(): Observable { + return this.http.get(`${this.apiServerUrl}/blogPostController/read`); + } + + public addRecipe(blogPost: BlogPost): Observable { + return this.http.post(`${this.apiServerUrl}/blogPostController/create`, blogPost) + } + + public updateRecipe(blogPost: BlogPost, blogPostId: number): Observable { + return this.http.put(`${this.apiServerUrl}/blogPostController/update/${blogPostId}`, blogPost); + } + + public deleteRecipe(blogPostId: number) : Observable { + return this.http.delete(`${this.apiServerUrl}/blogPostController/delete/${blogPostId}`); + } +} diff --git a/src/app/services/tag.service.spec.ts b/src/app/services/tag.service.spec.ts new file mode 100644 index 0000000..f091e93 --- /dev/null +++ b/src/app/services/tag.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { TagService } from './tag.service'; + +describe('TagService', () => { + let service: TagService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(TagService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/services/tag.service.ts b/src/app/services/tag.service.ts new file mode 100644 index 0000000..d538ec8 --- /dev/null +++ b/src/app/services/tag.service.ts @@ -0,0 +1,30 @@ +import { Injectable } from '@angular/core'; +import { Observable } from 'rxjs'; +import { HttpClient } from '@angular/common/http' +import { environment } from 'src/environments/environment'; +import { Tag } from '../tag'; + +@Injectable({ + providedIn: 'root' +}) +export class TagService { + private apiServerUrl = environment.apiBaseUrl; + + constructor(private http: HttpClient) { } + + public getRecipes(): Observable { + return this.http.get(`${this.apiServerUrl}/recipeController/read`); + } + + public addRecipe(tag: Tag): Observable { + return this.http.post(`${this.apiServerUrl}/recipeController/create`, tag) + } + + public updateRecipe(tag: Tag, tagId: number): Observable { + return this.http.put(`${this.apiServerUrl}/recipeController/update/${tagId}`, tag); + } + + public deleteRecipe(tagId: number) : Observable { + return this.http.delete(`${this.apiServerUrl}/recipeController/delete/${tagId}`); + } +} diff --git a/src/app/services/user.service.spec.ts b/src/app/services/user.service.spec.ts new file mode 100644 index 0000000..3f804c9 --- /dev/null +++ b/src/app/services/user.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { UserService } from './user.service'; + +describe('UserService', () => { + let service: UserService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(UserService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/services/user.service.ts b/src/app/services/user.service.ts new file mode 100644 index 0000000..eeefdeb --- /dev/null +++ b/src/app/services/user.service.ts @@ -0,0 +1,30 @@ +import { Injectable } from '@angular/core'; +import { Observable } from 'rxjs'; +import { HttpClient } from '@angular/common/http'; +import { environment } from 'src/environments/environment'; +import { User } from '../user'; + +@Injectable({ + providedIn: 'root' +}) +export class UserService { + private apiServerUrl = environment.apiBaseUrl; + + constructor(private http: HttpClient) { } + + public getRecipes(): Observable { + return this.http.get(`${this.apiServerUrl}/userController/read`); + } + + public addRecipe(user: User): Observable { + return this.http.post(`${this.apiServerUrl}/userController/create`, user) + } + + public updateRecipe(user: User, userId: number): Observable { + return this.http.put(`${this.apiServerUrl}/userController/update/${userId}`, user); + } + + public deleteRecipe(userId: number) : Observable { + return this.http.delete(`${this.apiServerUrl}/userController/delete/${userId}`); + } +} diff --git a/src/app/tag.ts b/src/app/tag.ts new file mode 100644 index 0000000..1436052 --- /dev/null +++ b/src/app/tag.ts @@ -0,0 +1,4 @@ +export interface Tag { + id: number; + name: string; +} \ No newline at end of file diff --git a/src/app/user.ts b/src/app/user.ts new file mode 100644 index 0000000..fccb0e9 --- /dev/null +++ b/src/app/user.ts @@ -0,0 +1,5 @@ +export interface User { + id: number; + name: string; + password: string; +} \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index 12fb7bd..d22b443 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -15,7 +15,7 @@ "moduleResolution": "node", "importHelpers": true, "target": "es2017", - "module": "es2020", + "module": "es2015", "lib": [ "es2018", "dom"