src/app/services/db-connection.service.ts
constructor(http: HttpClient)
|
||||||
Defined in src/app/services/db-connection.service.ts:13
|
||||||
Parameters :
|
cancelListing |
cancelListing(id: number, userToken: string)
|
cancel listing
Returns :
any
http response promise |
cancelTransaction | ||||||||||||
cancelTransaction(transactionID: number, userToken: string)
|
||||||||||||
cancels transaction (doesn't delete)
Parameters :
Returns :
any
http response promise |
changePassword | ||||||||||||||||
changePassword(oldPassword: string, newPassword: string, userToken: string)
|
||||||||||||||||
Defined in src/app/services/db-connection.service.ts:94
|
||||||||||||||||
change password
Parameters :
Returns :
any
http response promise |
confirmPayment | ||||||||||||
confirmPayment(transactionID: number, userToken: string)
|
||||||||||||
confirm payment of transaction
Parameters :
Returns :
any
http response promise |
createCategory | ||||||
createCategory(fields: object)
|
||||||
create category @field name (required) @field type
Parameters :
Returns :
any
http response promise |
createListing | ||||||||||||
createListing(userToken: string, fields: Object)
|
||||||||||||
create listing @field name @field description @field availableAssets @field date @field price @field picture: image in base64 format @field location
Parameters :
Returns :
any
http response promise |
createProperty |
createProperty(company: string, property: string)
|
Returns :
any
|
createTransaction |
createTransaction(userToken: string, fields: Object)
|
create transaction @field listingID @field numberOfAssets
Returns :
any
http response promise |
deleteCategory | ||||||||
deleteCategory(name: string)
|
||||||||
delete category
Parameters :
Returns :
any
http response promise |
deleteCategoryType | ||||||||
deleteCategoryType(type: string)
|
||||||||
delete categories with type
Parameters :
Returns :
any
http response promise |
deleteProperty |
deleteProperty(company: string, property: string)
|
Returns :
any
|
Async executeQuery | ||||||
executeQuery(query: string)
|
||||||
Parameters :
Returns :
unknown
|
getAllListings |
getAllListings()
|
get all listings
Returns :
any
http response promise |
getCategories |
getCategories()
|
Returns :
any
|
getCompanies |
getCompanies()
|
Returns :
any
|
getListing | ||||||||
getListing(id: number)
|
||||||||
get listingdata
Parameters :
Returns :
any
http response promise |
getListingReviews | ||||||
getListingReviews(listingID: number)
|
||||||
get all reviews on listing
Parameters :
Returns :
any
http response promise |
getListingTransactions | ||||||||||||
getListingTransactions(listingID: number, userToken: string)
|
||||||||||||
get all transactions on a given listing
Parameters :
Returns :
any
http response promise |
getProfilePicture | ||||||||
getProfilePicture(userID: number)
|
||||||||
Defined in src/app/services/db-connection.service.ts:83
|
||||||||
get profile picture
Parameters :
Returns :
any
http response promise |
getProperties |
getProperties()
|
Returns :
any
|
getSelectedCompany |
getSelectedCompany()
|
Returns :
any
|
getTaxonomy |
getTaxonomy()
|
Returns :
any
|
getTokenHeader | ||||||
getTokenHeader(token: string)
|
||||||
Defined in src/app/services/db-connection.service.ts:19
|
||||||
Parameters :
Returns :
any
|
getUserData |
getUserData(id: number, userToken: string)
|
Defined in src/app/services/db-connection.service.ts:56
|
get userdata
Returns :
any
http response promise |
getUserListings | ||||||||
getUserListings(userId: number)
|
||||||||
get all listings made by given user
Parameters :
Returns :
any
http response promise |
getUserNotifications | ||||||||
getUserNotifications(userToken: string)
|
||||||||
// get all notifications from user
Parameters :
Returns :
any
http response promise |
getUserReviews | ||||||||
getUserReviews(userID: number)
|
||||||||
get all reviews on user
Parameters :
Returns :
any
http response promise |
getUserTransactions | ||||||||
getUserTransactions(userToken: string)
|
||||||||
get all transactions made by given user
Parameters :
Returns :
any
http response promise |
markNotificationAsViewed | ||||||||||||
markNotificationAsViewed(notificationID: number, userToken: string)
|
||||||||||||
mark notification as viewed
Parameters :
Returns :
any
http response promise |
postListing | ||||||||||||||||
postListing(id: number, userToken: string, fields: Object)
|
||||||||||||||||
update listingdata @field name @field description @field availableAssets @field date @field price @field picture: image in base64 format @field location
Parameters :
Returns :
any
http response promise |
postReview | ||||||||||||||||
postReview(userToken: string, transactionID: number, fields: object)
|
||||||||||||||||
post a review @field comment @field score [1-5]
Parameters :
Returns :
any
http response promise |
postUserData | ||||||||||||||||
postUserData(id: number, userToken: string, fields: Object)
|
||||||||||||||||
Defined in src/app/services/db-connection.service.ts:74
|
||||||||||||||||
update userdata @field firstName @field lastName @field email @field gender @field address @field birthDate @field phoneNumber
Parameters :
Returns :
any
http response promise |
signIn |
signIn(login: string, password: string)
|
Defined in src/app/services/db-connection.service.ts:29
|
sign user in
Returns :
any
http response promise |
signUp | ||||||||
signUp(fields: Object)
|
||||||||
Defined in src/app/services/db-connection.service.ts:46
|
||||||||
sign user up (creates user) @field firstName @field lastName @field password @field email @field gender @field address @field birthDate @field phoneNumber
Parameters :
Returns :
any
http response promise |
updateSelectedCompany | ||||
updateSelectedCompany(company)
|
||||
Parameters :
Returns :
any
|
backendPort |
Type : number
|
Default value : 3000
|
Defined in src/app/services/db-connection.service.ts:12
|
url |
Default value : 'http://localhost:' + this.backendPort
|
Defined in src/app/services/db-connection.service.ts:13
|
import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { query } from '@angular/animations';
@Injectable({
providedIn: 'root'
})
export class DbConnectionService {
// backend connection settings
backendPort = 3000;
url = 'http://localhost:' + this.backendPort;
constructor(private http: HttpClient) {
}
// create HTTP header with webtoken
getTokenHeader(token: string){
return new HttpHeaders().set('x-access-token', token);
}
/**
* sign user in
* @param login
* @param password
* @returns http response promise
*/
signIn(login: string, password: string){
return this.http.post(`${this.url}/api/auth/signin`, {'login': login, 'password': password}).toPromise();
}
/**
* sign user up (creates user)
* @param fields (not required)
* @field firstName
* @field lastName
* @field password
* @field email
* @field gender
* @field address
* @field birthDate
* @field phoneNumber
* @returns http response promise
*/
signUp(fields: Object){
return this.http.post(`${this.url}/api/auth/signup`, fields).toPromise();
}
/**
* get userdata
* @param id userID
* @param userToken webtoken
* @returns http response promise
*/
getUserData(id: number, userToken: string){
return this.http.get(`${this.url}/api/userdata?id=${id}`, {headers: this.getTokenHeader(userToken)}).toPromise();
}
/**
* update userdata
* @param id userID
* @param userToken webtoken
* @param fields (not required)
* @field firstName
* @field lastName
* @field email
* @field gender
* @field address
* @field birthDate
* @field phoneNumber
* @returns http response promise
*/
postUserData(id: number, userToken: string, fields: Object){
return this.http.post(`${this.url}/api/userdata?id=${id}`, fields, {headers: this.getTokenHeader(userToken)}).toPromise();
}
/**
* get profile picture
* @param userID userID
* @returns http response promise
*/
getProfilePicture(userID: number){
return this.http.get(`${this.url}/api/userPicture?id=${userID}`).toPromise();
}
/**
* change password
* @param oldPassword
* @param newPassword
* @param userToken webtoken
* @returns http response promise
*/
changePassword(oldPassword: string, newPassword: string, userToken: string){
return this.http.post(`${this.url}/api/user/changePassword`, {oldPassword: oldPassword, newPassword: newPassword}, {headers: this.getTokenHeader(userToken)}).toPromise();
}
/**
* get all listings
* @returns http response promise
*/
getAllListings(){
return this.http.get(`${this.url}/api/listings`).toPromise();
}
/**
* get all listings made by given user
* @param userId userID
* @returns http response promise
*/
getUserListings(userId: number){
return this.http.get(`${this.url}/api/listings/user?id=${userId}`).toPromise();
}
/**
* create listing
* @param userToken webtoken
* @param fields (not required)
* @field name
* @field description
* @field availableAssets
* @field date
* @field price
* @field picture: image in base64 format
* @field location
* @returns http response promise
*/
createListing(userToken: string, fields: Object){
return this.http.post(`${this.url}/api/listing/create`, fields, {headers: this.getTokenHeader(userToken)}).toPromise();
}
/**
* get listingdata
* @param id listingID
* @returns http response promise
*/
getListing(id: number){
return this.http.get(`${this.url}/api/listing?id=${id}`).toPromise();
}
/**
* update listingdata
* @param id listingID
* @param userToken webtoken
* @param fields (not required)
* @field name
* @field description
* @field availableAssets
* @field date
* @field price
* @field picture: image in base64 format
* @field location
* @returns http response promise
*/
postListing(id: number, userToken: string, fields: Object){
return this.http.post(`${this.url}/api/listing?id=${id}`, fields, {headers: this.getTokenHeader(userToken)}).toPromise();
}
/**
* cancel listing
* @param id listingID
* @param userToken webtoken
* @returns http response promise
*/
cancelListing(id: number, userToken: string){
return this.http.get(`${this.url}/api/listing/cancel?id=${id}`, {headers: this.getTokenHeader(userToken)}).toPromise();
}
/**
* get all transactions on a given listing
* @param listingID listingID
* @param userToken webtoken
* @returns http response promise
*/
getListingTransactions(listingID: number, userToken: string){
return this.http.get(`${this.url}/api/transactions/listing?id=${listingID}`, {headers: this.getTokenHeader(userToken)}).toPromise();
}
/**
* get all transactions made by given user
* @param userToken webtoken
* @returns http response promise
*/
getUserTransactions(userToken: string){
return this.http.get(`${this.url}/api/transactions/user`, {headers: this.getTokenHeader(userToken)}).toPromise();
}
/**
* create transaction
* @param userToken webtoken
* @param fields
* @field listingID
* @field numberOfAssets
* @returns http response promise
*/
createTransaction(userToken: string, fields: Object){
return this.http.post(`${this.url}/api/transaction/create`, fields, {headers: this.getTokenHeader(userToken)}).toPromise();
}
/**
* cancels transaction (doesn't delete)
* @param transactionID transactionID
* @param userToken webtoken
* @returns http response promise
*/
cancelTransaction(transactionID: number, userToken: string){
return this.http.get(`${this.url}/api/transaction/cancel?id=${transactionID}`, {headers: this.getTokenHeader(userToken)}).toPromise();
}
/**
* confirm payment of transaction
* @param transactionID transactionID
* @param userToken webtoken
* @returns http response promise
*/
confirmPayment(transactionID: number, userToken: string){
return this.http.get(`${this.url}/api/transaction/confirmPayment?id=${transactionID}`, {headers: this.getTokenHeader(userToken)}).toPromise();
}
// get all categories
getCategories(){
return this.http.get(`${this.url}/api/categories`).toPromise();
}
/**
* delete category
* @param name category name
* @returns http response promise
*/
deleteCategory(name: string){
return this.http.post(`${this.url}/api/category/delete`, {name: name}).toPromise();
}
/**
* delete categories with type
* @param type category type
* @returns http response promise
*/
deleteCategoryType(type: string){
return this.http.post(`${this.url}/api/category/deleteType`, {type: type}).toPromise();
}
/**
* create category
* @param fields
* @field name (required)
* @field type
* @returns http response promise
*/
createCategory(fields: object){
return this.http.post(`${this.url}/api/category/create`, fields).toPromise();
}
/**
* // get all notifications from user
* @param userToken web token
* @returns http response promise
*/
getUserNotifications(userToken: string){
return this.http.get(`${this.url}/api/notifications`, {headers: this.getTokenHeader(userToken)}).toPromise();
}
/**
* mark notification as viewed
* @param notificationID notificationID
* @param userToken web token
* @returns http response promise
*/
markNotificationAsViewed(notificationID: number, userToken: string){
return this.http.get(`${this.url}/api/notification/markViewed?id=${notificationID}`, {headers: this.getTokenHeader(userToken)}).toPromise();
}
/**
* post a review
* @param transactionID transactionID
* @param fields
* @field comment
* @field score [1-5]
* @returns http response promise
*/
postReview(userToken: string, transactionID: number, fields: object){
return this.http.post(`${this.url}/api/review?id=${transactionID}`, fields, {headers: this.getTokenHeader(userToken)}).toPromise();
}
/**
* get all reviews on listing
* @param ListingID listingID
* @returns http response promise
*/
getListingReviews(listingID: number){
return this.http.get(`${this.url}/api/reviews/listing?id=${listingID}`).toPromise();
}
/**
* get all reviews on user
* @param userID userID
* @returns http response promise
*/
getUserReviews(userID: number){
return this.http.get(`${this.url}/api/reviews/user?id=${userID}`).toPromise();
}
getTaxonomy() {
return this.http.get(`${this.url}/api/taxonomy`).toPromise();
}
getProperties() {
return this.http.get(`${this.url}/api/properties`).toPromise();
}
getSelectedCompany() {
return this.http.get(`${this.url}/api/company`).toPromise();
}
getCompanies() {
return this.http.get(`${this.url}/api/companies`).toPromise();
}
updateSelectedCompany(company) {
return this.http.put(`${this.url}/api/company/updateSelected`, { name: company }).toPromise();
}
createProperty(company: string, property: string){
// return this.http.post(`${this.url}/api/property/company=${company}`, property).toPromise();
return this.http.post(`${this.url}/api/property/create`, { company: company, property: property }).toPromise();
}
deleteProperty(company: string, property: string) {
return this.http.delete(`${this.url}/api/property/${property}/${company}`).subscribe(response => {
console.log("Record deleted", response);
}, error => {
console.error("Error deleting record", error);
});
}
// deleteProperties(company: string) {
// console.log(company)
// return this.http.post(`${this.url}/api/properties/delete` , {company: company}).toPromise()
// }
async executeQuery(query: string){
return this.http.post(this.url, {'query': query}).toPromise().then(r => {
if (r["error"]) // error handling
return alert(`Error when connecting to database\n${r["error"]}`)
return r // forward response
});
}
}