summaryrefslogtreecommitdiff
path: root/include/oauth2_request.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/oauth2_request.h')
-rw-r--r--include/oauth2_request.h610
1 files changed, 610 insertions, 0 deletions
diff --git a/include/oauth2_request.h b/include/oauth2_request.h
new file mode 100644
index 0000000..ea754b6
--- /dev/null
+++ b/include/oauth2_request.h
@@ -0,0 +1,610 @@
+/*
+ * Copyright (c) 2014 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef OAUTH2_REQUEST_H_
+#define OAUTH2_REQUEST_H_
+
+#include "oauth2_types.h"
+
+/**
+ * @file oauth2_request.h
+ * @brief The OAuth 2.0 request APIs are used to set various parameters to send for OAuth 2.0.
+ * Refer to service provider documentation about the allowed and additional fields.
+ */
+
+/**
+ * @addtogroup CAPI_OAUTH2_MODULE
+ * @{
+ */
+
+/**
+ * @brief The structure type for OAuth 2.0 Request handle.
+ * @since_tizen 2.4
+ */
+typedef struct oauth2_request_s* oauth2_request_h;
+
+/**
+ * @brief Creates oauth2_request_h handle.
+ * @details The handle must be freed via oauth2_request_destroy().
+ * @since_tizen 2.4
+
+ *
+ * @param[out] handle The created oauth2_request handle, else NULL for error cases.
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #OAUTH2_ERROR_NONE Successful
+ * @retval #OAUTH2_ERROR_OUT_OF_MEMORY Out of Memory
+ * @retval #OAUTH2_ERROR_INVALID_PARAMETER Invalid parameter
+ */
+OAUTH2_API int oauth2_request_create(oauth2_request_h *handle);
+
+/**
+ * @brief Destroys oauth2_request_h handle.
+ * @since_tizen 2.4
+
+ *
+ * @param[in] handle The oauth2_request handle to destory.
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #OAUTH2_ERROR_NONE Successful
+ * @retval #OAUTH2_ERROR_INVALID_PARAMETER Invalid parameter
+ */
+OAUTH2_API int oauth2_request_destroy(oauth2_request_h handle);
+
+/**
+ * @brief Sets authorization end point URL.
+ * @since_tizen 2.4
+
+ *
+ * @param[in] handle The request handle.
+ * @param[in] url The url.
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #OAUTH2_ERROR_NONE Successful
+ * @retval #OAUTH2_ERROR_OUT_OF_MEMORY Out of Memory
+ * @retval #OAUTH2_ERROR_INVALID_PARAMETER Invalid parameter
+ */
+OAUTH2_API int oauth2_request_set_auth_end_point_url(oauth2_request_h handle, const char *url);
+
+/**
+ * @brief Sets access token end point URL.
+ * @since_tizen 2.4
+
+ *
+ * @param[in] handle The request handle.
+ * @param[in] url The url.
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #OAUTH2_ERROR_NONE Successful
+ * @retval #OAUTH2_ERROR_OUT_OF_MEMORY Out of Memory
+ * @retval #OAUTH2_ERROR_INVALID_PARAMETER Invalid parameter
+ */
+OAUTH2_API int oauth2_request_set_token_end_point_url(oauth2_request_h handle, const char *url);
+
+/**
+ * @brief Sets redirection URL.
+ * @since_tizen 2.4
+
+ *
+ * @param[in] handle The request handle.
+ * @param[in] url The url.
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #OAUTH2_ERROR_NONE Successful
+ * @retval #OAUTH2_ERROR_OUT_OF_MEMORY Out of Memory
+ * @retval #OAUTH2_ERROR_INVALID_PARAMETER Invalid parameter
+ */
+OAUTH2_API int oauth2_request_set_redirection_url(oauth2_request_h handle, const char *url);
+
+/**
+ * @brief Sets refresh token end point URL.
+ * @since_tizen 2.4
+
+ *
+ * @param[in] handle The request handle.
+ * @param[in] url The url.
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #OAUTH2_ERROR_NONE Successful
+ * @retval #OAUTH2_ERROR_OUT_OF_MEMORY Out of Memory
+ * @retval #OAUTH2_ERROR_INVALID_PARAMETER Invalid parameter
+ */
+OAUTH2_API int oauth2_request_set_refresh_token_url(oauth2_request_h handle, const char *url);
+
+/**
+ * @brief Sets refresh token. Used mostly while using oauth2_manager_refresh_access_token().
+ * @since_tizen 2.4
+
+ *
+ * @param[in] handle The request handle.
+ * @param[in] refresh_token The refresh token string.
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #OAUTH2_ERROR_NONE Successful
+ * @retval #OAUTH2_ERROR_OUT_OF_MEMORY Out of Memory
+ * @retval #OAUTH2_ERROR_INVALID_PARAMETER Invalid parameter
+ */
+OAUTH2_API int oauth2_request_set_refresh_token(oauth2_request_h handle, char *refresh_token);
+
+/**
+ * @brief Sets response type.
+ * @since_tizen 2.4
+
+ *
+ * @param[in] handle The request handle.
+ * @param[in] response_type The response type.
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #OAUTH2_ERROR_NONE Successful
+ * @retval #OAUTH2_ERROR_OUT_OF_MEMORY Out of Memory
+ * @retval #OAUTH2_ERROR_INVALID_PARAMETER Invalid parameter
+ */
+OAUTH2_API int oauth2_request_set_response_type(oauth2_request_h handle, oauth2_response_type_e response_type);
+
+/**
+ * @brief Sets client id.
+ * @since_tizen 2.4
+
+ *
+ * @param[in] handle The request handle.
+ * @param[in] client_id The client id.
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #OAUTH2_ERROR_NONE Successful
+ * @retval #OAUTH2_ERROR_OUT_OF_MEMORY Out of Memory
+ * @retval #OAUTH2_ERROR_INVALID_PARAMETER Invalid parameter
+ */
+OAUTH2_API int oauth2_request_set_client_id(oauth2_request_h handle, const char *client_id);
+
+/**
+ * @brief Sets client secret.
+ * @since_tizen 2.4
+
+ *
+ * @param[in] handle The request handle.
+ * @param[in] client_secret The secret.
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #OAUTH2_ERROR_NONE Successful
+ * @retval #OAUTH2_ERROR_OUT_OF_MEMORY Out of Memory
+ * @retval #OAUTH2_ERROR_INVALID_PARAMETER Invalid parameter
+ */
+OAUTH2_API int oauth2_request_set_client_secret(oauth2_request_h handle, const char *client_secret);
+
+/**
+ * @brief Sets client authentication type. Default is OAUTH2_CLIENT_AUTHENTICATION_TYPE_BASIC.
+ * @since_tizen 2.4
+
+ *
+ * @param[in] handle The request handle.
+ * @param[in] client_auth_type The client authentication type.
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #OAUTH2_ERROR_NONE Successful
+ * @retval #OAUTH2_ERROR_OUT_OF_MEMORY Out of Memory
+ * @retval #OAUTH2_ERROR_INVALID_PARAMETER Invalid parameter
+ *
+ * @remarks Facebook and Google does not support HTTP Basic Authentication, instead they require client credentials to be sent via request body.\n
+ * So application must set OAUTH2_CLIENT_AUTHENTICATION_TYPE_REQUEST_BODY for them.
+ */
+OAUTH2_API int oauth2_request_set_client_authentication_type(oauth2_request_h handle, oauth2_client_authentication_type_e client_auth_type);
+
+/**
+ * @brief Sets scope.
+ * @since_tizen 2.4
+
+ *
+ * @param[in] handle The request handle.
+ * @param[in] scope The scope.
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #OAUTH2_ERROR_NONE Successful
+ * @retval #OAUTH2_ERROR_OUT_OF_MEMORY Out of Memory
+ * @retval #OAUTH2_ERROR_INVALID_PARAMETER Invalid parameter
+ */
+OAUTH2_API int oauth2_request_set_scope(oauth2_request_h handle, const char *scope);
+
+/**
+ * @brief Sets state.
+ * @since_tizen 2.4
+
+ *
+ * @param[in] handle The request handle.
+ * @param[in] state The state.
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #OAUTH2_ERROR_NONE Successful
+ * @retval #OAUTH2_ERROR_OUT_OF_MEMORY Out of Memory
+ * @retval #OAUTH2_ERROR_INVALID_PARAMETER Invalid parameter
+ */
+OAUTH2_API int oauth2_request_set_state(oauth2_request_h handle, const char *state);
+
+/**
+ * @brief Sets grant type.
+ * @since_tizen 2.4
+
+ *
+ * @param[in] handle The request handle.
+ * @param[in] grant_type The grant type.
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #OAUTH2_ERROR_NONE Successful
+ * @retval #OAUTH2_ERROR_OUT_OF_MEMORY Out of Memory
+ * @retval #OAUTH2_ERROR_INVALID_PARAMETER Invalid parameter
+ */
+OAUTH2_API int oauth2_request_set_grant_type(oauth2_request_h handle, oauth2_grant_type_e grant_type);
+
+/**
+ * @brief Sets authorization code.
+ * @since_tizen 2.4
+
+ *
+ * @param[in] handle The request handle.
+ * @param[in] authorization_code The authorization code.
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #OAUTH2_ERROR_NONE Successful
+ * @retval #OAUTH2_ERROR_OUT_OF_MEMORY Out of Memory
+ * @retval #OAUTH2_ERROR_INVALID_PARAMETER Invalid parameter
+ *
+ * @see oauth2_response_get_authorization_code()
+ */
+OAUTH2_API int oauth2_request_set_authorization_code(oauth2_request_h handle, const char *code);
+
+/**
+ * @brief Sets user name.
+ * @since_tizen 2.4
+
+ *
+ * @param[in] handle The request handle.
+ * @param[in] user_name The user name.
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #OAUTH2_ERROR_NONE Successful
+ * @retval #OAUTH2_ERROR_OUT_OF_MEMORY Out of Memory
+ * @retval #OAUTH2_ERROR_INVALID_PARAMETER Invalid parameter
+ */
+OAUTH2_API int oauth2_request_set_user_name(oauth2_request_h handle, const char *user_name);
+
+/**
+ * @brief Sets password.
+ * @since_tizen 2.4
+
+ *
+ * @param[in] handle The request handle.
+ * @param[in] password The password.
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #OAUTH2_ERROR_NONE Successful
+ * @retval #OAUTH2_ERROR_OUT_OF_MEMORY Out of Memory
+ * @retval #OAUTH2_ERROR_INVALID_PARAMETER Invalid parameter
+ */
+OAUTH2_API int oauth2_request_set_password(oauth2_request_h handle, const char *password);
+
+/**
+ * @brief Adds custom key-value pair to the request.
+ * @since_tizen 2.4
+
+ *
+ * @param[in] handle The request handle.
+ * @param[in] key The key.
+ * @param[in] value The value.
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #OAUTH2_ERROR_NONE Successful
+ * @retval #OAUTH2_ERROR_OUT_OF_MEMORY Out of Memory
+ * @retval #OAUTH2_ERROR_INVALID_PARAMETER Invalid parameter
+ *
+ * @see oauth2_request_get_custom_data()
+ */
+OAUTH2_API int oauth2_request_add_custom_data(oauth2_request_h handle, const char *key, const char *value);
+
+/**
+ * @brief Gets authorization end point URL.
+ * @since_tizen 2.4
+
+ *
+ * @remarks You must not free url
+ * @param[in] handle The request handle.
+ * @param[out] url The url.
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #OAUTH2_ERROR_NONE Successful
+ * @retval #OAUTH2_ERROR_OUT_OF_MEMORY Out of Memory
+ * @retval #OAUTH2_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #OAUTH2_ERROR_VALUE_NOT_FOUND Value not found
+ */
+OAUTH2_API int oauth2_request_get_auth_end_point_url(oauth2_request_h handle, char **url);
+
+/**
+ * @brief Gets access token end point URL.
+ * @since_tizen 2.4
+
+ *
+ * @remarks You must not free url
+ * @param[in] handle The request handle.
+ * @param[out] url The url.
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #OAUTH2_ERROR_NONE Successful
+ * @retval #OAUTH2_ERROR_OUT_OF_MEMORY Out of Memory
+ * @retval #OAUTH2_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #OAUTH2_ERROR_VALUE_NOT_FOUND Value not found
+ */
+OAUTH2_API int oauth2_request_get_token_end_point_url(oauth2_request_h handle, char **url);
+
+/**
+ * @brief Gets redirection URL.
+ * @since_tizen 2.4
+
+ *
+ * @remarks You must not free url
+ * @param[in] handle The request handle.
+ * @param[out] url The url.
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #OAUTH2_ERROR_NONE Successful
+ * @retval #OAUTH2_ERROR_OUT_OF_MEMORY Out of Memory
+ * @retval #OAUTH2_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #OAUTH2_ERROR_VALUE_NOT_FOUND Value not found
+ */
+OAUTH2_API int oauth2_request_get_redirection_url(oauth2_request_h handle, char **url);
+
+/**
+ * @brief Gets refresh token end point URL.
+ * @since_tizen 2.4
+
+ *
+ * @remarks You must not free url
+ * @param[in] handle The request handle.
+ * @param[out] url The url.
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #OAUTH2_ERROR_NONE Successful
+ * @retval #OAUTH2_ERROR_OUT_OF_MEMORY Out of Memory
+ * @retval #OAUTH2_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #OAUTH2_ERROR_VALUE_NOT_FOUND Value not found
+ */
+OAUTH2_API int oauth2_request_get_refresh_token_url(oauth2_request_h handle, char **url);
+
+/**
+ * @brief Sets refresh token.
+ * @since_tizen 2.4
+
+ *
+ * @remarks You must not free refresh_token
+ * @param[in] handle The request handle.
+ * @param[out] refresh_token The refresh token.
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #OAUTH2_ERROR_NONE Successful
+ * @retval #OAUTH2_ERROR_OUT_OF_MEMORY Out of Memory
+ * @retval #OAUTH2_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #OAUTH2_ERROR_VALUE_NOT_FOUND Value not found
+ */
+OAUTH2_API int oauth2_request_get_refresh_token(oauth2_request_h handle, char **refresh_token);
+
+/**
+ * @brief Gets response type.
+ * @since_tizen 2.4
+
+ *
+ * @remarks You must not free response_type
+ * @param[in] handle The request handle.
+ * @param[out] response_type The respose type.
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #OAUTH2_ERROR_NONE Successful
+ * @retval #OAUTH2_ERROR_OUT_OF_MEMORY Out of Memory
+ * @retval #OAUTH2_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #OAUTH2_ERROR_VALUE_NOT_FOUND Value not found
+ */
+OAUTH2_API int oauth2_request_get_response_type(oauth2_request_h handle, oauth2_response_type_e *response_type);
+
+/**
+ * @brief Gets client id.
+ * @since_tizen 2.4
+
+ *
+ * @remarks You must not free client_id
+ * @param[in] handle The request handle.
+ * @param[out] client_id The client id.
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #OAUTH2_ERROR_NONE Successful
+ * @retval #OAUTH2_ERROR_OUT_OF_MEMORY Out of Memory
+ * @retval #OAUTH2_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #OAUTH2_ERROR_VALUE_NOT_FOUND Value not found
+ */
+OAUTH2_API int oauth2_request_get_client_id(oauth2_request_h handle, char **client_id);
+
+/**
+ * @brief Gets client secret.
+ * @since_tizen 2.4
+
+ *
+ * @remarks You must not free client_secret
+ * @param[in] handle The request handle.
+ * @param[out] client_secret The client_secret.
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #OAUTH2_ERROR_NONE Successful
+ * @retval #OAUTH2_ERROR_OUT_OF_MEMORY Out of Memory
+ * @retval #OAUTH2_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #OAUTH2_ERROR_VALUE_NOT_FOUND Value not found
+ */
+OAUTH2_API int oauth2_request_get_client_secret(oauth2_request_h handle, char **client_secret);
+
+/**
+ * @brief Gets scope.
+ * @since_tizen 2.4
+
+ *
+ * @remarks You must not free scope
+ * @param[in] handle The request handle.
+ * @param[out] scope The scope.
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #OAUTH2_ERROR_NONE Successful
+ * @retval #OAUTH2_ERROR_OUT_OF_MEMORY Out of Memory
+ * @retval #OAUTH2_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #OAUTH2_ERROR_VALUE_NOT_FOUND Value not found
+ */
+OAUTH2_API int oauth2_request_get_scope(oauth2_request_h handle, char **scope);
+
+/**
+ * @brief Gets state.
+ * @since_tizen 2.4
+
+ *
+ * @remarks You must not free state
+ * @param[in] handle The request handle.
+ * @param[out] state The state.
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #OAUTH2_ERROR_NONE Successful
+ * @retval #OAUTH2_ERROR_OUT_OF_MEMORY Out of Memory
+ * @retval #OAUTH2_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #OAUTH2_ERROR_VALUE_NOT_FOUND Value not found
+ */
+OAUTH2_API int oauth2_request_get_state(oauth2_request_h handle, char **state);
+
+/**
+ * @brief Gets grant type.
+ * @since_tizen 2.4
+
+ *
+ * @remarks You must not free grant_type
+ * @param[in] handle The request handle.
+ * @param[out] grant_type The grant type.
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #OAUTH2_ERROR_NONE Successful
+ * @retval #OAUTH2_ERROR_OUT_OF_MEMORY Out of Memory
+ * @retval #OAUTH2_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #OAUTH2_ERROR_VALUE_NOT_FOUND Value not found
+ */
+OAUTH2_API int oauth2_request_get_grant_type(oauth2_request_h handle, oauth2_grant_type_e *grant_type);
+
+/**
+ * @brief Get authorization code.
+ * @since_tizen 2.4
+
+ *
+ * @remarks You must not free code
+ * @param[in] handle The request handle.
+ * @param[out] code The code.
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #OAUTH2_ERROR_NONE Successful
+ * @retval #OAUTH2_ERROR_OUT_OF_MEMORY Out of Memory
+ * @retval #OAUTH2_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #OAUTH2_ERROR_VALUE_NOT_FOUND Value not found
+ */
+OAUTH2_API int oauth2_request_get_authorization_code(oauth2_request_h handle, char **code);
+
+/**
+ * @brief Gets user name.
+ * @since_tizen 2.4
+
+ *
+ * @remarks You must not free user_name
+ * @param[in] handle The request handle.
+ * @param[out] user_name The user name.
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #OAUTH2_ERROR_NONE Successful
+ * @retval #OAUTH2_ERROR_OUT_OF_MEMORY Out of Memory
+ * @retval #OAUTH2_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #OAUTH2_ERROR_VALUE_NOT_FOUND Value not found
+ */
+OAUTH2_API int oauth2_request_get_user_name(oauth2_request_h handle, char **user_name);
+
+/**
+ * @brief Gets password.
+ * @since_tizen 2.4
+
+ *
+ * @remarks You must not free password
+ * @param[in] handle The request handle.
+ * @param[out] password The password.
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #OAUTH2_ERROR_NONE Successful
+ * @retval #OAUTH2_ERROR_OUT_OF_MEMORY Out of Memory
+ * @retval #OAUTH2_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #OAUTH2_ERROR_VALUE_NOT_FOUND Value not found
+ */
+OAUTH2_API int oauth2_request_get_password(oauth2_request_h handle, char **password);
+
+/**
+ * @brief Gets the custom value.
+ * @since_tizen 2.4
+
+ *
+ * @remarks You must not free custom_value
+ * @param[in] handle The request handle.
+ * @param[in] custom_key The custom key.
+ * @param[out] custom_value The custom value.
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #OAUTH2_ERROR_NONE Successful
+ * @retval #OAUTH2_ERROR_OUT_OF_MEMORY Out of Memory
+ * @retval #OAUTH2_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #OAUTH2_ERROR_VALUE_NOT_FOUND Value not found
+ */
+OAUTH2_API int oauth2_request_get_custom_data(oauth2_request_h handle, const char *custom_key, char **custom_value);
+
+/* End of OAuth 2.0 APIs */
+/**
+ * @}
+ */
+
+#endif /* OAUTH2_REQUEST_H_ */