Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
OpenApi-Papyros-PHP-Clients
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Analytics
Analytics
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
Σταύρος Παπαδάκης
OpenApi-Papyros-PHP-Clients
Commits
75e08232
Commit
75e08232
authored
Dec 23, 2016
by
Σταύρος Παπαδάκης
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Post protocol with attachments
parent
bbfa3270
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
80 additions
and
44 deletions
+80
-44
base-php-client/index.php
base-php-client/index.php
+51
-31
base-php-client/src/App.php
base-php-client/src/App.php
+29
-13
No files found.
base-php-client/index.php
View file @
75e08232
...
...
@@ -22,9 +22,10 @@ $settings = require(__DIR__ . '/settings.php');
* i = incoming file type
* o = outgoing file type
*/
$options
=
getopt
(
'vio'
,
[
'send:'
,
'list'
,
'listshow'
,
'show:'
,
'get:'
,
'save:'
]);
$options
=
getopt
(
'vio'
,
[
'send:'
,
'list'
,
'listshow'
,
'show:'
,
'get:'
,
'save:'
,
'attach:'
]);
$send
=
isset
(
$options
[
'send'
]);
$attach
=
$send
&&
isset
(
$options
[
'attach'
]);
$list
=
isset
(
$options
[
'list'
])
||
isset
(
$options
[
'listshow'
]);
$listdetails
=
isset
(
$options
[
'listshow'
]);
$show
=
isset
(
$options
[
'show'
]);
...
...
@@ -33,6 +34,15 @@ $save = isset($options['save']);
$incoming_only
=
isset
(
$options
[
'i'
]);
$outgoing_only
=
isset
(
$options
[
'o'
]);
if
(
$attach
)
{
$files
=
$options
[
'attach'
];
if
(
!
is_array
(
$files
))
{
$files
=
[
$files
];
}
}
else
{
$files
=
[];
}
/**
* Αρχικοποίηση εφαρμογής
*/
...
...
@@ -43,32 +53,20 @@ $app->setDebug(isset($options['v']));
* Έλεγχος παραμέτρων
*/
if
(
!
$send
&&
!
$list
&&
!
$show
&&
!
$get
)
{
echo
"Χρήση:
{
$argv
[
0
]
}
[-v] [--list] [--listshow] [-i|-o] [--send <file>] [--show <hashid>] [--get <hashid>] [--save <hashid>]"
,
PHP_EOL
,
echo
"Χρήση:
{
$argv
[
0
]
}
[-v] [--list] [--listshow] [-i|-o] [--send <file>] [--
attach <file>] [--
show <hashid>] [--get <hashid>] [--save <hashid>]"
,
PHP_EOL
,
" v: παραγωγή μηνυμάτων παρακολούθησης εκτέλεσης"
,
PHP_EOL
,
" list: λίστα hashids των εγγράφων (των τελευταίων 5 ημερών)"
,
PHP_EOL
,
" listshow: λίστα αρχείων (των τελευταίων 5 ημερών)"
,
PHP_EOL
,
" i: να συμπεριληφθούν μόνο τα εισερχόμενα στη λίστα αρχείων"
,
PHP_EOL
,
" ο: να συμπεριληφθούν μόνο τα εξερχόμενα στη λίστα αρχείων"
,
PHP_EOL
,
" send <file>: καταχώρηση πρωτοκόλλου με αποστολή του αρχείου file"
,
PHP_EOL
,
"attach <file>: επισύναψη αρχείου στην καταχώρηση (πολλαπλό)"
,
PHP_EOL
,
" show <hash>: αναλυτικές πληροφορίες αρχείου με δεδομένο hashid"
,
PHP_EOL
,
" get <hash>: λήψη αρχείου με δεδομένο hashid"
,
PHP_EOL
,
" save <hash>: λήψη και αποθήκευση αρχείου με δεδομένο hashid"
,
PHP_EOL
,
" στον τρέχοντα φάκελο και με το όνομα αρχείου που επιστρέφεται"
,
PHP_EOL
,
exit
(
0
);
}
if
(
$send
)
{
echo
"Έλεγχος για το αρχείο
{
$options
[
'send'
]
}
... "
;
if
(
is_readable
(
$options
[
'send'
]))
{
$file
=
base64_encode
(
file_get_contents
(
$options
[
'send'
]));
if
(
$file
===
false
)
{
echo
PHP_EOL
,
"ΛΑΘΟΣ: Αδυναμία κωδικοποίησης του αρχείου."
,
PHP_EOL
;
}
echo
"OK"
,
PHP_EOL
;
}
else
{
echo
PHP_EOL
,
"ΛΑΘΟΣ: Το αρχείο δεν είναι αναγνώσιμο."
,
PHP_EOL
;
exit
(
-
1
);
}
}
/**
* If any work is to be done, an api key is required
...
...
@@ -88,35 +86,57 @@ try {
if
(
$send
)
{
echo
"Αποστολή εγγράφου..."
,
PHP_EOL
;
echo
"Έλεγχος για το αρχείο
{
$options
[
'send'
]
}
... "
;
if
(
is_readable
(
$options
[
'send'
]))
{
$file
=
base64_encode
(
file_get_contents
(
$options
[
'send'
]));
if
(
$file
===
false
)
{
echo
PHP_EOL
,
"ΛΑΘΟΣ: Αδυναμία κωδικοποίησης του αρχείου."
,
PHP_EOL
;
}
if
(
$app
->
loadFile
(
$options
[
'send'
]))
{
echo
"OK"
,
PHP_EOL
;
}
else
{
echo
PHP_EOL
,
"ΛΑΘΟΣ: Το αρχείο δεν είναι αναγνώσιμο."
,
PHP_EOL
;
exit
(
-
1
);
}
if
(
$attach
)
{
foreach
(
$files
as
$filename
)
{
echo
"Έλεγχος για το συνημμένο αρχείο
{
$filename
}
... "
;
if
(
$app
->
loadFile
(
$filename
))
{
echo
"OK"
,
PHP_EOL
;
}
else
{
echo
PHP_EOL
,
"ΛΑΘΟΣ: Το αρχείο δεν είναι αναγνώσιμο."
,
PHP_EOL
;
exit
(
-
1
);
}
}
}
try
{
// καθορισμός παραμέτρων σε πίνακα για απλοποίηση
// το παράδειγμα δεν περιλαμβάνει συνημμένα αρχεία
// και ορισμένες επιπλέον παραμέτρους
// senderId, senderProtocol, senderProtocolDate, ada
$submission_data
=
[
'theme'
=>
'ΔΟΚΙΜΗ: Αυτοματοποιημένο κείμενο της '
.
date
(
'c'
),
'description'
=>
'ΔΟΚΙΜΗ: Αυτοματοποιημένο κείμενο περιγραφής '
.
date
(
'Ymdhmi'
),
'docCategory'
=>
20
,
'mainDoc'
=>
[
'document'
=>
[
"base64"
=>
$file
],
'fileName'
=>
$options
[
'send'
],
'description'
=>
"ΔΟΚΙΜΗ: Αποστολή δοκιμαστικού αρχείου
{
$options
[
'send'
]
}
"
]
// το παράδειγμα δεν περιλαμβάνει συνημμένα αρχεία
// και ορισμένες επιπλέον παραμέτρους
// senderId, senderProtocol, senderProtocolDate, ada, attachedDoc[]
];
// προσθήκη κυρίως αρχείου
$submission_data
[
'mainDoc'
]
=
[
'document'
=>
$options
[
'send'
],
// document: μπορεί να είναι
// string = αναφορά σε αρχείο που έχει ήδη φορτωθεί με την $app->loadFile()
// array = associative array me key "base64" και value το base64 encoding του περιεχομένου του αρχείου
'fileName'
=>
$options
[
'send'
],
'description'
=>
"ΔΟΚΙΜΗ: Αποστολή δοκιμαστικού αρχείου
{
$options
[
'send'
]
}
"
];
// προσθήκη συνημμένων
if
(
$attach
)
{
$submission_data
[
'attachedDoc'
]
=
[];
foreach
(
$files
as
$filename
)
{
$submission_data
[
'attachedDoc'
][]
=
[
'document'
=>
$filename
,
// document: μπορεί να είναι
// string = αναφορά σε αρχείο που έχει ήδη φορτωθεί με την $app->loadFile()
// array = associative array me key "base64" και value το base64 encoding του περιεχομένου του αρχείου
'fileName'
=>
$filename
,
'description'
=>
"ΔΟΚΙΜΗ: Αποστολή συνημμένου δοκιμαστικού αρχείου
{
$filename
}
"
];
}
}
$doc_info
=
$app
->
postProtocol
(
$submission_data
,
$apikey
);
echo
"Η αποστολή ολοκληρώθηκε με ΑΡ.Π.: "
,
$doc_info
[
"protocolNumber"
],
PHP_EOL
;
echo
"Αναλυτικά: "
,
print_r
(
$doc_info
,
true
),
PHP_EOL
;
...
...
base-php-client/src/App.php
View file @
75e08232
...
...
@@ -20,6 +20,7 @@ class App
private
$client
=
null
;
private
$_settings
=
[];
private
$_debug
=
false
;
private
$_files
=
[];
/**
*
...
...
@@ -109,11 +110,26 @@ class App
public
function
postProtocol
(
$submission_data
,
$apikey
=
null
)
{
$p
ayload
=
json_encode
(
array_merge
([
$p
ostdata
=
array_merge
([
'senderId'
=>
$this
->
setting
(
'sender_id'
),
],
$submission_data
)
],
$submission_data
);
// take care of files...
if
(
isset
(
$postdata
[
'mainDoc'
]))
{
if
(
is_string
(
$postdata
[
'mainDoc'
][
'document'
]))
{
$postdata
[
'mainDoc'
][
'document'
]
=
$this
->
_files
[
$postdata
[
'mainDoc'
][
'document'
]];
}
}
if
(
isset
(
$postdata
[
'attachedDoc'
]))
{
$postdata
[
'attachedDoc'
]
=
array_map
(
function
(
$doc
)
{
if
(
is_string
(
$doc
[
'document'
]))
{
$doc
[
'document'
]
=
$this
->
_files
[
$doc
[
'document'
]];
}
return
$doc
;
},
$postdata
[
'attachedDoc'
]);
}
$payload
=
json_encode
(
$postdata
);
if
(
$this
->
_debug
)
{
echo
"postProtocol :: payload:
{
$payload
}
"
,
PHP_EOL
;
...
...
@@ -149,21 +165,21 @@ class App
}
/**
*
Try to return the object fields in a hash array
*
Read a file to use later
*
* @param
object $resultobj The object
* @return
type
* @param
string $filename The file to read
* @return
boolean
*/
public
function
apiResultObjAsArray
(
$resultobj
)
public
function
loadFile
(
$filename
)
{
$result
=
[];
if
(
method_exists
(
$resultobj
,
'getters'
))
{
$getters
=
$resultobj
->
getters
();
foreach
(
$getters
as
$property
=>
$callfunc
)
{
$result
[
$property
]
=
$resultobj
->
$callfunc
()
;
if
(
is_readable
(
$filename
))
{
$file
=
base64_encode
(
file_get_contents
(
$filename
));
if
(
$file
!==
false
)
{
$this
->
_files
[
"
$filename
"
]
=
$file
;
return
true
;
}
}
return
$result
;
return
false
;
}
public
function
setDebug
(
$debug
=
true
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment