Skip to content

Commit

Permalink
Update
Browse files Browse the repository at this point in the history
  • Loading branch information
Guhapriya01 committed Apr 4, 2024
1 parent 9da7e8e commit 989942f
Show file tree
Hide file tree
Showing 12 changed files with 101 additions and 80 deletions.
4 changes: 2 additions & 2 deletions app/components/nav-bar.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
<LinkTo @route="home">Home</LinkTo>
<LinkTo @route="library">Libraries</LinkTo>
<LinkTo @route="latest-books">Latest Arrivals</LinkTo>
<p>Books : {{this.booksReq}}</p>
<p>Library : {{this.libraryReq}}</p>
<p id="numBookReq">Books : {{this.booksReq}}</p>
<p id="numLibraryReq">Library : {{this.libraryReq}}</p>
<br>
<button class='buttonMode' type="button" {{on 'click' this.changeTheme}}>{{this.theme}}</button>
<hr>
Expand Down
9 changes: 9 additions & 0 deletions app/components/nav-bar.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,20 @@
import Component from '@glimmer/component';
import { inject as service } from '@ember/service';
import { action, set, get } from '@ember/object';
import $ from 'jquery';

export default class NavBarComponent extends Component {
@service data;
@service userPreference;

// constructor(){
// super(...arguments);
// fetch('/library').then(r=>r.json()).then(d=>{
// console.log(d);
// });

// }

get libraryReq() {
return this.data.libraryReq;
}
Expand Down
10 changes: 5 additions & 5 deletions app/routes/library/details.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@ export default class LibraryDetailsRoute extends Route {
@service data;
@service router;

model({ library_id }) {
async model({ library_id }) {
let url = '/libraries/' + library_id;
let lib = this.data.getData(url);
let data = await this.data.getData(url);

if (!lib) {
if (!data) {
this.router.transitionTo('not-found', 'notFound');
}
return lib;
return data.library;
}
}

Expand All @@ -23,4 +23,4 @@ export default class LibraryDetailsRoute extends Route {
// }
// });

// let lib = fetch(`/libraries/${library_id}`).then((response)=>response.json()).then((r)=> r.data)
// let lib = fetch(`/libraries/${library_id}`).then((response)=>response.json()).then((r)=> r.data)
6 changes: 5 additions & 1 deletion app/routes/library/details/books.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
import Route from '@ember/routing/route';

import { action } from '@ember/object';
export default class LibraryDetailsBooksRoute extends Route {
// @action
// bubbled(){
// console.log('bubbled from book');
// }
}
20 changes: 10 additions & 10 deletions app/routes/library/details/books/book.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,18 @@ export default class LibraryDetailsBooksBookRoute extends Route {
async model({ book_id }) {
let library_id = this.paramsFor('library.details').library_id;
let url = `/libraries/${library_id}/books/${book_id}`;
let book = await this.data.getData(url);
if (!book) {
let data = await this.data.getData(url);
if (!data) {
this.router.transitionTo('not-found', 'notfound');
}
return book;
return data.book;
}
}

// library.books.forEach(element => {
// if (element.id == book_id) {
// book = element;
// return
// }
// });
// let book = await fetch(`/books/${book_id}`).then((response) => response.json()).then((r) => r.data);
// library.books.forEach(element => {
// if (element.id == book_id) {
// book = element;
// return
// }
// });
// let book = await fetch(`/books/${book_id}`).then((response) => response.json()).then((r) => r.data);
10 changes: 5 additions & 5 deletions app/routes/library/details/books/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,13 @@ export default class LibraryDetailsBooksIndexRoute extends Route {
let s = params.sort;
let library_id = this.paramsFor('library.details').library_id;
let url = '/libraries/' + library_id + '/books';
let books = await this.data.getData(url);
let data = await this.data.getData(url);

return books.sort((a, b) => {
return data.books.sort((a, b) => {
if (s === 'asc') {
return a.attributes.name.localeCompare(b.attributes.name);
return a.name.localeCompare(b.name);
} else if (s === 'desc') {
return b.attributes.name.localeCompare(a.attributes.name);
return b.name.localeCompare(a.name);
} else {
return 0;
}
Expand All @@ -32,4 +32,4 @@ export default class LibraryDetailsBooksIndexRoute extends Route {
// else if(s === 'desc') return books.sortBy('name').reverse();
// else return books;
// let books = await fetch(`/libraries/${library_id}/books`).then((response)=>response.json()).then((r)=>r.data);
// let books = this.modelFor('library.details').books.data.slice();
// let books = this.modelFor('library.details').books.data.slice();
25 changes: 12 additions & 13 deletions app/routes/library/details/read-book.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,23 +22,22 @@ export default class LibraryDetailsReadBookRoute extends Route {
async model({ readbook_id }) {
let library_id = this.paramsFor('library.details').library_id;
let url = `/libraries/${library_id}/books/${readbook_id}`;
let book = this.data.getData(url);
let data = await this.data.getData(url);

if (!book) {
if (!data) {
this.router.transitionTo('not-found', 'notfound');
}
return book;
return data.book;
}
}

// let book;
// let library = this.modelFor('library.details');
// library.books.forEach(element => {
// if (element.id == readbook_id) {
// book = element;
// return
// }
// });

// let book;
// let library = this.modelFor('library.details');
// library.books.forEach(element => {
// if (element.id == readbook_id) {
// book = element;
// return
// }
// });

// let book = await fetch(`/books/${readbook_id}`).then((response)=>response.json()).then((r)=>r.data);
// let book = await fetch(`/books/${readbook_id}`).then((response)=>response.json()).then((r)=>r.data);
5 changes: 1 addition & 4 deletions app/routes/library/index.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
import Route from '@ember/routing/route';
import { inject as service } from "@ember/service";

export default class LibraryIndexRoute extends Route {
// @service('LibraryData') library;

model() {
let data = fetch('/libraries')
.then((response) => response.json())
.then((r) => r.data);
.then((r) => r.libraries);
return data;
}
}
57 changes: 28 additions & 29 deletions app/services/user-preference.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,37 +2,36 @@ import Service from '@ember/service';
import { tracked } from '@glimmer/tracking';

export default class UserPreferenceService extends Service {
@tracked theme;

@tracked theme;
constructor() {
super(...arguments);
let value = localStorage.getItem('theme');
this.theme = value ? value : 'light';
}

constructor(){
super(...arguments);
let value = localStorage.getItem("theme");
this.theme = value ? value : 'light';
}
setTheme(newTheme) {
localStorage.setItem('theme', newTheme);
this.theme = newTheme;

setTheme(newTheme) {
localStorage.setItem("theme",newTheme)
this.theme = newTheme;
// let date = new Date();
// seetting expiry date of 30 days
// date.setTime(date.getTime() + (30 * 24 * 60 * 60 * 1000));
// document.cookie = `theme=${newTheme};expires=${date.toUTCString()}`;
}

// let date = new Date();
// seetting expiry date of 30 days
// date.setTime(date.getTime() + (30 * 24 * 60 * 60 * 1000));
// document.cookie = `theme=${newTheme};expires=${date.toUTCString()}`;
}

// get theme() {
// // let cookieArr = document.cookie.split('; ');
// // let t = 'light';
// // if (cookieArr.length > 0) {
// // cookieArr.forEach((cookie) => {
// // let keyValue = cookie.split("=");
// // if (keyValue[0] == 'theme') {
// // t = keyValue[1];
// // }
// // })
// // }
// // return t;
// return localStorage.getItem("theme");
// }
// get theme() {
// // let cookieArr = document.cookie.split('; ');
// // let t = 'light';
// // if (cookieArr.length > 0) {
// // cookieArr.forEach((cookie) => {
// // let keyValue = cookie.split("=");
// // if (keyValue[0] == 'theme') {
// // t = keyValue[1];
// // }
// // })
// // }
// // return t;
// return localStorage.getItem("theme");
// }
}
9 changes: 5 additions & 4 deletions app/styles/app.css
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,17 @@
text-align: left;
}

.buttonMode{
.buttonMode {
border-radius: 12px;
padding: 9px;
margin: 10px;
width: 100px;
}

.buttonMode:hover{
.buttonMode:hover {
cursor: pointer;
}

a{
a {
color: #7b0930;
}
}
25 changes: 18 additions & 7 deletions mirage/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,12 @@ import {
discoverEmberDataModels,
// applyEmberDataSerializers,
} from 'ember-cli-mirage';
import { createServer } from 'miragejs';
import { Response, createServer } from 'miragejs';

export default function (config) {
let finalConfig = {
...config,
trackRequests: true,
// Remove discoverEmberDataModels if you do not want ember-cli-mirage to auto discover the ember models
models: {
...discoverEmberDataModels(config.store),
Expand All @@ -15,6 +16,7 @@ export default function (config) {
// uncomment to opt into ember-cli-mirage to auto discover ember serializers
// serializers: applyEmberDataSerializers(config.serializers),
routes,
// logging:false
};

return createServer(finalConfig);
Expand All @@ -29,24 +31,33 @@ function routes() {
let id = request.params.id;
let bookIds = schema.libraries.find(id).attrs.bookIds;
let books = schema.books.find(bookIds);

return this.serialize(books);
return books;
});

this.get('/libraries/:id/books/:book_id', function (schema, request) {
let id = request.params.id;
let book_id = request.params.book_id;
let bookIds = schema.libraries.find(id).attrs.bookIds;

let book;
bookIds.forEach(bookId => {
if(bookId==book_id){
book = schema.books.find(book_id);
bookIds.forEach((bookId) => {
if (bookId == book_id) {
book = schema.books.find(book_id);
}
});
return this.serialize(book);

if (!book) {
return new Response(500, {}, { error: 'Book not found' });
}
return book;
});

this.get('books/:id');

this.passthrough('https://www.googleapis.com/books/v1/volumes');

// this.passthrough(request=>{
// // console.log(request);
// return request.statusText != 'OK';
// })
}
1 change: 1 addition & 0 deletions tests/acceptance/book-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ module('Acceptance | book', function (hooks) {
await visit('/book');
// logHelper('hello');
// await this.pauseTest();

assert.strictEqual(currentURL(), '/book');
});
});

0 comments on commit 989942f

Please sign in to comment.