From d3e2d2b5ffbfbeeead1963b401a5834a630908e5 Mon Sep 17 00:00:00 2001
From: arjuan <rmarchant+github@gmail.com>
Date: Thu, 6 Apr 2017 23:13:58 +0000
Subject: [PATCH] refactor

---
 gandi-ddns.py | 32 ++++++++++----------------------
 1 file changed, 10 insertions(+), 22 deletions(-)

diff --git a/gandi-ddns.py b/gandi-ddns.py
index 31abdda..9c6439d 100644
--- a/gandi-ddns.py
+++ b/gandi-ddns.py
@@ -41,26 +41,14 @@ def get_record(url, headers):
 
         return r
 
-def add_record(url, headers, payload):
+def update_record(url, headers, payload):
         #Add record
-        r = requests.post(url, headers=headers, json=payload)
+        r = requests.put(url, headers=headers, json=payload)
         if r.status_code != 201:
-          print('Record addition failed with status code: %d' % r.status_code)
+          print('Record update failed with status code: %d' % r.status_code)
           print(r.text)
           sys.exit(2)
-        print ('Zone record added.')
-
-        return r
-
-
-def del_record(url, headers):
-        #Delete record
-        r = requests.delete(url, headers=headers)
-        if r.status_code != 204:
-          print('Record deletion failed with status code: %d' % r.status_code)
-          print(r.text)
-          sys.exit(2)
-        print('Zone record deleted.')
+        print ('Zone record updated.')
 
         return r
 
@@ -91,18 +79,18 @@ def main():
     #Prepare record
     payload = {'rrset_ttl': config.get(section, 'ttl'), 'rrset_values': [external_ip]}
 
-    #Check if record already exists. If not, add record. If it does, delete then add record.
+    #Check current record
     record = get_record(url, headers)
 
-    if record.status_code == 404:
-      add_record(url, headers, payload)
-    elif record.status_code == 200:
+    if record.status_code == 200:
       print('Current record value is: %s' % json.loads(record.text)['rrset_values'][0])
       if(json.loads(record.text)['rrset_values'][0] == external_ip):
         print('No change in IP address. Goodbye.')
         sys.exit()
-      del_record(url, headers)
-      add_record(url, headers, payload)
+    else:
+      print('No existing record. Adding...')
+
+    update_record(url, headers, payload)
 
 if __name__ == "__main__":
   main()
-- 
GitLab