<s> import click <EOL> from urls import DOMAIN_LIST <EOL> from base_request import DigitalOcean , print_table , CONTEXT_SETTINGS <EOL> @ click . group ( ) <EOL> def record_group ( ) : <EOL> """<STR_LIT>""" <EOL> pass <EOL> def validate ( dic ) : <EOL> option_list = [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> for option in option_list : <EOL> if dic [ '<STR_LIT>' ] and dic [ option ] : <EOL> raise click . UsageError ( '<STR_LIT>' % option ) <EOL> break <EOL> option_list = [ '<STR_LIT>' , '<STR_LIT>' ] <EOL> for option in option_list : <EOL> if dic [ '<STR_LIT>' ] and dic [ option ] : <EOL> raise click . UsageError ( '<STR_LIT>' % option ) <EOL> break <EOL> if dic [ '<STR_LIT>' ] and dic [ '<STR_LIT>' ] : <EOL> raise click . UsageError ( '<STR_LIT>' ) <EOL> option_list = [ '<STR_LIT:type>' , '<STR_LIT:name>' , '<STR_LIT:data>' , '<STR_LIT>' , '<STR_LIT:port>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> for option in option_list : <EOL> if dic [ '<STR_LIT>' ] and dic [ option ] : <EOL> raise click . UsageError ( '<STR_LIT>' % option ) <EOL> break <EOL> if dic [ '<STR_LIT>' ] and dic [ option ] : <EOL> raise click . UsageError ( '<STR_LIT>' % option ) <EOL> break <EOL> option_list = [ '<STR_LIT:type>' , '<STR_LIT:name>' , '<STR_LIT:data>' ] <EOL> for option in option_list : <EOL> if dic [ '<STR_LIT>' ] and not dic [ option ] : <EOL> raise click . UsageError ( '<STR_LIT>' ) <EOL> break <EOL> if dic [ '<STR_LIT>' ] and not dic [ '<STR_LIT>' ] : <EOL> raise click . UsageError ( '<STR_LIT>' ) <EOL> if dic [ '<STR_LIT>' ] and ( not dic [ '<STR_LIT:type>' ] or not dic [ '<STR_LIT:name>' ] or not dic [ '<STR_LIT:data>' ] or not dic [ '<STR_LIT>' ] or not dic [ '<STR_LIT:port>' ] or not dic [ '<STR_LIT>' ] ) : <EOL> raise click . UsageError ( '<STR_LIT>' ) <EOL> if ( dic [ '<STR_LIT:name>' ] or dic [ '<STR_LIT:type>' ] or dic [ '<STR_LIT:data>' ] or dic [ '<STR_LIT>' ] or dic [ '<STR_LIT:port>' ] or dic [ '<STR_LIT>' ] ) and ( not dic [ '<STR_LIT>' ] or not dic [ '<STR_LIT>' ] ) : <EOL> raise click . UsageError ( '<STR_LIT>' ) <EOL> if dic [ '<STR_LIT>' ] and not dic [ '<STR_LIT>' ] : <EOL> raise click . UsageError ( '<STR_LIT>' ) <EOL> return True <EOL> @ record_group . command ( context_settings = CONTEXT_SETTINGS ) <EOL> @ click . option ( '<STR_LIT>' , '<STR_LIT>' , type = str , help = '<STR_LIT>' , metavar = '<STR_LIT>' ) <EOL> @ click . option ( '<STR_LIT>' , '<STR_LIT:-c>' , type = str , help = '<STR_LIT>' , metavar = '<STR_LIT>' ) <EOL> @ click . option ( '<STR_LIT>' , '<STR_LIT>' , type = str , help = '<STR_LIT>' , metavar = '<STR_LIT>' ) <EOL> @ click . option ( '<STR_LIT>' , '<STR_LIT>' , type = str , help = '<STR_LIT>' , metavar = '<STR_LIT>' ) <EOL> @ click . option ( '<STR_LIT>' , '<STR_LIT>' , type = str , help = '<STR_LIT>' , metavar = '<STR_LIT>' ) <EOL> @ click . option ( '<STR_LIT>' , '<STR_LIT>' , type = str , help = '<STR_LIT>' , metavar = '<STR_LIT>' ) <EOL> @ click . option ( '<STR_LIT>' , '<STR_LIT>' , type = str , help = '<STR_LIT>' , metavar = '<STR_LIT>' ) <EOL> @ click . option ( '<STR_LIT>' , '<STR_LIT>' , type = int , help = '<STR_LIT>' , default = <NUM_LIT:0> , metavar = '<STR_LIT>' ) <EOL> @ click . option ( '<STR_LIT>' , '<STR_LIT>' , type = int , help = '<STR_LIT>' , default = <NUM_LIT:0> , metavar = '<STR_LIT>' ) <EOL> @ click . option ( '<STR_LIT>' , '<STR_LIT>' , type = int , help = '<STR_LIT>' , default = <NUM_LIT:0> , metavar = '<STR_LIT>' ) <EOL> @ click . option ( '<STR_LIT>' , '<STR_LIT>' , type = int , help = '<STR_LIT>' , metavar = '<STR_LIT>' ) <EOL> @ click . option ( '<STR_LIT>' , '<STR_LIT>' , type = str , help = '<STR_LIT>' , metavar = '<STR_LIT>' ) <EOL> @ click . option ( '<STR_LIT>' , '<STR_LIT>' , type = click . Choice ( [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:html>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] ) , help = '<STR_LIT>' , default = '<STR_LIT>' , metavar = '<STR_LIT>' ) <EOL> @ click . option ( '<STR_LIT>' , '<STR_LIT>' , help = '<STR_LIT>' , metavar = '<STR_LIT>' ) <EOL> @ click . pass_context <EOL> def record ( ctx , token , tablefmt , proxy , getlist , create , recordid , delete , update , type , name , data , priority , port , weight ) : <EOL> """<STR_LIT>""" <EOL> if not ctx . params [ '<STR_LIT>' ] and not ctx . params [ '<STR_LIT>' ] and not ctx . params [ '<STR_LIT>' ] and not ctx . params [ '<STR_LIT>' ] and not ctx . params [ '<STR_LIT:type>' ] and not ctx . params [ '<STR_LIT:name>' ] and not ctx . params [ '<STR_LIT:data>' ] and not ctx . params [ '<STR_LIT>' ] and not ctx . params [ '<STR_LIT:port>' ] and not ctx . params [ '<STR_LIT>' ] and not ctx . params [ '<STR_LIT>' ] : <EOL> return click . echo ( ctx . get_help ( ) ) <EOL> if validate ( ctx . params ) : <EOL> if getlist : <EOL> method = '<STR_LIT:GET>' <EOL> url = DOMAIN_LIST + getlist + '<STR_LIT>' <EOL> result = DigitalOcean . do_request ( method , url , token = token , proxy = proxy ) <EOL> if result [ '<STR_LIT>' ] : <EOL> click . echo ( ) <EOL> click . echo ( '<STR_LIT>' % ( result [ '<STR_LIT>' ] ) ) <EOL> else : <EOL> record = '<STR_LIT>' <EOL> headers = [ '<STR_LIT>' , '<STR_LIT>' ] <EOL> for dic in result [ '<STR_LIT>' ] : <EOL> table = [ [ '<STR_LIT>' , dic [ '<STR_LIT:id>' ] ] , [ '<STR_LIT>' , dic [ '<STR_LIT:type>' ] ] , [ '<STR_LIT:Name>' , dic [ '<STR_LIT:name>' ] ] , [ '<STR_LIT>' , dic [ '<STR_LIT:data>' ] ] , [ '<STR_LIT>' , dic [ '<STR_LIT>' ] ] , [ '<STR_LIT>' , dic [ '<STR_LIT:port>' ] ] , [ '<STR_LIT>' , dic [ '<STR_LIT>' ] ] ] <EOL> data = { '<STR_LIT>' : headers , '<STR_LIT>' : table } <EOL> print_table ( tablefmt , data , record ) <EOL> total = '<STR_LIT>' % ( result [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> click . echo ( ) <EOL> click . echo ( total ) <EOL> if create : <EOL> method = '<STR_LIT:POST>' <EOL> url = DOMAIN_LIST + create + '<STR_LIT>' <EOL> params = { '<STR_LIT:type>' : type , '<STR_LIT:name>' : name , '<STR_LIT:data>' : data } <EOL> if priority == <NUM_LIT:0> : <EOL> params . updated ( { '<STR_LIT>' : '<STR_LIT:null>' } ) <EOL> else : <EOL> params . update ( { '<STR_LIT>' : priority } ) <EOL> if port == <NUM_LIT:0> : <EOL> params . updated ( { '<STR_LIT:port>' : '<STR_LIT:null>' } ) <EOL> else : <EOL> params . update ( { '<STR_LIT:port>' : port } ) <EOL> if weight == <NUM_LIT:0> : <EOL> params . update ( { '<STR_LIT>' : '<STR_LIT:null>' } ) <EOL> else : <EOL> params . update ( { '<STR_LIT>' : weight } ) <EOL> result = DigitalOcean . do_request ( method , url , token = token , proxy = proxy , params = params ) <EOL> if result [ '<STR_LIT>' ] : <EOL> click . echo ( ) <EOL> click . echo ( '<STR_LIT>' % ( result [ '<STR_LIT>' ] ) ) <EOL> else : <EOL> record = '<STR_LIT>' <EOL> click . echo ( ) <EOL> click . echo ( "<STR_LIT>" , create ) <EOL> click . echo ( ) <EOL> headers = [ '<STR_LIT>' , '<STR_LIT>' ] <EOL> table = [ [ '<STR_LIT>' , result [ '<STR_LIT>' ] [ '<STR_LIT:id>' ] ] , [ '<STR_LIT>' , result [ '<STR_LIT>' ] [ '<STR_LIT:type>' ] ] , [ '<STR_LIT:Name>' , result [ '<STR_LIT>' ] [ '<STR_LIT:name>' ] ] , [ '<STR_LIT>' , result [ '<STR_LIT>' ] [ '<STR_LIT:data>' ] ] , [ '<STR_LIT>' , result [ '<STR_LIT>' ] [ '<STR_LIT>' ] ] , [ '<STR_LIT>' , result [ '<STR_LIT>' ] [ '<STR_LIT:port>' ] ] , [ '<STR_LIT>' , result [ '<STR_LIT>' ] [ '<STR_LIT>' ] ] ] <EOL> data = { '<STR_LIT>' : headers , '<STR_LIT>' : table } <EOL> print_table ( tablefmt , data , record ) <EOL> if update : <EOL> method = '<STR_LIT>' <EOL> url = DOMAIN_LIST + update + '<STR_LIT>' + recordid <EOL> params = { } <EOL> if name : <EOL> params . update ( { '<STR_LIT:name>' : name } ) <EOL> if type : <EOL> params . update ( { '<STR_LIT:type>' : type } ) <EOL> if data : <EOL> params . update ( { '<STR_LIT:data>' : data } ) <EOL> if not priority == <NUM_LIT:0> : <EOL> params . update ( { '<STR_LIT>' : priority } ) <EOL> if not port == <NUM_LIT:0> : <EOL> params . update ( { '<STR_LIT:port>' : port } ) <EOL> if not weight == <NUM_LIT:0> : <EOL> params . update ( { '<STR_LIT>' : weight } ) <EOL> result = DigitalOcean . do_request ( method , url , token = token , proxy = proxy , params = params ) <EOL> if result [ '<STR_LIT>' ] : <EOL> click . echo ( ) <EOL> click . echo ( '<STR_LIT>' % ( result [ '<STR_LIT>' ] ) ) <EOL> else : <EOL> record = '<STR_LIT>' <EOL> click . echo ( ) <EOL> click . echo ( "<STR_LIT>" , update ) <EOL> click . echo ( ) <EOL> headers = [ '<STR_LIT>' , '<STR_LIT>' ] <EOL> table = [ [ '<STR_LIT>' , result [ '<STR_LIT>' ] [ '<STR_LIT:id>' ] ] , [ '<STR_LIT>' , result [ '<STR_LIT>' ] [ '<STR_LIT:type>' ] ] , [ '<STR_LIT:Name>' , result [ '<STR_LIT>' ] [ '<STR_LIT:name>' ] ] , [ '<STR_LIT>' , result [ '<STR_LIT>' ] [ '<STR_LIT:data>' ] ] , [ '<STR_LIT>' , result [ '<STR_LIT>' ] [ '<STR_LIT>' ] ] , [ '<STR_LIT>' , result [ '<STR_LIT>' ] [ '<STR_LIT:port>' ] ] , [ '<STR_LIT>' , result [ '<STR_LIT>' ] [ '<STR_LIT>' ] ] ] <EOL> data = { '<STR_LIT>' : headers , '<STR_LIT>' : table } <EOL> print_table ( tablefmt , data , record ) <EOL> if delete : <EOL> method = '<STR_LIT>' <EOL> url = DOMAIN_LIST + delete + '<STR_LIT>' + recordid <EOL> result = DigitalOcean . do_request ( method , url , token = token , proxy = proxy ) <EOL> if result [ '<STR_LIT>' ] : <EOL> click . echo ( ) <EOL> click . echo ( '<STR_LIT>' % ( result [ '<STR_LIT>' ] ) ) <EOL> else : <EOL> click . echo ( ) <EOL> click . echo ( "<STR_LIT>" % ( delete , recordid ) ) </s>
