a9f16bca4a
- Move to Models folder - Improve code and nullability notation - Rename class with typo in name
274 lines
13 KiB
Objective-C
274 lines
13 KiB
Objective-C
//
|
|
// EQNGeneratoreURLServer.m
|
|
// Earthquake Network
|
|
//
|
|
// Created by Luca Beretta on 19/09/18.
|
|
// Copyright © 2018 Luca Beretta. All rights reserved.
|
|
//
|
|
|
|
#import "EQNGeneratoreURLServer.h"
|
|
#import "Costanti.h"
|
|
#import "EQNUser.h"
|
|
#import "EQNCalibrazione.h"
|
|
#import "EQNRilevamento.h"
|
|
#import "EQNNotificheSegnalazioniUtente.h"
|
|
#import "EQNNotificheReteSismiche.h"
|
|
#import "EQNAllertaSismica.h"
|
|
#import <MapKit/MapKit.h>
|
|
|
|
@implementation EQNGeneratoreURLServer
|
|
|
|
#pragma mark - Public
|
|
|
|
+ (NSURL *)urlDownloadDati
|
|
{
|
|
NSString *stringUrl = [NSString stringWithFormat:@"%@",EQNServerUrlDownloadSmartphoneNetwork];
|
|
return [NSURL URLWithString:stringUrl];
|
|
}
|
|
|
|
+ (NSURL *)urlRegistrazione
|
|
{
|
|
NSString *primaRegistrazione = @"0";
|
|
if ([EQNUser defaultUser].registrato) {
|
|
primaRegistrazione = @"1";
|
|
}
|
|
|
|
NSString *stringUrl = [NSString stringWithFormat:@"%@?u_id=%@&r_id=%@&lat=%f&lon=%f&ios=1", EQNServerUrlRegistration, primaRegistrazione, [EQNUser defaultUser].tokenUser, [EQNUser defaultUser].lastPosition.coordinate.latitude, [EQNUser defaultUser].lastPosition.coordinate.longitude];
|
|
return [NSURL URLWithString:stringUrl];
|
|
}
|
|
|
|
+ (NSURL *)urlPosizione
|
|
{
|
|
NSString *stringUrl = [NSString stringWithFormat:@"%@?u_id=%@&lat=%f&lon=%f", EQNServerUrlUserLocation, [EQNUser defaultUser].user_ID, [EQNUser defaultUser].lastPosition.coordinate.latitude, [EQNUser defaultUser].lastPosition.coordinate.longitude];
|
|
return [NSURL URLWithString:stringUrl];
|
|
}
|
|
|
|
+ (NSURL *)urlMessagioStatoSmartPhone:(EQNCalibrazione *)calibrazione rilevamento:(EQNRilevamento *)rilevamento
|
|
{
|
|
NSString *e_t = @"0";
|
|
NSString *a_max = @"0";
|
|
|
|
if (rilevamento.rilievo == EQNRilevamentoSogliaPositivo){
|
|
e_t = @"1";
|
|
a_max =[NSString stringWithFormat:@"%f",rilevamento.maxAssoluto];
|
|
}
|
|
|
|
NSString *u_id = [EQNUser defaultUser].user_ID;
|
|
NSString *lat = [NSString stringWithFormat:@"%f", [EQNUser defaultUser].lastPosition.coordinate.latitude];
|
|
NSString *lon = [NSString stringWithFormat:@"%f", [EQNUser defaultUser].lastPosition.coordinate.longitude];
|
|
NSString *acc = @"10";
|
|
NSString *d_not = @"0";
|
|
NSString *calib = @"0";
|
|
if (calibrazione.stato == calibrato) {
|
|
calib = @"1";
|
|
}
|
|
|
|
NSString *ch = @"0";
|
|
if ([EQNUser defaultUser].inCarica) {
|
|
ch = @"1";
|
|
}
|
|
|
|
NSString *s_on = @"0";
|
|
if ([EQNUser defaultUser].monitorOn) {
|
|
s_on = @"1";
|
|
}
|
|
|
|
NSString *tru = @"0";
|
|
|
|
NSString *upd = @"0";
|
|
if ([EQNUser defaultUser].distanza > DISTANZA_METRI_SEGNALAZIONE) {
|
|
upd = @"1";
|
|
}
|
|
|
|
NSString *ver = [self ottieniVersioneComeIntero];
|
|
NSString *os = @"1";
|
|
NSString *stringUrl = [NSString stringWithFormat:@"%@?e_t=%@&u_id=%@&lat=%@&lon=%@&acc=%@&a_max=%@&d_not=%@&cal=%@&ch=%@&s_on=%@&tru=%@&upd=%@&ver=%@&os=%@", EQNServerUrlCalibration,e_t,u_id,lat,lon,acc,a_max,d_not,calib,ch,s_on,tru,upd,ver,os];
|
|
return [NSURL URLWithString:stringUrl];
|
|
}
|
|
|
|
+ (NSString *)ottieniVersioneComeIntero
|
|
{
|
|
NSNumber * versone = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
|
|
int versioneItero = [versone intValue];
|
|
return [NSString stringWithFormat:@"%i", versioneItero];
|
|
}
|
|
|
|
+ (NSURL *)urlInvioMessagioTerremoto:(NSInteger )magnitudo withAdress:(NSString *)address
|
|
{
|
|
NSString *lat = [NSString stringWithFormat:@"%f", [EQNUser defaultUser].lastPosition.coordinate.latitude];
|
|
NSString *lon = [NSString stringWithFormat:@"%f", [EQNUser defaultUser].lastPosition.coordinate.longitude];
|
|
NSDate *date = [NSDate date];
|
|
NSDateFormatter *formatOre = [[NSDateFormatter alloc] init];
|
|
[formatOre setDateFormat:@"HH"];
|
|
NSString *ora = [formatOre stringFromDate:date];
|
|
NSString *stringUrl = [NSString stringWithFormat:@"%@?u_id=%@&lat=%@&lon=%@&mag=%ld&address=%@&hod=%@", EQNServerUrlSendUserReport, [EQNUser defaultUser].user_ID, lat, lon, (long)magnitudo, address, ora];
|
|
|
|
NSURL *url = [NSURL URLWithString:stringUrl];
|
|
if (url) {
|
|
return url;
|
|
}
|
|
stringUrl = [NSString stringWithFormat:@"%@?u_id=%@&lat=%@&lon=%@&mag=%ld&hod=%@", EQNServerUrlSendUserReport, [EQNUser defaultUser].user_ID, lat, lon, (long)magnitudo, ora];
|
|
return [NSURL URLWithString:stringUrl];
|
|
}
|
|
|
|
+ (NSURL *)urlInvioCommentoTerremoto:(NSString *)commento codeMessage:(NSString *)code
|
|
{
|
|
NSString *codeEscaped = [code stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLHostAllowedCharacterSet ]];
|
|
|
|
NSString *commentEscaped = [commento stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLHostAllowedCharacterSet ]];
|
|
|
|
NSString *stringUrl = [NSString stringWithFormat:@"%@?u_id=%@&e_code=%@&message=%@", EQNServerUrlSendUserReportMessage, [EQNUser defaultUser].user_ID, codeEscaped, commentEscaped];
|
|
return [NSURL URLWithString: stringUrl];
|
|
}
|
|
|
|
+ (NSURL *)urlInvioImpostazioniNotifiche
|
|
{
|
|
NSString *n_e = [NSString stringWithFormat:@"&n_e=%i",[EQNAllertaSismica sharedInstance].isAbilitato];
|
|
NSString *n_m = [NSString stringWithFormat:@"&n_m=%i",[EQNNotificheSegnalazioniUtente sharedInstance].isAbilitato];
|
|
NSString *n_o = [NSString stringWithFormat:@"&n_o=%i",[EQNNotificheReteSismiche sharedInstance].isAbilitato];
|
|
NSString *n_o_near = [NSString stringWithFormat:@"&n_o_near=%i",[EQNNotificheReteSismiche sharedInstance].isAbilitaVicini];
|
|
NSString *n_o_mag = [NSString stringWithFormat:@"&n_o_mag=%@",[EQNNotificheReteSismiche sharedInstance].energiaSisma];
|
|
|
|
NSString *n_o_usgs = @"&n_o_usgs=0";
|
|
NSString *n_o_emsc = @"&n_o_emsc=0";
|
|
NSString *n_o_ingv = @"&n_o_ingv=0";
|
|
NSString *n_o_ign = @"&n_o_ign=0";
|
|
NSString *n_o_csi = @"&n_o_csi=0";
|
|
NSString *n_o_jma = @"&n_o_jma=0";
|
|
NSString *n_o_ineter = @"&n_o_ineter=0";
|
|
NSString *n_o_ssn = @"&n_o_ssn=0";
|
|
NSString *n_o_sgc = @"&n_o_sgc=0";
|
|
NSString *n_o_rsn = @"&n_o_rsn=0";
|
|
NSString *n_o_csn = @"&n_o_csn=0";
|
|
NSString *n_o_funvisis = @"&n_o_funvisis=0";
|
|
NSString *n_o_geonet = @"&n_o_geonet=0";
|
|
NSString *n_o_inpres = @"&n_o_inpres=0";
|
|
NSString *n_o_igepn = @"&n_o_igepn=0";
|
|
NSString *n_o_phivolcs = @"&n_o_phivolcs=0";
|
|
NSString *n_o_igp = @"&n_o_igp=0";
|
|
NSString *n_o_uasd = @"&n_o_uasd=0";
|
|
NSString *n_o_rspr = @"&n_o_rspr=0";
|
|
NSString *n_o_bdtim = @"&n_o_bdtim=0";
|
|
NSString *n_o_ncs = @"&n_o_ncs=0";
|
|
|
|
for (NSString *ente in [EQNNotificheReteSismiche sharedInstance].listaEnti) {
|
|
if ([ente isEqualToString:@"USGS"]) {
|
|
n_o_usgs = @"&n_o_usgs=1";
|
|
} else if ([ente isEqualToString:@"EMSC"]) {
|
|
n_o_emsc = @"&n_o_emsc=1";
|
|
} else if ([ente isEqualToString:@"INGV"]) {
|
|
n_o_ingv = @"&n_o_ingv=1";
|
|
} else if ([ente isEqualToString:@"IGN"]) {
|
|
n_o_ign = @"&n_o_ign=1";
|
|
} else if ([ente isEqualToString:@"CSI"]) {
|
|
n_o_csi = @"&n_o_csi=1";
|
|
} else if ([ente isEqualToString:@"JMA"]) {
|
|
n_o_jma = @"&n_o_jma=1";
|
|
} else if ([ente isEqualToString:@"Ineter"]) {
|
|
n_o_ineter = @"&n_o_ineter=1";
|
|
} else if ([ente isEqualToString:@"SSN"]) {
|
|
n_o_ssn = @"&n_o_ssn=1";
|
|
} else if ([ente isEqualToString:@"SGC"]) {
|
|
n_o_sgc = @"&n_o_sgc=1";
|
|
} else if ([ente isEqualToString:@"RSN"]) {
|
|
n_o_rsn = @"&n_o_rsn=1";
|
|
} else if ([ente isEqualToString:@"CSN"]) {
|
|
n_o_csn = @"&n_o_csn=1";
|
|
} else if ([ente isEqualToString:@"FUNVISIS"]) {
|
|
n_o_funvisis = @"&n_o_funvisis=1";
|
|
} else if ([ente isEqualToString:@"GeoNet"]) {
|
|
n_o_geonet = @"&n_o_geonet=1";
|
|
} else if ([ente isEqualToString:@"INPRES"]) {
|
|
n_o_inpres = @"&n_o_inpres=1";
|
|
} else if ([ente isEqualToString:@"IGEPN"]) {
|
|
n_o_igepn = @"&n_o_igepn=1";
|
|
} else if ([ente isEqualToString:@"PHIVOLCS"]) {
|
|
n_o_phivolcs = @"&n_o_phivolcs=1";
|
|
} else if ([ente isEqualToString:@"IGP"]) {
|
|
n_o_igp = @"&n_o_igp=1";
|
|
} else if ([ente isEqualToString:@"UASD"]) {
|
|
n_o_uasd = @"&n_o_uasd=1";
|
|
} else if ([ente isEqualToString:@"RSPR"]) {
|
|
n_o_rspr = @"&n_o_rspr=1";
|
|
} else if ([ente isEqualToString:@"BDTIM"]) {
|
|
n_o_bdtim = @"&n_o_bdtim=1";
|
|
} else if ([ente isEqualToString:@"NCS"]) {
|
|
n_o_ncs = @"&n_o_ncs=1";
|
|
}
|
|
}
|
|
NSString *enti = [NSString stringWithFormat:@"%@%@%@%@%@%@%@%@%@%@%@%@%@%@%@%@%@%@%@%@%@", n_o_usgs, n_o_emsc, n_o_ingv, n_o_ign, n_o_csi, n_o_jma, n_o_ineter, n_o_ssn, n_o_sgc, n_o_rsn, n_o_csn, n_o_funvisis, n_o_geonet, n_o_inpres, n_o_igepn, n_o_phivolcs, n_o_igp, n_o_uasd, n_o_rspr, n_o_bdtim, n_o_ncs];
|
|
|
|
NSString *n_o_strong = [NSString stringWithFormat:@"&n_o_strong=%i",[EQNNotificheReteSismiche sharedInstance].isTerremortiForti];
|
|
|
|
// andrea.busi - 27/09/2020: manteniamo il controllo su eventuali valori "Qualsiasi intensità/distanza" salvati
|
|
// non sembrano servire, perchè i valori sono salvati come 100.000 anche nelle versioni prcedenti alla 2.0
|
|
// per sicurezza, però, teniamo i controlli
|
|
|
|
NSString *n_o_strmag = [NSString stringWithFormat:@"&n_o_strmag=%@", [EQNNotificheReteSismiche sharedInstance].energiaTerremotiForti];
|
|
if ([[EQNAllertaSismica sharedInstance].sismiDaNotificare isEqualToString:NSLocalizedString(@"Qualsiasi intensità", @"")]) {
|
|
n_o_strmag = @"&n_o_strmag=0";
|
|
}
|
|
|
|
NSString *r_e_mild = [NSString stringWithFormat:@"&r_e_mild=%@", [EQNAllertaSismica sharedInstance].raggioSismiLievi];
|
|
if ([[EQNAllertaSismica sharedInstance].raggioSismiLievi isEqualToString:NSLocalizedString(@"Qualsiasi distanza", @"")]) {
|
|
r_e_mild = @"&r_e_mild=100000";
|
|
}
|
|
|
|
NSString *r_e_strong = [NSString stringWithFormat:@"&r_e_strong=%@", [EQNAllertaSismica sharedInstance].raggioSismiForti];
|
|
if ([[EQNAllertaSismica sharedInstance].raggioSismiForti isEqualToString:NSLocalizedString(@"Qualsiasi distanza", @"")]) {
|
|
r_e_strong = @"&r_e_strong=100000";
|
|
}
|
|
|
|
NSString *r_m = [NSString stringWithFormat:@"&r_m=%@", [EQNNotificheSegnalazioniUtente sharedInstance].distanzaPosizione];
|
|
if ([[EQNNotificheSegnalazioniUtente sharedInstance].distanzaPosizione isEqualToString:NSLocalizedString(@"Qualsiasi distanza", @"")]) {
|
|
r_m = @"&r_m=100000";
|
|
}
|
|
|
|
NSString *r_o = [NSString stringWithFormat:@"&r_o=%@", [EQNNotificheReteSismiche sharedInstance].distanzaPosizione];
|
|
if ([[EQNNotificheReteSismiche sharedInstance].distanzaPosizione isEqualToString:NSLocalizedString(@"Qualsiasi distanza", @"")]) {
|
|
r_o = @"&r_o=100000";
|
|
}
|
|
|
|
NSString *n_e_type = [NSString stringWithFormat:@"&n_e_type=%@", [EQNAllertaSismica sharedInstance].sismiDaNotificare];
|
|
|
|
NSString *stringUrl = [NSString stringWithFormat:@"%@?u_id=%@&lat=%f&lon=%f%@%@%@%@%@%@%@%@%@%@%@%@%@", EQNServerUrlUploadSettings, [EQNUser defaultUser].user_ID, [EQNUser defaultUser].lastPosition.coordinate.latitude, [EQNUser defaultUser].lastPosition.coordinate.longitude, n_e, n_m, n_o, n_o_near,n_o_mag, enti, n_o_strong, n_e_type, n_o_strmag, r_e_mild, r_e_strong, r_m, r_o];
|
|
|
|
|
|
return [NSURL URLWithString:stringUrl];
|
|
}
|
|
|
|
+ (NSURL *)urlDownloadOfferTimeRemaining
|
|
{
|
|
NSString *stringUrl = [NSString stringWithFormat:@"%@?u_id=%@", EQNServerUrlOfferTimeRemaining, [EQNUser defaultUser].user_ID];
|
|
return [NSURL URLWithString:stringUrl];
|
|
}
|
|
|
|
+ (NSURL *)urlRegisterSubscriptionForProductId:(NSString *)productId transactionId:(NSString *)transactionId
|
|
{
|
|
NSString *walletSub = @""; // codice associato all'acquisto che conosce anche l'utente (se esiste)
|
|
NSString *stringUrl = [NSString stringWithFormat:@"%@?u_id=%@&token_sub=%@&wallet_sub=%@&sku=%@&ios=1", EQNServerUrlRegisterSubscription, [EQNUser defaultUser].user_ID, transactionId, walletSub, productId];
|
|
return [NSURL URLWithString:stringUrl];
|
|
}
|
|
|
|
+ (NSURL *)urlAlertPushTest
|
|
{
|
|
EQNGenericValue *radius = [EQNData raggioSismaFor:[EQNAllertaSismica sharedInstance].raggioSismiLievi];
|
|
CLLocationCoordinate2D lastPosition = [EQNUser defaultUser].lastPosition.coordinate;
|
|
NSString *stringUrl = [NSString stringWithFormat:@"%@?u_id=%@&radius=%@&lat=%f&lon=%f", EQNServerUrlTestAlarm, [EQNUser defaultUser].user_ID, radius.value, lastPosition.latitude, lastPosition.longitude ];
|
|
return [NSURL URLWithString:stringUrl];
|
|
}
|
|
|
|
+ (NSURL *)urlAlertSimulator
|
|
{
|
|
CLLocationCoordinate2D userLastPosition = [EQNUser defaultUser].lastPosition.coordinate;
|
|
CLLocationDistance distance = 100;
|
|
NSInteger top10k = EQNPurchaseUtility.isTop10kEnabled ? 1 : 0;
|
|
NSInteger top100k = EQNPurchaseUtility.isTop100kEnabled ? 1 : 0;
|
|
NSString *stringUrl = [NSString stringWithFormat:@"%@?lat=%f&lon=%f&dis=%f&top10k=%lu&top100k=%lu", EQNServerUrlAlertSimulator, userLastPosition.latitude, userLastPosition.longitude, distance, (long)top10k, (long)top100k];
|
|
return [NSURL URLWithString:stringUrl];
|
|
}
|
|
|
|
@end
|
|
|
|
|