diff options
author | Eduardo Julian | 2020-12-23 06:33:44 -0400 |
---|---|---|
committer | Eduardo Julian | 2020-12-23 06:33:44 -0400 |
commit | d29e091e98dabb8dfcf816899ada480ecbf7e357 (patch) | |
tree | a9d34c7fbb700cdb0c1f1226d377150614ce9914 /stdlib/source/program/aedifex/repository/identity.lux | |
parent | cad959345afb8bf0bd1e5eefe6c63f136833b3ce (diff) |
Refactored "export" common syntax.
Diffstat (limited to '')
-rw-r--r-- | stdlib/source/program/aedifex/repository/identity.lux | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/stdlib/source/program/aedifex/repository/identity.lux b/stdlib/source/program/aedifex/repository/identity.lux new file mode 100644 index 000000000..fbc93f367 --- /dev/null +++ b/stdlib/source/program/aedifex/repository/identity.lux @@ -0,0 +1,42 @@ +(.module: + [lux #* + ["." host (#+ import:)] + [abstract + [equivalence (#+ Equivalence)]] + [data + ["." product] + ["." text + ["%" format (#+ format)] + ["." encoding]]]]) + +(type: #export User + Text) + +(type: #export Password + Text) + +(type: #export Identity + {#user User + #password Password}) + +(def: #export equivalence + (Equivalence Identity) + ($_ product.equivalence + text.equivalence + text.equivalence + )) + +(import: java/util/Base64$Encoder + ["#::." + (encodeToString [[byte]] java/lang/String)]) + +(import: java/util/Base64 + ["#::." + (#static getEncoder [] java/util/Base64$Encoder)]) + +(def: #export (basic-auth user password) + (-> User Password Text) + (let [credentials (\ encoding.utf8 encode (format user ":" password))] + (|> (java/util/Base64::getEncoder) + (java/util/Base64$Encoder::encodeToString credentials) + (format "Basic ")))) |