Giter VIP home page Giter VIP logo

Comments (4)

gitbrent avatar gitbrent commented on September 27, 2024

Hi @DavidPratten

Thanks for the feedback. This is a topic that's not well documented or discussed.

The List API docs indicate that calling list().items() without any listCols will return the same results that the SP REST API provides for consistency (a "select *" basically). My thought was consistency is paramount, plus anyone who calls items without any args is likely someone who wants everything, possibly even the metadata.

The list().cols() method will return a trimmed list of fields available, as most users don't want to see 3 different "Title" columns - it's junk to them.

Therefore, i'd propose the answer is that cols() is a subset of all the columns that exist, but it always contains a valid array of fields, so you could use this call to answer the question, "What columns can i query?"

ITEMS
screen shot 2019-01-24 at 23 07 52

COLS
screen shot 2019-01-24 at 22 34 45

from sprestlib.

DavidPratten avatar DavidPratten commented on September 27, 2024

Thanks @gitbrent

Another dimension on this challenge. The way spRestLib transparently translates between user and lookup columns object format and the simple list format is a great time and effort saver. However this is part of the challenge and is a source of divergence between items() and cols(). E.g. When the Editor column per cols() is retrieved we have items() return 'EditorId'.

One idea would be to provide items().cols() that works with or without items in the list?

from sprestlib.

gitbrent avatar gitbrent commented on September 27, 2024

I see what you're saying.

There's some inherent mapping weirdness with column names just due to the SharePoint team's API implementation, legacy support, etc. that has to be dealt with by any kind of a wrapper library like this one.

I like the idea of taking the last step and providing a collection of names that are universal across the methods...

maybe adding a new option: items({ useColNames:true })
that would return all cols but with the same names cols() produces - e.g.: Editor.Id instead of EditorId

from sprestlib.

DavidPratten avatar DavidPratten commented on September 27, 2024

OK, I see.

I was rather a fan of the flattening of the object returned for users and lookups to an Id.

However, I can see that going back to an object but without cruft would be OK, and even create an opportunity.

While we are here, could we unify the handling of multiple select lookups so that both single lookup AND multi-lookup return Column.Ids with values [] for no value, [Id] for a user or single lookup, and [Id,Id,Id] for multi-select. Marshaled and unmarshaled for get, create and update.

This would also greatly simplify some of my code built on top of spRestLib.

Props to you by the way and a huge thanks.

David

from sprestlib.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.