Safe Haskell | None |
---|
Functions for accessing the Fusion Tables API, see https://developers.google.com/fusiontables/.
This provides a very limited subset of the complete (v1) API at present.
- type TableId = FTString
- data TableMetadata = TableMetadata {
- tab_name :: FTString
- tab_tableId :: FTString
- tab_columns :: [ColumnMetadata]
- data ColumnMetadata = ColumnMetadata {
- col_columnId :: Int
- col_name :: FTString
- col_type :: FTString
- data CellType
- createTable :: AccessToken -> String -> [(FTString, CellType)] -> IO TableMetadata
- createColumn :: AccessToken -> TableId -> (FTString, CellType) -> IO ColumnMetadata
- listTables :: AccessToken -> IO [TableMetadata]
- listColumns :: AccessToken -> TableId -> IO [ColumnMetadata]
- insertRows :: AccessToken -> TableId -> [FTString] -> [[FTString]] -> IO ()
- bulkImportRows :: AccessToken -> TableId -> [FTString] -> [[FTString]] -> IO ()
Types
data TableMetadata Source
An incomplete representation of https://developers.google.com/fusiontables/docs/v1/reference/table#resource
TableMetadata | |
|
data ColumnMetadata Source
ColumnMetadata | |
|
Designed to mirror the types listed here: https://developers.google.com/fusiontables/docs/v1/reference/column
One-to-one wrappers around API routines, with parsing of JSON results
createTable :: AccessToken -> String -> [(FTString, CellType)] -> IO TableMetadataSource
Create an (exportable) table with a given name and list of columns.
createColumn :: AccessToken -> TableId -> (FTString, CellType) -> IO ColumnMetadataSource
Create a new column in a given table. Returns the metadata for the new column.
:: AccessToken | The OAuth 2.0 access token. |
-> IO [TableMetadata] |
List all tables belonging to a user. See https://developers.google.com/fusiontables/docs/v1/reference/table/list.
:: AccessToken | The OAuth 2.0 access token. |
-> TableId | which table |
-> IO [ColumnMetadata] |
List the columns within a specific table. See https://developers.google.com/fusiontables/docs/v1/reference/column/list.
Higher level interface to common SQL queries
:: AccessToken | |
-> TableId | |
-> [FTString] | Which columns to write. |
-> [[FTString]] | Rows |
-> IO () |
Insert one or more rows into a table. Rows are represented as lists of strings. The columns being written are passed in as a separate list. The length of all rows must match eachother and must match the list of column names.
NOTE: this method has a major limitation. SQL queries are encoded into the URL, and it is very easy to exceed the maximum URL length accepted by Google APIs.
:: AccessToken | |
-> TableId | |
-> [FTString] | Which columns to write. |
-> [[FTString]] | Rows |
-> IO () |
Implement a larger quantity of rows, but with the caveat that the number and order
of columns must exactly match the schema of the fusion table on the server.
bulkImportRows
will perform a listing of the columns to verify this before uploading.
This function also checks that the server reports receiving the same number of rows as were uploaded.
NOTE: also use this function for LONG rows, even if there is only one. Really,
you should almost always use this function rather thna insertRows
.