UNPKG

sfrmobile-api

Version:
249 lines (248 loc) 10.6 kB
/// <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>; }