sfrmobile-api
Version:
Client de l'API mobile SFR/RED
249 lines (248 loc) • 10.6 kB
TypeScript
/// <reference types="node" />
import { Consumption, ConsumptionNationale } from './entities/Consumption';
import { Dashboard } from './entities/Dashboard';
import { Equipement, EquipementDetail } from './entities/Equipement';
import { Facturation } from './entities/Facturation';
import { FicheMonCompte } from './entities/FicheMonCompte';
import { InfoPersonnelles } from './entities/InfoPersonnelles';
import { LoginResponse } from './entities/LoginResponse';
import { OptionsCatalog } from './entities/OptionsCatalog';
import { OptionsList } from './entities/OptionsList';
import { Parc } from './entities/Parc';
import { Notification, NotificationsCount } from './entities/Notifications';
import { AchatsAbonnements } from './entities/AchatsAbonnements';
import { OptionsAchat } from './entities/OptionsAchat';
import { OptionDetail } from './entities/OptionDetail';
import { OptionsCatalogDetail } from './entities/OptionsCatalogDetail';
import { Stream } from 'stream';
import { VerifyUsernameResponse } from './entities/VerifyUsernameResponse';
import { OTPSMSResponse } from './entities/OTPSMSResponse';
import { OffreAmes } from './entities/OffreAmes';
import { FacturationFixe } from './entities/FacturationFixe';
import { InfosClientFixe } from './entities/InfosClientFixe';
import { InfosTerminalIMEI } from './entities/InfosTerminalIMEI';
import { InfosTerminal } from './entities/InfosTerminal';
export declare enum Universe {
SFR = "SFR",
RED = "RED"
}
export declare enum Environment {
MOBILE = "MOBILE",
FIXE = "FIXE",
BOTH = "BOTH"
}
/**
* Support non-officiel de l'API mobile de SFR/RED.
* Les identifiants utilisés sont les mêmes que pour se connecter sur le site de l'opérateur.
*/
export declare class SfrMobile {
private readonly instance;
/**
* @param {string} casauthenticationtoken Jeton temporaire d'authentification
* @example ```js
* const { SfrMobile } = require('sfrmobile-api')
*
* SfrMobile.login(username, password).then(({ token }) => {
* const user = new SfrMobile(token)
* // Votre code
* })
* ```
*/
constructor(casauthenticationtoken: string);
/**
* Obtenir un jeton d'authentification auprès du CAS de SFR
* @param {string} username Identifiant du compte
* @param {string} password Mot de passe du compte
* @param {number} duration Durée de validité du jeton demandé en secondes
* @param {Universe} universe SFR/RED
* @return {Promise<LoginResponse>}
* @static
*/
static login(username: string, password: string, duration?: number, universe?: Universe): Promise<LoginResponse>;
/**
* Tester la validité d'un nom d'utilisateur
* @param {string} username Nom d'utilisateur à tester
* @param {Universe?} universe SFR/RED
* @return {Promise<VerifyUsernameResponse>}
* @static
*/
static verifyUsername(username: string, universe?: Universe): Promise<VerifyUsernameResponse>;
/**
* Description du terminal associé à un IMEI
* @param {string} imei Identifiant du terminal mobile
* @return {Promise<InfosTerminalIMEI>}
*/
static getTerminalInfoIMEI(imei: string): Promise<InfosTerminalIMEI>;
/**
* Description du terminal associé à un identifiant
* @param {string} id Identifiant
* @param {'BACARAT' | 'TAC'} type Type d'identifiant
* @return {Promise<InfosTerminal>}
*/
static getTerminalInfo(id: string, type: 'BACARAT' | 'TAC'): Promise<InfosTerminal>;
/**
* Description des terminaux associés à leur identifiant
* @param {string[]} ids Identifiants
* @param {'BACARAT' | 'TAC'} type Type d'identifiant
* @return {Promise<InfosTerminal[]>}
*/
static getTerminauxInfo(ids: string[], type: 'BACARAT' | 'TAC'): Promise<InfosTerminal[]>;
/**
* Consommation générale de la ligne
* @param {string} line MSISDN de la ligne à sélectionner
* @return {Promise<Consumption>}
*/
getConso(line: string): Promise<Consumption>;
/**
* Historique de la consommation sur le territoire national
* @param line MSISDN de la ligne à sélectionner
* @return {Promise<ConsumptionNationale>}
*/
getConsoNationale(line: string): Promise<ConsumptionNationale>;
/**
* Historique de facturation d'une ligne mobile
* @param {string} line MSISDN de la ligne mobile à sélectionner
* @param {number} duration Nombre de périodes de facturation (6,12,18,24)
* @return {Promise<Facturation>}
*/
getFacturationMobile(line: string, duration?: 6 | 12 | 18 | 24): Promise<Facturation>;
/**
* Télécharger la facture d'une ligne mobile
* @param {string} line MSISDN de la ligne mobile à sélectionner
* @param {string} numeroFacture Identifiant de la facture de la ligne mobile
* @param {boolean} fadet Facture détaillée
* @return {Promise<Stream>}
*/
downloadFactureMobile(line: string, numeroFacture: string, fadet?: boolean): Promise<Stream>;
/**
* Historique de facturation d'une ligne fixe
* @param {string} line NDI de la ligne fixe
* @param {number} duration Nombre de périodes de facturation (6,12,18,24)
* @return {Promise<FacturationFixe>}
*/
getFacturationFixe(line: string, duration?: 6 | 12 | 18 | 24): Promise<FacturationFixe>;
/**
* Télécharger la facture d'une ligne fixe
* @param {string} line NDI de la ligne fixe
* @param {string} idFact Identifiant de la facture de la ligne fixe
* @return {Promise<Stream>}
*/
downloadFactureFixe(line: string, idFact: string): Promise<Stream>;
/**
* Détails de la ligne fixe
* @param {string|undefined} line NDI de la ligne fixe
* @return {Promise<InfosClientFixe>}
*/
getInfosClientFixe(line?: string): Promise<InfosClientFixe>;
/**
* Fiche descriptive du compte de l'utilisateur courant
* @return {Promise<FicheMonCompte>}
*/
getFicheMonCompte(): Promise<FicheMonCompte>;
/**
* Informations générales de la ligne
* @param line MSISDN de la ligne à sélectionner
* @return {Promise<Dashboard>}
*/
getDashboard(line: string): Promise<Dashboard>;
/**
* Informations personnelles concernant la ligne
* @param line MSISDN de la ligne à sélectionner
* @return {Promise<InfoPersonnelles>}
*/
getInfosPersonnelles(line: string): Promise<InfoPersonnelles>;
/**
* Nombre de notifications de l'utilisateur
* @return {Promise<NotificationsCount>}
*/
getNotificationsCount(): Promise<NotificationsCount>;
/**
* Lister les notifications de l'utilisateur
* @return {Promise<{notifications: Notification[]}>}
*/
getNotifications(): Promise<{
notifications: Notification[];
}>;
/**
* Liste des équipements mis à disposition pour une ligne
* @param {string} line MSISDN de la ligne à sélectionner
* @param {Universe|string} universe SFR/RED
* @return {Promise<Equipement>}
*/
getEquipements(line: string, universe?: Universe | string): Promise<Equipement>;
/**
* Détail d'une option souscrite
* @param {string} line MSISDN de la ligne à sélectionner
* @param {Universe|string} universe SFR/RED
* @param {Environment|string} environment Type de ligne
* @param {string} option Identifiant de l'option
* @return {Promise<OptionDetail>}
*/
getOptionDetail(line: string, universe: Universe | string, environment: Environment | string, option: string): Promise<OptionDetail>;
/**
* Catalogue des catégories d'options disponibles pour une ligne
* @param {string} line MSISDN de la ligne à sélectionner
* @return {Promise<OptionsCatalog>}
*/
getOptionsCatalog(line: string): Promise<OptionsCatalog>;
/**
* Catalogue détaillé des catégories d'options disponibles pour une ligne
* @param {string} line MSISDN de la ligne à sélectionner
* @return {Promise<OptionsCatalogDetail>}
*/
getOptionsCatalogDetail(line: string): Promise<OptionsCatalogDetail>;
/**
* Lister les options disponibles dans une catégorie
* @param {string} line MSISDN de la ligne à sélectionner
* @param {string} category Catégorie d'option
* @return {Promise<OptionsList>}
*/
getOptions(line: string, category: string): Promise<OptionsList>;
/**
* Obtenir la description complète de l'équipement
* @param {string} line MSISDN de la ligne à sélectionner
* @param {string} optionCode Identifiant de l'option d'équipement
* @param {Universe|string} universe SFR/RED
* @return {Promise<EquipementDetail>}
*/
getEquipementDetail(line: string, optionCode: string, universe?: Universe | string): Promise<EquipementDetail>;
/**
* Détails de l'offre d'une ligne
* @param {string} line MSISDN de la ligne à sélectionner
* @param {Universe|string} universe SFR/RED
* @param {Environment|string} environment Type de ligne
* @return {Promise<Parc>}
*/
getParc(line: string, universe?: Universe | string, environment?: Environment | string): Promise<Parc>;
/**
* Liste des achats et abonnements (hors forfait) sur la ligne
* @param line MSISDN de la ligne à sélectionner
* @return {Promise<AchatsAbonnements>}
*/
getPaiementTiersAchatsAbonnements(line: string): Promise<AchatsAbonnements>;
/**
* Droits d'achat sur la ligne (Stores, jeux, ...)
* @param line MSISDN de la ligne à sélectionner
* @return {Promise<OptionsAchat>}
*/
getPaiementTiersOptionsAchat(line: string): Promise<OptionsAchat>;
/**
* Mettre à jour les droits d'achat sur la ligne
* @param {string} selectedLine MSISDN de la ligne à sélectionner
* @param {string} otp Code à usage unique obtenu avec getOTPSMS()
* @param {OptionsAchat} data Droits d'achats à permuter
*/
postPaiementTiersOptionsAchat(selectedLine: string, otp: string, data: OptionsAchat): Promise<any>;
/**
* Obtenir un code à usage unique pour effectuer une opération
* @param line MSISDN de la ligne à sélectionner
* @return {Promise<OTPSMSResponse>}
*/
getOTPSMS(line: string): Promise<OTPSMSResponse>;
/**
* Informations sur les remises Multi-Pack
* @param line MSISDN de la ligne à sélectionner
* @return {Promise<OffreAmes>}
*/
getOffreAMES(line: string): Promise<OffreAmes>;
}