import { Component, OnInit } from '@angular/core';
import { Router, ActivatedRoute, Params } from '@angular/router';
import { HeaderService } from "@shared/services/header.service";
import { UtilityService } from "@shared/services/utility.service";
import { SideMenuService } from "@shared/services/side-menu.service";
import { ApiService } from "@shared/services/api.service";

@Component({
  selector: 'app-unsubscribe',
  templateUrl: './unsubscribe.component.html',
  styleUrls: ['./unsubscribe.component.sass']
})
export class UnsubscribeComponent implements OnInit {

  public userKey: any;
  public showToast:boolean = true;
  public errorText:string = '';
  public subscribeType: any;
  public subscribeTypeList = ["events","geofence","device_status","weekly_report","monthly_report","daily_report"]
  public subscribeTypeCorrectText = {
    events: "Aggressive Driving emailers",
    geofence: "Geofence emailers", 
    device_status: "Device status emailers",
    weekly_report: "Weekly emailers",
    monthly_report: "Monthly emailers",
    daily_report: "Daily emailers"
  }

    constructor( private HeaderService: HeaderService,
      public util: UtilityService,
      private apiCallService: ApiService,
      private activatedRoute: ActivatedRoute,
      private _Router: Router,
      public sideMenu: SideMenuService ){
    }

    ngOnInit() {
        this.HeaderService.setSubscribeHead();
        this.sideMenu.hide();

        this.activatedRoute.queryParams.subscribe((params: Params) => {
            this.userKey = params["user_key"];
            this.subscribeType = params["field"];
            if(!(this.subscribeTypeList.includes(this.subscribeType))) this._Router.navigate(['/404']);
        });
    }

    navigateToAdmin() {
      this._Router.navigate(['/user/admin_details'])
    }

    subscribeUnsubscribeEmail(type) {
      // let params = {
      //   "user_key": this.userKey,
      //   "events": 1,
      //   "geofence": 1,
      //   "device_status": 1
      // };
      // this.apiCallService.getUserkey('2564').subscribe(
      //     response => {
      //         console.log("reponse", response);
      //     },
      //     error => { }
      // )
      // "MTkxOTQwMDczMy43Mg=="
      // let params = {
      // "user_key": this.userKey,
      // "events": type,//aggressive
      // "geofence": type,
      // "device_status": type,
      // "weekly_report": type,
      // "monthly_report": type,
      // "daily_report": type
      // };
      let paramType = this.subscribeType;
      console.log(paramType)
      let params = {
        "user_key": this.userKey,
        [paramType]: type
      } 
      this.apiCallService.subscribeMail(params).subscribe(
          response => {
            if(response.message == "Key is Invalid") {
              this._Router.navigate(['/404']);
            } else {
              if(type == 0) this._Router.navigate(['/unsubscribeSuccess'], { queryParams: {field: this.subscribeType}})
              else if(type == 1) this._Router.navigate(['/subscribeSuccess'], { queryParams: {field: this.subscribeType}})
            }
          },
          error => {
          }
      )
    }

}