This commit is contained in:
Olu Amey
2020-11-21 19:48:13 -05:00
parent 95d832fc0c
commit 78043ac84a
5 changed files with 260 additions and 78 deletions
+2 -2
View File
@@ -6,8 +6,8 @@ android {
applicationId "com.mermsemr.providers"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1026
versionName "1.0.26"
versionCode 1027
versionName "1.0.27"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
+1 -1
View File
@@ -56,7 +56,7 @@
<img src="./../../assets/imgs/avatar.svg">
</ion-avatar>
<ion-label>
<h2>Rey</h2>
<h2>Rey Dashe</h2>
<h3>I can handle myself</h3>
<p>You will remove these restraints and leave...</p>
</ion-label>
+32 -3
View File
@@ -1,6 +1,7 @@
import { Component, OnInit } from '@angular/core';
import { Router, NavigationExtras } from '@angular/router'
import { MermsServiceProviderService } from './../providers/merms-service-provider.service';
import { MermsSessionService } from './../merms-session.service';
@Component({
@@ -17,17 +18,45 @@ export class MermsDashPage implements OnInit {
constructor(
private router: Router,
private mermsServiceProviderService: MermsServiceProviderService
private mermsServiceProviderService: MermsServiceProviderService,
private mermsSessionService : MermsSessionService
) {
this.welcomeName = "Dr. Something"
}
ngOnInit() {
alert(100);
this.getDashData();
}
currentProviderData: {
sessionid: string,
member_id: number,
card_count: number
card_type: number
};
cardData: any;
getDashData() {
console.log('MermsServiceProviderService::getDashData() ######## @@@@ ########');
this.currentProviderData = {
sessionid: this.mermsSessionService.session,
member_id: this.mermsSessionService.member_id,
card_count: 100,
card_type: 22000
};
try {
this.mermsServiceProviderService.genericGetService('provider/recentencounter', this.currentProviderData).subscribe(cardData => {
console.log("card data result 22k: ", this.cardData);
if (cardData.hasOwnProperty('result_list') && Array.isArray(cardData['result_list'])) {
}
});
} catch (e) {
console.log(e);
}
}
+1 -1
View File
@@ -20,7 +20,7 @@ export class MermsSessionService {
top_card = '' // "https://www.float.sg/float/static_top.png";
firstname = ''
lastname = ''
session = ''
session = 'YESADUMMUFORNOW'
balance = 0
username = ''
last_login = ''
@@ -1,7 +1,7 @@
import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http'
import { Injectable, Injector } from '@angular/core'
//import 'rxjs/add/operator/map'
//import { Observable, from } from 'rxjs'
import { Observable, from } from 'rxjs'
import { MermsSessionService } from './../merms-session.service';
//import * as CryptoBrowserify from 'crypto-browserify'
//import { CONFIG } from './app-config'
@@ -15,30 +15,48 @@ export class MermsServiceProviderService {
//config = CONFIG[CONFIG.app.environment]()
//apiKey = this.config.apiKey
url = ''
// oauth_url: string = this.config.baseURL + '/SAVVY/oauth2/api'
// account_endpoint: string = this.config.baseURL + '/SAVVY/banklogin/api'
// booking_endpoint: string = this.config.baseURL + '/SAVVY/booking/api'
// advice_endpoint: string = this.config.baseURL + '/SAVVY/advice/api'
// trip_endpoint: string = this.config.baseURL + '/SAVVY/trips/api'
// messaging_endpoint: string = this.config.baseURL + '/SAVVY/messaging/api'
// blog_endpoint: string = this.config.baseURL + '/SAVVY/blog/api'
// clientId: string = CONFIG.clientId
// encryptionKey: string = this.config.encryptionKey
// encryptionIV: string = this.config.encryptionIV
url = '';
apiKey = 'AMEYE';
clientId = '1010101010';
constructor(public http: HttpClient,
private mermsSessionService:MermsSessionService) { }
private mermsSessionService: MermsSessionService) {
this.url="http://api.dev.mermsemr.com"
}
genericPostService(endpoint: string, callData: any) {
if (this.mermsSessionService.session !== '') {
console.log('***** GENERIC SERVICE CALLED *****')
// Session & MemberId needed for all - pass in the header
return this.sendPostRequest('1', '/' + endpoint, callData)
} else {
console.log('***** NO SESSION *****')
return null
}
}
genericGetService(endpoint: string, callData: any) {
if (this.mermsSessionService.session !== '') {
console.log('***** GENERIC SERVICE CALLED *****')
// Session & MemberId needed for all - pass in the header
return this.sendGetRequest('1', '/' + endpoint, callData)
} else {
console.log('***** NO SESSION *****')
return null
}
}
loginUser(loginData) {
// this.http.post(this.url + '/userlogin', loginData);
return this.sendPostRequest('1', '/userlogin', loginData)
return this.sendPostRequest('1', '/userlogin', loginData)
}
sendPostRequest(grp: string, endPoint: string, sendData: any) {
sendGetRequest(grp: string, endPoint: string, sendData: any) {
// grp - will be used to change URL
let endpointString = ''
console.log('GRP->' + grp)
@@ -49,7 +67,15 @@ export class MermsServiceProviderService {
}
(async () => {
const httpParams = new HttpParams()
if (sendData) {
for (const k in sendData) {
if (k != null && sendData.hasOwnProperty(k)) {
httpParams.set(k, sendData[k])
}
}
}
;(async () => {
// const id = Math.floor(100 * Math.random());
const id = (Math.random() * (10000 - 1000) + 1000).toFixed(0)
const d1 = new Date()
@@ -58,9 +84,136 @@ export class MermsServiceProviderService {
const d2 = new Date()
console.log('[' + id + '] after semaphore: ' + d2.getTime())
})()
return from(
new Promise((resolve) => {
const httpOptions = {
params: httpParams,
headers: new HttpHeaders({
'Content-Type': 'application/json',
'Access-Control-Allow-Credentials' : 'true',
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET, POST, PATCH, DELETE, PUT, OPTIONS',
'Access-Control-Allow-Headers': 'Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With',
authorization: 'Token ' + this.apiKey,
'client_id': this.clientId,
'x-session-id': this.mermsSessionService.session,
'x-devicetoken': this.mermsSessionService.access_token,
}),
}
// alert(100);
this.http.get(endpointString + endPoint, httpOptions).subscribe(
(data) => {
console.log(data);
console.log("*************************************************");
let payload = ''
if (data != null && data.hasOwnProperty('payload')) {
// console.log(payload);
} else {
payload = JSON.stringify(data)
}
let res = {}
try {
res = JSON.parse(payload)
} catch (e) {
console.log(e)
}
if (this.queued > 0) {
this.queued--
}
this.checkSessionValid(res);
resolve(res)
},
(error) => {
if (this.queued > 0) {
this.queued--
}
resolve(this.getResponseError(error))
},
() => {
console.log('OK!')
}
)
})
)
}
sendPostRequest(grp: string, endPoint: string, sendData: any) {
// grp - will be used to change URL
let endpointString = ''
console.log('GRP->' + grp)
switch (grp) {
case '1':
endpointString = this.url
break
}
; (async () => {
// const id = Math.floor(100 * Math.random());
const id = (Math.random() * (10000 - 1000) + 1000).toFixed(0)
const d1 = new Date()
console.log('[' + id + '] before semaphore: ' + d1.getTime())
await this.semaphore(id)
const d2 = new Date()
console.log('[' + id + '] after semaphore: ' + d2.getTime())
})()
return from(
new Promise((resolve) => {
// this.locationTrackerProvider = this.injector.get(LocationTrackerProvider);
const httpOptions = {
headers: new HttpHeaders({
authorization: 'Token ' + this.apiKey,
'client_id': this.clientId,
'x-session-id': this.mermsSessionService.session,
'x-devicetoken': this.mermsSessionService.access_token,
}),
}
this.http
.post(endpointString + endPoint, sendData, httpOptions)
.subscribe(
(data) => {
// console.log(data);
// console.log("*************************************************");
let payload = ''
if (data != null && data.hasOwnProperty('payload')) {
payload = data['payload'];
// console.log(payload);
} else {
payload = JSON.stringify(data)
}
let res = {}
try {
res = JSON.parse(payload)
} catch (e) {
console.log(e)
}
if (this.queued > 0) {
this.queued--
}
this.checkSessionValid(res);
resolve(res)
},
(error) => {
if (this.queued > 0) {
this.queued--
}
resolve(this.getResponseError(error))
},
() => {
console.log('OK!')
}
)
})
)
}
getResponseError(error) {
// console.log("Error:" + JSON.stringify(error));
console.log(error)
@@ -75,34 +228,34 @@ export class MermsServiceProviderService {
authUser(authData) {
return this.sendPostRequest('4', '/auth', authData)
}
/*
encrypt(iv: string, text: string, password: string) {
const cipher = CryptoBrowserify.createCipheriv('aes-256-ctr', password, iv)
let crypted = cipher.update(text, 'utf8', 'hex')
crypted += cipher.final('hex')
return crypted
}
/*
encrypt(iv: string, text: string, password: string) {
const cipher = CryptoBrowserify.createCipheriv('aes-256-ctr', password, iv)
let crypted = cipher.update(text, 'utf8', 'hex')
crypted += cipher.final('hex')
return crypted
}
decrypt(iv: string, text: string, password: string) {
const decipher = CryptoBrowserify.createDecipheriv(
'aes-256-ctr',
password,
iv
)
let dec = decipher.update(text, 'hex', 'utf8')
dec += decipher.final('utf8')
return dec
}
*/
/**
* Checks if the response from the server returns invalid session error
*
* @param response_data response from the server
*/
checkSessionValid(response_data: any) {
decrypt(iv: string, text: string, password: string) {
const decipher = CryptoBrowserify.createDecipheriv(
'aes-256-ctr',
password,
iv
)
let dec = decipher.update(text, 'hex', 'utf8')
dec += decipher.final('utf8')
return dec
}
*/
/**
* Checks if the response from the server returns invalid session error
*
* @param response_data response from the server
*/
checkSessionValid(response_data: any){
if("session_valid" in response_data){
if(response_data['session_valid'] === "INVALID_SESSION") {
if ("session_valid" in response_data) {
if (response_data['session_valid'] === "INVALID_SESSION") {
return this.doLogout();
}
}
@@ -110,8 +263,8 @@ export class MermsServiceProviderService {
return true;
}
doLogout(){
// this.floatEventsService.publish('DoLogout', {});
doLogout() {
// this.floatEventsService.publish('DoLogout', {});
}
@@ -129,22 +282,22 @@ export class MermsServiceProviderService {
this.lastQueued = sec
console.log(
'[' +
marker +
'] inside semaphore: wait (queued: ' +
this.queued +
', lastQueued: ' +
this.lastQueued +
')'
marker +
'] inside semaphore: wait (queued: ' +
this.queued +
', lastQueued: ' +
this.lastQueued +
')'
)
await this.delay(1000)
console.log(
'[' +
marker +
'] inside semaphore: done (queued: ' +
this.queued +
', lastQueued: ' +
this.lastQueued +
')'
marker +
'] inside semaphore: done (queued: ' +
this.queued +
', lastQueued: ' +
this.lastQueued +
')'
)
return
}
@@ -152,22 +305,22 @@ export class MermsServiceProviderService {
this.queued++
console.log(
'[' +
marker +
'] inside semaphore: wait (queued: ' +
this.queued +
', lastQueued: ' +
this.lastQueued +
')'
marker +
'] inside semaphore: wait (queued: ' +
this.queued +
', lastQueued: ' +
this.lastQueued +
')'
)
await this.delay(1000 + 1000 * this.queued)
console.log(
'[' +
marker +
'] inside semaphore: done (queued: ' +
this.queued +
', lastQueued: ' +
this.lastQueued +
')'
marker +
'] inside semaphore: done (queued: ' +
this.queued +
', lastQueued: ' +
this.lastQueued +
')'
)
}