GitXplorerGitXplorer
b

smugmug

public
6 stars
0 forks
2 issues

Commits

List of commits on branch main.
Unverified
e3de68f05d38d1166d4f9dfb477a9f54a3197717

addressed vulnerability GO-2022-1059

bbzimmer committed 2 years ago
Verified
9c5cff3a17544a930d56d0c643814716827e466b

support uploading files with spaces in the name (#51)

bbzimmer committed 2 years ago
Verified
8b70af7f338f038d6bc7c012b81028da6ac00546

Merge pull request #47 from bzimmer/imports

bbzimmer committed 2 years ago
Unverified
25254c3a8169eca1200ee58ea5545a06db2b304a

organize imports

bbzimmer committed 2 years ago
Verified
da48414027db89d2b66ac905395b1e0925977e03

Merge pull request #46 from bzimmer/lint

bbzimmer committed 2 years ago
Unverified
6f4a7eaf7fe95ea92c85baf40a2d7bb070ba68b2

Updated linters and addressed all errors

bbzimmer committed 2 years ago

README

The README file for this repository.

smugmug

build codecov

A functional approach to the SmugMug API.

Design Philosophy

The design of this library (smugmug) is to separate the interactions with the SmugMug API as much as possible from the handling of the results. smugmug provides both low-level connectivity as well as higher-level abstractions for building applications. smugmug ships with no executable but a feature-rich application, ma, has been developed leveraging most of the library's APIs.

The APIs returning scalars and iterators are the most likely candidates for use but the lower-level functionality required to build the iterators, pages, is available if the need arises.

Expansions

A note on expansions. SmugMug's API provides an optimization to return some attributes of a request in a single call versus multiple. smugmug needs to explicitly support expansions and at this time not all are handled (though the primary use cases have been implemented). The expansions returning paged results will not be supported because it complicates the design and the number of results is limited so paging is almost always required anyway.

Singles

The methods User, Node, Album, and Image all return a single object by the primary key.

Pages

The plural methods of the above (eg, Nodes or Images) will return a page of results as well as the metadata required to page through all possible responses. These methods are provided as a building block for the iterators.

Iterators

The methods ending in Iter (eg, NodesIter or ImagesIter) use the paging methods to handle the iteration of all results and accept a typed callback function to provide a flexible mechanism for application-specific logic.

In addition to the Iter functions, the NodeService also supports iteration of parent and children nodes as well as providing Walk which allows the complete traversal of the node tree.