Browse Source

Import fmt:percent_encode.

Tim Fletcher 16 years ago
parent
commit
f1098b0f28
1 changed files with 5 additions and 2 deletions
  1. 5 2
      src/oauth_hmac.erl

+ 5 - 2
src/oauth_hmac.erl

@@ -2,6 +2,8 @@
 
 
 -export([base_string/3, normalize/1, signature/3]).
 -export([base_string/3, normalize/1, signature/3]).
 
 
+-import(fmt, [percent_encode/1]).
+
 
 
 signature({Method, URL, Params}, ConsumerSecret, TokenSecret) ->
 signature({Method, URL, Params}, ConsumerSecret, TokenSecret) ->
   signature(base_string(Method, URL, Params), ConsumerSecret, TokenSecret);
   signature(base_string(Method, URL, Params), ConsumerSecret, TokenSecret);
@@ -9,7 +11,8 @@ signature(BaseString, ConsumerSecret, TokenSecret) ->
   b64(crypto:sha_mac(key(ConsumerSecret, TokenSecret), BaseString)).
   b64(crypto:sha_mac(key(ConsumerSecret, TokenSecret), BaseString)).
 
 
 base_string(Method, URL, Params) when is_list(Method) ->
 base_string(Method, URL, Params) when is_list(Method) ->
-  string:join(lists:map(fun fmt:percent_encode/1, [Method, oauth_uri:normalize(URL), normalize(Params)]), "&").
+  Unencoded = [Method, oauth_uri:normalize(URL), normalize(Params)],
+  string:join([percent_encode(Str) || Str <- Unencoded], "&").
 
 
 normalize(Params) ->
 normalize(Params) ->
   StringParams = lists:map(fun({K, V}) when is_atom(K) -> {atom_to_list(K), V}; (I) -> I end, Params),
   StringParams = lists:map(fun({K, V}) when is_atom(K) -> {atom_to_list(K), V}; (I) -> I end, Params),
@@ -19,7 +22,7 @@ sort(Params) ->
   lists:sort(fun({K,X},{K,Y}) -> X < Y; ({A,_},{B,_}) -> A < B end, Params).
   lists:sort(fun({K,X},{K,Y}) -> X < Y; ({A,_},{B,_}) -> A < B end, Params).
 
 
 key(ConsumerSecret, TokenSecret) ->
 key(ConsumerSecret, TokenSecret) ->
-  fmt:sprintf("%s&%s", [fmt:percent_encode(ConsumerSecret), fmt:percent_encode(TokenSecret)]).
+  fmt:sprintf("%s&%s", [percent_encode(ConsumerSecret), percent_encode(TokenSecret)]).
 
 
 b64(Data) ->
 b64(Data) ->
   base64:encode_to_string(Data).
   base64:encode_to_string(Data).