Add device token management
This commit is contained in:
parent
e25ccfaff5
commit
35e2593aef
5 changed files with 43 additions and 14 deletions
9
package-lock.json
generated
9
package-lock.json
generated
|
@ -4743,7 +4743,8 @@
|
|||
},
|
||||
"kind-of": {
|
||||
"version": "6.0.2",
|
||||
"resolved": ""
|
||||
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
|
||||
"integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -7570,7 +7571,8 @@
|
|||
},
|
||||
"kind-of": {
|
||||
"version": "6.0.2",
|
||||
"resolved": ""
|
||||
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
|
||||
"integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -15021,7 +15023,8 @@
|
|||
},
|
||||
"kind-of": {
|
||||
"version": "6.0.2",
|
||||
"resolved": ""
|
||||
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
|
||||
"integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -8,6 +8,14 @@
|
|||
</div>
|
||||
<form class="form-horizontal" [formGroup]="sendMessageForm" (ngSubmit)="onSubmit()">
|
||||
<div class="card-block">
|
||||
<div class="form-group row">
|
||||
<label class="col-md-3 form-control-label" for="select-input"><strong>Select Recipients</strong></label>
|
||||
<select required class="form-control" type="text" formControlName="devicetokens" multiple>
|
||||
<option *ngFor="let deviceToken of deviceTokenIdList" [ngValue]="deviceTokenList[deviceToken].token">
|
||||
{{ deviceTokenList[deviceToken].user }} <{{deviceTokenList[deviceToken].token}}>
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-md-3 form-control-label" for="text-input"><strong>Enter Message Here</strong></label>
|
||||
<div class="col-md-9">
|
||||
|
|
|
@ -13,10 +13,24 @@ export class SendPushNotificationComponent implements OnInit {
|
|||
noEmail = false;
|
||||
sendMessageFormStatus: any;
|
||||
sendMessageFormStatusError = 'Error received, please try again.';
|
||||
deviceTokenList: any;
|
||||
deviceTokenIdList: any;
|
||||
|
||||
constructor(private api: ApiService) {
|
||||
this.api.getDeviceTokens().subscribe(
|
||||
result => {
|
||||
console.log(result);
|
||||
this.deviceTokenList = result.tokens;
|
||||
this.deviceTokenIdList = Object.keys(this.deviceTokenList);
|
||||
},
|
||||
error => {
|
||||
console.log("Couldn't get device token");
|
||||
console.log(error._body);
|
||||
}
|
||||
);
|
||||
this.sendMessageForm = new FormGroup({
|
||||
messagetext: new FormControl('', Validators.required),
|
||||
devicetokens: new FormControl('', Validators.required),
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -3,7 +3,6 @@ import { Injectable } from '@angular/core';
|
|||
import { HttpClient } from '@angular/common/http';
|
||||
import { environment } from '../../environments/environment';
|
||||
|
||||
|
||||
/* this provider handles the interaction between server and client */
|
||||
|
||||
@Injectable()
|
||||
|
@ -102,18 +101,23 @@ export class ApiService {
|
|||
// Push notifications
|
||||
|
||||
public addDeviceToken(data) {
|
||||
const key = this.sessionKey;
|
||||
data.session_key = this.sessionKey;
|
||||
return this.http.post<any>(
|
||||
this.apiUrl + '/add-device-token',
|
||||
{
|
||||
session_key: key,
|
||||
token: data
|
||||
data
|
||||
);
|
||||
}
|
||||
|
||||
public getDeviceTokens() {
|
||||
const key = this.sessionKey;
|
||||
return this.http.post<any>(
|
||||
this.apiUrl + '/get-device-tokens',
|
||||
{ session_key : key }
|
||||
);
|
||||
}
|
||||
|
||||
public sendMessage(data) {
|
||||
data.devicetoken = environment.deviceToken;
|
||||
data.devicetoken = localStorage.getItem('devicetoken');
|
||||
data.sender = localStorage.getItem('displayname');
|
||||
return this.http.post<any>(
|
||||
this.apiUrl + '/send-message',
|
||||
|
|
|
@ -21,10 +21,10 @@ export class MessagingService {
|
|||
requestPermission() {
|
||||
this.angularFireMessaging.requestToken.subscribe((token) => {
|
||||
console.log("Device token: " + token);
|
||||
return
|
||||
this.api.addDeviceToken(token).subscribe(
|
||||
this.api.addDeviceToken({'token': token, 'email': localStorage.getItem('email')}).subscribe(
|
||||
result => {
|
||||
console.log("Device registered successfully!");
|
||||
localStorage.setItem('devicetoken', token);
|
||||
},
|
||||
error => {
|
||||
console.error("Device could not be registered!", error._body);
|
||||
|
|
Reference in a new issue