Skip to content

Commit

Permalink
feat(DialUp): Implement dialup/profiles endpoints, no encryption for #21
Browse files Browse the repository at this point in the history
  • Loading branch information
Salamek committed Jan 26, 2022
1 parent b9acb62 commit e7020aa
Show file tree
Hide file tree
Showing 2 changed files with 87 additions and 0 deletions.
74 changes: 74 additions & 0 deletions src/api/DialUp.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { ApiGroup } from '../ApiGroup';
import { AuthModeEnum, IpType } from '../enums/dialup';
import { GetResponseType, SetResponseType } from '../types';

export class DialUp extends ApiGroup {
Expand Down Expand Up @@ -40,6 +41,79 @@ export class DialUp extends ApiGroup {
'dataswitch': dataswitch
})
}

/**
* @TODO requires is_encrypted=True for some modems
* @param setDefault
* @returns
*/
setDefaultProfile(setDefault: number = 0): Promise<SetResponseType> {
return this._connection.postSet('dialup/profiles', {
'SetDefault': setDefault,
'Delete': 0,
'Modify': 0
})
}

/**
* @TODO requires is_encrypted=True for some modems
* @param index
* @returns
*/
deleteProfile(index: number): Promise<SetResponseType> {
return this._connection.postSet('dialup/profiles', {
'SetDefault': 0,
'Delete': index,
'Modify': 0
})
}

/**
* @TODO requires is_encrypted=True for some modems
* @param name
* @param username
* @param password
* @param apn
* @param dialupNumber
* @param authMode
* @param ipType
* @param isDefault
* @returns
*/
createProfile(
name: string,
username?: string,
password?: string,
apn?: string,
dialupNumber?: string,
authMode: AuthModeEnum = AuthModeEnum.AUTO,
ipType: IpType = IpType.IPV4_IPV6,
isDefault: boolean = false
): Promise<SetResponseType> {
return this._connection.postSet('dialup/profiles', {
'SetDefault': isDefault ? 1 : 0,
'Delete': 0,
'Modify': 1,
'Profile': {
'Index': '',
'IsValid': 1,
'Name': name,
'ApnIsStatic': apn ? 1 :0,
'ApnName': apn,
'DialupNum': dialupNumber,
'Username': username,
'Password': password,
'AuthMode': authMode,
'IpIsStatic': '',
'IpAddress': '',
'DnsIsStatic': '',
'PrimaryDns': '',
'SecondaryDns': '',
'ReadOnly': '0',
'iptype': ipType
}
})
}
}


13 changes: 13 additions & 0 deletions src/enums/dialup.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@

export enum AuthModeEnum {
AUTO = 0,
PAP = 1,
CHAP = 2,
}


export enum IpType {
IPV4 = 0,
IPV6 = 1,
IPV4_IPV6 = 2
}

0 comments on commit e7020aa

Please sign in to comment.