X-Git-Url: http://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2FObj%2Fdbase_pgsql.phh;h=80273774967eb31aa85250213c4fe06614568996;hb=4d039a689e6a9a735608bffba118bfbab1fafb10;hp=520a4f09f26ebdc8e7597a09744941e3ab9ff69b;hpb=e2d1e08df1bfffaeda9487b60a0d13aafbedde57;p=brisk.git diff --git a/web/Obj/dbase_pgsql.phh b/web/Obj/dbase_pgsql.phh index 520a4f0..8027377 100644 --- a/web/Obj/dbase_pgsql.phh +++ b/web/Obj/dbase_pgsql.phh @@ -210,10 +210,6 @@ class BriskDB return (FALSE); } - if (($sere_pg = $this->query($sere_sql)) == FALSE) { - return (FALSE); - } - $sere_sql = sprintf("SELECT * FROM %sselfreg_chk WHERE (ip & %d) = %d;", $G_dbpfx, int2four($G_selfreg_mask), int2four($laddr & $G_selfreg_mask)); if (($sere_pg = $this->query($sere_sql)) == FALSE) { @@ -885,6 +881,27 @@ INSERT INTO %smails (code, ucode, type, tstamp, subj, body_txt, body_htm, hash) return ($widefriend); } + function usersnet_wideskill($owner, $target) + { + GLOBAL $G_dbpfx; + + $wideskill = "//"; + + $wskl_sql = sprintf("SELECT * FROM %susersnet_wideskill WHERE owner = %d AND target = %d;", + $G_dbpfx, $owner, $target); + if (($wskl_pg = $this->query($wskl_sql)) == FALSE) { + return ($wideskill); + } + + if (pg_numrows($wskl_pg) > 0) { + $wskl_obj = pg_fetch_object($wskl_pg, 0); + // TODO: UNCOMMENT IF THE NETWORK WORKS VERY WELL + // if ($wskl_obj->count >= 3) + $wideskill = sprintf("%3.2f", $wskl_obj->skill); + } + return ($wideskill); + } + function usersnet_narrowfriend($owner, $target) { GLOBAL $G_dbpfx; @@ -904,6 +921,48 @@ INSERT INTO %smails (code, ucode, type, tstamp, subj, body_txt, body_htm, hash) return ($narrowfriend); } + function usersnet_narrowskill($owner, $target) + { + GLOBAL $G_dbpfx; + + $narrowskill = "//"; + + $nskl_sql = sprintf("SELECT * FROM %susersnet_narrowskill WHERE owner = %d AND target = %d;", + $G_dbpfx, $owner, $target); + if (($nskl_pg = $this->query($nskl_sql)) == FALSE) { + return ($narrowskill); + } + + if (pg_numrows($nskl_pg) > 0) { + $nskl_obj = pg_fetch_object($nskl_pg, 0); + // TODO: UNCOMMENT IF THE NETWORK WORKS VERY WELL + // if ($nskl_obj->count >= 3) + $narrowskill = sprintf("%3.2f", $nskl_obj->skill); + } + return ($narrowskill); + } + + function usersnet_partyskill($owner, $target) + { + GLOBAL $G_dbpfx; + + $partyskill = "non disponibile"; + + $pskl_sql = sprintf("SELECT * FROM %susersnet_party WHERE owner = %d AND target = %d;", + $G_dbpfx, $owner, $target); + if (($pskl_pg = $this->query($pskl_sql)) == FALSE) { + return ($partyskill); + } + + if (pg_numrows($pskl_pg) > 0) { + $pskl_obj = pg_fetch_object($pskl_pg, 0); + // TODO: UNCOMMENT IF THE NETWORK WORKS VERY WELL + // if ($wskl_obj->count >= 3) + $partyskill = sprintf("%3.2f", $pskl_obj->skill); + } + return ($partyskill); + } + function usersnet_bycode($owner, $target, $widefriend, $narrowfriend) { GLOBAL $G_dbpfx; @@ -948,44 +1007,58 @@ INSERT INTO %smails (code, ucode, type, tstamp, subj, body_txt, body_htm, hash) $this->transaction('BEGIN'); $trans = TRUE; - // try to update - $net_sql = sprintf(" + if ($friend == USERSNET_FRIEND_UNKNOWN) { + // try to update + $net_sql = sprintf(" + DELETE FROM %susersnet + USING %susers as us + WHERE owner = %d AND us.login = '%s' AND target = us.code;", + $G_dbpfx, $G_dbpfx, + $owner_id, escsql($json->login)); + + if (($net_pg = $this->query($net_sql)) == FALSE) { + $ret = 5; + break; + } + } + else { // if ($friend == USERSNET_FRIEND_UNKNOWN + // try to update + $net_sql = sprintf(" UPDATE %susersnet SET (friend, skill, trust, mtime) = (%d, %d, %d, now()) FROM %susers as us WHERE owner = %d AND us.login = '%s' AND target = us.code RETURNING *;", - $G_dbpfx, - $friend, $json->skill, $json->trust, - $G_dbpfx, - $owner_id, escsql($json->login)); - if (($net_pg = $this->query($net_sql)) == FALSE || pg_numrows($net_pg) == 0) { - $net_sql = sprintf(" + $G_dbpfx, + $friend, $json->skill, $json->trust, + $G_dbpfx, + $owner_id, escsql($json->login)); + if (($net_pg = $this->query($net_sql)) == FALSE || pg_numrows($net_pg) == 0) { + $net_sql = sprintf(" INSERT INTO %susersnet SELECT %d AS owner, us.code as target, %d as friend, %d as skill, %d as trust FROM %susers as us WHERE us.login = '%s' RETURNING *;", - $G_dbpfx, $owner_id, - $friend, $json->skill, $json->trust, - $G_dbpfx, $json->login); - if (($net_pg = $this->query($net_sql)) == FALSE) { - log_wr('insert query failed'); - $ret = 2; - break; - } - if (pg_numrows($net_pg) != 1) { - log_wr(sprintf('insert numrow failed [%s] [%d]', $net_sql, pg_numrows($net_pg))); - $ret = 3; - break; + $G_dbpfx, $owner_id, + $friend, $json->skill, $json->trust, + $G_dbpfx, $json->login); + if (($net_pg = $this->query($net_sql)) == FALSE) { + log_wr('insert query failed'); + $ret = 2; + break; + } + if (pg_numrows($net_pg) != 1) { + log_wr(sprintf('insert numrow failed [%s] [%d]', $net_sql, pg_numrows($net_pg))); + $ret = 3; + break; + } } - } - else { - if (pg_numrows($net_pg) != 1) { - log_wr('update numrow failed'); - $ret = 4; - break; + else { + if (pg_numrows($net_pg) != 1) { + log_wr('update numrow failed'); + $ret = 4; + break; + } } } - - $net_obj = pg_fetch_object($net_pg, 0); $this->transaction('COMMIT'); return (0); } while (0);